diff --git nRF5_SDK_15.3.0_59ac345/components/boards/pca10056.h nRF5_SDK_15.3.0_66869dd/components/boards/pca10056.h
index ac43159..17698a8 100644
--- nRF5_SDK_15.3.0_59ac345/components/boards/pca10056.h
+++ nRF5_SDK_15.3.0_66869dd/components/boards/pca10056.h
@@ -90,6 +90,8 @@ extern "C" {
 #define RTS_PIN_NUMBER 5
 #define HWFC           true
 
+#define BSP_SELF_PINRESET_PIN NRF_GPIO_PIN_MAP(0,24)
+
 #define BSP_QSPI_SCK_PIN   19
 #define BSP_QSPI_CSN_PIN   17
 #define BSP_QSPI_IO0_PIN   20
diff --git nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c nRF5_SDK_15.3.0_66869dd/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c
--- nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c
+++ nRF5_SDK_15.3.0_66869dd/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c
@@ -50,10 +50,6 @@
 #include "nrf_log.h"
 NRF_LOG_MODULE_REGISTER();
 
-#ifndef BSP_SELF_PINRESET_PIN
-#error "This module is intended to be used with boards that have the GP pin shortened with the RESET pin."
-#endif
-
 /**
  * @brief Enable power USB detection.
  *
@@ -71,6 +67,7 @@ NRF_LOG_MODULE_REGISTER();
 
 static uint8_t                                m_version_string[] = APP_NAME " " VERSION_STRING; ///< Human-readable version string.
 static app_usbd_nrf_dfu_trigger_nordic_info_t m_dfu_info;                                       ///< Struct with various information about the current firmware.
+static uint32_t m_pin_reset;
 
 static void dfu_trigger_evt_handler(app_usbd_class_inst_t        const *  p_inst,
                                     app_usbd_nrf_dfu_trigger_user_event_t event)
@@ -82,8 +79,8 @@ static void dfu_trigger_evt_handler(app_usbd_class_inst_t        const *  p_inst
         case APP_USBD_NRF_DFU_TRIGGER_USER_EVT_DETACH:
             NRF_LOG_INFO("DFU Detach request received. Triggering a pin reset.");
             NRF_LOG_FINAL_FLUSH();
-            nrf_gpio_cfg_output(BSP_SELF_PINRESET_PIN);
-            nrf_gpio_pin_clear(BSP_SELF_PINRESET_PIN);
+            nrf_gpio_cfg_output(m_pin_reset);
+            nrf_gpio_pin_clear(m_pin_reset);
             break;
         default:
             break;
@@ -173,7 +170,7 @@ static void usbd_evt_handler(app_usbd_internal_evt_t const * const p_event)
 }
 #endif
 
-ret_code_t nrf_dfu_trigger_usb_init(void)
+ret_code_t nrf_dfu_trigger_usb_init(uint32_t pin_reset)
 {
     ret_code_t  ret;
     static bool initialized = false;
@@ -183,6 +180,7 @@ ret_code_t nrf_dfu_trigger_usb_init(void)
         return NRF_SUCCESS;
     }
 
+    m_pin_reset               = pin_reset;
     m_dfu_info.wAddress       = CODE_START;
     m_dfu_info.wFirmwareSize  = CODE_SIZE;
     m_dfu_info.wVersionMajor  = APP_VERSION_MAJOR;
diff --git nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.h nRF5_SDK_15.3.0_66869dd/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.h
--- nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.h
+++ nRF5_SDK_15.3.0_66869dd/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.h
@@ -63,11 +63,12 @@
  *
  * @note  If @ref APP_USBD_CONFIG_EVENT_QUEUE_ENABLE is on (1), USB events must be handled manually.
  *        See @ref app_usbd_event_queue_process.
+ * @param pin_reset Pin which is shortened with the actual pin reset.
  *
  * @retval NRF_SUCCESS  On successful initialization.
  * @return An error code on failure, for example if called at a wrong time.
  */
-ret_code_t nrf_dfu_trigger_usb_init(void);
+ret_code_t nrf_dfu_trigger_usb_init(uint32_t pin_reset);
 
 /** @} */
 
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/middleware/app_mw_ble_gap.c nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/middleware/app_mw_ble_gap.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/middleware/app_mw_ble_gap.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/middleware/app_mw_ble_gap.c
@@ -1907,8 +1907,8 @@ static uint32_t gap_adv_set_configure_rsp_dec(const uint8_t * p_buffer, uint16_t
 
     if (result_code != NRF_SUCCESS)
     {
-    	app_ble_gap_adv_buf_addr_unregister(mp_out_params[0], false);
-    	app_ble_gap_adv_buf_addr_unregister(mp_out_params[1], false);
+        app_ble_gap_adv_buf_addr_unregister(mp_out_params[0], false);
+        app_ble_gap_adv_buf_addr_unregister(mp_out_params[1], false);
     }
 
     //@note: Should never fail.
@@ -1928,7 +1928,7 @@ uint32_t _sd_ble_gap_adv_set_configure(uint8_t *p_adv_handle,
 {
     uint8_t * p_buffer;
     uint32_t  buffer_length = 0;
-
+    uint32_t err;
     tx_buf_alloc(&p_buffer, (uint16_t *)&buffer_length);
 
     if (p_adv_handle)
@@ -1948,9 +1948,16 @@ uint32_t _sd_ble_gap_adv_set_configure(uint8_t *p_adv_handle,
     APP_ERROR_CHECK(err_code);
 
     //@note: Increment buffer length as internally managed packet type field must be included.
-    return ser_sd_transport_cmd_write(p_buffer,
+    err = ser_sd_transport_cmd_write(p_buffer,
                                       (++buffer_length),
                                       gap_adv_set_configure_rsp_dec);
+
+    if (err == NRF_SUCCESS && p_adv_data)
+    {
+        app_ble_gap_set_adv_data_set(*p_adv_handle, mp_out_params[0], mp_out_params[1]);
+    }
+
+    return err;
 }
 
 #ifndef S112
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.c nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.c
@@ -55,21 +55,52 @@ typedef struct {
 
 static adv_set_t m_adv_sets[4]; //todo configurable number of adv sets.
 
+typedef struct
+{
+    uint8_t adv_handle;
+    uint8_t * buf1;
+    uint8_t * buf2;
+} adv_set_data_t;
+
+typedef enum {
+    BLE_DATA_BUF_FREE,
+    BLE_DATA_BUF_IN_USE,
+    BLE_DATA_BUF_LAST_DIRTY,
+} ble_data_buf_state_t;
+
+static adv_set_data_t adv_set_data[BLE_GAP_ADV_SET_COUNT_MAX];
+
 static ble_data_t m_scan_data = {0};
 static int scan_data_id;
 #endif
 ser_ble_gap_app_keyset_t m_app_keys_table[SER_MAX_CONNECTIONS];
 
 #if NRF_SD_BLE_API_VERSION >= 6
-static void *m_ble_gap_adv_buf_addr_storage[8];
+
+typedef struct
+{
+    ble_data_buf_state_t state;
+    uint32_t id;
+    void *buf;
+} ble_data_item_t;
+
+ble_data_item_t m_ble_data_pool[8];
+
 #endif
 
 void app_ble_gap_sec_keys_init(void)
 {
 #if NRF_SD_BLE_API_VERSION >= 6
-    memset(m_ble_gap_adv_buf_addr_storage, 0, sizeof(m_ble_gap_adv_buf_addr_storage));
+    uint32_t i;
+
+    memset(m_ble_data_pool, 0, sizeof(m_ble_data_pool));
     memset(&m_scan_data, 0, sizeof(m_scan_data));
     memset(m_adv_sets, 0, sizeof(m_adv_sets));
+    for (i = 0; i < 8; i++)
+    {
+        m_ble_data_pool[i].state = BLE_DATA_BUF_FREE;
+        m_ble_data_pool[i].id = 0;
+    }
 #endif
     memset(m_app_keys_table, 0, sizeof(m_app_keys_table));
 }
@@ -140,12 +171,13 @@ int app_ble_gap_adv_buf_register(void * p_buf)
         return 0;
     }
 
-    for (i = 0; i < ARRAY_SIZE(m_ble_gap_adv_buf_addr_storage); i++)
+    for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
     {
-        if ((m_ble_gap_adv_buf_addr_storage[i] == NULL) ||
-            (m_ble_gap_adv_buf_addr_storage[i] == p_buf))
+        if (m_ble_data_pool[i].state == BLE_DATA_BUF_FREE)
         {
-            m_ble_gap_adv_buf_addr_storage[i] = p_buf;
+            m_ble_data_pool[i].buf = p_buf;
+            m_ble_data_pool[i].id = i + 1;
+            m_ble_data_pool[i].state = BLE_DATA_BUF_IN_USE;
             return i+1;
         }
     }
@@ -161,10 +193,9 @@ void *app_ble_gap_adv_buf_unregister(int id, bool event_context)
         return NULL;
     }
 
-    void * ret = m_ble_gap_adv_buf_addr_storage[id-1];
-    m_ble_gap_adv_buf_addr_storage[id-1] = NULL;
+    m_ble_data_pool[id].state = BLE_DATA_BUF_FREE;
 
-    return ret;
+    return m_ble_data_pool[id].id;
 }
 
 void app_ble_gap_adv_buf_addr_unregister(void * p_buf, bool event_context)
@@ -177,22 +208,24 @@ void app_ble_gap_adv_buf_addr_unregister(void * p_buf, bool event_context)
         return;
     }
 
-    for (i = 0; i < ARRAY_SIZE(m_ble_gap_adv_buf_addr_storage); i++)
+    for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
     {
-        if (m_ble_gap_adv_buf_addr_storage[i] == p_buf)
+        if (m_ble_data_pool[i].buf == p_buf && (m_ble_data_pool[i].state == BLE_DATA_BUF_IN_USE))
         {
-            m_ble_gap_adv_buf_addr_storage[i] = NULL;
+            m_ble_data_pool[id].state = BLE_DATA_BUF_FREE;
+            m_ble_data_pool[id].buf = 0;
         }
     }
 }
 
 void app_ble_gap_scan_data_set(uint8_t * p_scan_data)
 {
+
     uint32_t i;
 
-    for (i = 0; i < ARRAY_SIZE(m_ble_gap_adv_buf_addr_storage); i++)
+    for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
     {
-        if (m_ble_gap_adv_buf_addr_storage[i] == p_scan_data)
+        if (m_ble_data_pool[i].buf == p_scan_data)
         {
             scan_data_id = i+1;
             return;
@@ -213,4 +246,47 @@ void app_ble_gap_scan_data_unset(bool free)
     }
 }
 
+static void app_ble_gap_ble_data_mark_dirty(uint8_t * p_data)
+{
+    uint32_t i;
+
+    if (p_data)
+    {
+        for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
+        {
+            if (m_ble_data_pool[i].buf == p_data)
+            {
+                m_ble_data_pool[i].state = BLE_DATA_BUF_LAST_DIRTY;
+            }
+        }
+    }
+}
+static void app_ble_gap_ble_adv_data_mark_dirty(uint8_t * p_data1, uint8_t *p_data2)
+{
+    uint32_t i;
+
+    /* First find if given id already allocated the buffer. */
+    for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
+    {
+        if (m_ble_data_pool[i].state == BLE_DATA_BUF_LAST_DIRTY)
+        {
+            app_ble_gap_adv_buf_unregister(i+1);
+        }
+    }
+
+    app_ble_gap_ble_data_mark_dirty(p_data1);
+    app_ble_gap_ble_data_mark_dirty(p_data2);
+}
+
+void app_ble_gap_set_adv_data_set(uint8_t adv_handle, uint8_t * buf1, uint8_t * buf2)
+{
+    if (adv_handle == BLE_GAP_ADV_SET_HANDLE_NOT_SET)
+    {
+        adv_handle = BLE_GAP_ADV_SET_COUNT_MAX - 1;
+    }
+    app_ble_gap_ble_adv_data_mark_dirty(adv_set_data[adv_handle].buf1, adv_set_data[adv_handle].buf2);
+
+    adv_set_data[adv_handle].buf1 = buf1;
+    adv_set_data[adv_handle].buf2 = buf2;
+}
 #endif /* NRF_SD_BLE_API_VERSION >= 6 */
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.h nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/app_ble_gap_sec_keys.h
@@ -112,6 +112,7 @@ void app_ble_gap_adv_buf_addr_unregister(void * p_buf, bool event_context);
 void app_ble_gap_scan_data_set(uint8_t * p_scan_data);
 void app_ble_gap_scan_data_unset(bool free);
 
+void app_ble_gap_set_adv_data_set(uint8_t adv_handle, uint8_t * buf1, uint8_t * buf2);
 #endif
 #ifdef __cplusplus
 }
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/ble_gap_app.c nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/ble_gap_app.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/ble_gap_app.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/ble_gap_app.c
@@ -641,7 +641,7 @@ uint32_t ble_gap_scan_start_req_enc(ble_gap_scan_params_t const *  p_scan_params
     SER_REQ_ENC_BEGIN(SD_BLE_GAP_SCAN_START);
     SER_PUSH_COND(p_scan_params, ble_gap_scan_params_t_enc);
 #if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 5
-    SER_PUSH_COND(p_adv_report_buffer, ble_data_t_enc);
+    SER_PUSH_COND(p_adv_report_buffer, ble_data_t_empty_enc);
 #endif
     SER_REQ_ENC_END;
 }
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/ble_gap_evt_app.c nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/ble_gap_evt_app.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/application/codecs/ble/serializers/ble_gap_evt_app.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/application/codecs/ble/serializers/ble_gap_evt_app.c
@@ -323,7 +323,7 @@ uint32_t ble_gap_evt_timeout_dec(uint8_t const * const p_buf,
 #if defined(NRF_SD_BLE_API_VERSION) && (NRF_SD_BLE_API_VERSION > 5) && !defined(S112)
     if (p_event->evt.gap_evt.params.timeout.src == BLE_GAP_TIMEOUT_SRC_SCAN)
     {
-        SER_PULL_FIELD(&p_event->evt.gap_evt.params.timeout.params.adv_report_buffer, ble_data_t_dec);
+        SER_PULL_FIELD(&p_event->evt.gap_evt.params.timeout.params.adv_report_buffer, ble_data_t_empty_dec);
     }
 #endif
     SER_EVT_DEC_END;
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/ser_config.h nRF5_SDK_15.3.0_66869dd/components/serialization/common/ser_config.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/ser_config.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/ser_config.h
@@ -70,8 +70,8 @@ extern "C" {
 #define SER_HAL_TRANSPORT_APP_TO_CONN_MAX_PKT_SIZE    (128UL)
 #define SER_HAL_TRANSPORT_CONN_TO_APP_MAX_PKT_SIZE    (128UL)
 #else
-#define SER_HAL_TRANSPORT_APP_TO_CONN_MAX_PKT_SIZE    (512UL)
-#define SER_HAL_TRANSPORT_CONN_TO_APP_MAX_PKT_SIZE    (512UL)
+#define SER_HAL_TRANSPORT_APP_TO_CONN_MAX_PKT_SIZE    (768UL)
+#define SER_HAL_TRANSPORT_CONN_TO_APP_MAX_PKT_SIZE    (768UL)
 #endif
 
 #define SER_HAL_TRANSPORT_MAX_PKT_SIZE ((SER_HAL_TRANSPORT_APP_TO_CONN_MAX_PKT_SIZE) >= \
@@ -104,7 +104,7 @@ extern "C" {
 
 /** UART transmission parameters */
 #define SER_PHY_UART_FLOW_CTRL          NRF_UART_HWFC_ENABLED
-#define SER_PHY_UART_PARITY             NRF_UART_PARITY_INCLUDED
+#define SER_PHY_UART_PARITY             NRF_UART_PARITY_EXCLUDED
 #define SER_PHY_UART_BAUDRATE_VAL       1000000
 
 #define SER_PHY_UART_BAUDRATE CONCAT_2(NRF_UART_BAUDRATE_,SER_PHY_UART_BAUDRATE_VAL)
@@ -122,7 +122,8 @@ extern "C" {
 #ifndef SER_MAX_ADV_DATA
 #define SER_MAX_ADV_DATA 256
 #endif
- 
+
+#define HCI_LINK_CONTROL
 #ifdef __cplusplus
 }
 #endif
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c
@@ -454,7 +454,7 @@ uint32_t ble_gap_evt_connected_t_enc(void const * const p_void_struct,
     SER_PUSH_FIELD(&p_struct->conn_params, ble_gap_conn_params_t_enc);
 #if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 5
     SER_PUSH_uint8(&p_struct->adv_handle);
-    SER_PUSH_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_enc);
+    SER_PUSH_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_empty_enc);
 #endif
 
     SER_STRUCT_ENC_END;
@@ -472,7 +472,7 @@ uint32_t ble_gap_evt_connected_t_dec(uint8_t const * const p_buf,
     SER_PULL_FIELD(&p_struct->conn_params, ble_gap_conn_params_t_dec);
 #if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 5
     SER_PULL_uint8(&p_struct->adv_handle);
-    SER_PULL_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_dec);
+    SER_PULL_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_empty_dec);
 #endif
 
     SER_STRUCT_DEC_END;
@@ -1709,6 +1709,32 @@ uint32_t ble_gap_adv_data_t_dec(uint8_t const * const p_buf,
     SER_STRUCT_DEC_END;
 }
 
+uint32_t ble_gap_adv_data_t_empty_enc(void const * const p_void_struct,
+                                uint8_t * const    p_buf,
+                                uint32_t           buf_len,
+                                uint32_t * const   p_index)
+{
+    SER_STRUCT_ENC_BEGIN(ble_gap_adv_data_t);
+
+    SER_PUSH_FIELD(&p_struct->adv_data, ble_data_t_empty_enc);
+    SER_PUSH_FIELD(&p_struct->scan_rsp_data, ble_data_t_empty_enc);
+
+    SER_STRUCT_ENC_END;
+}
+
+uint32_t ble_gap_adv_data_t_empty_dec(uint8_t const * const p_buf,
+                                uint32_t              buf_len,
+                                uint32_t * const      p_index,
+                                void * const          p_void_struct)
+{
+    SER_STRUCT_DEC_BEGIN(ble_gap_adv_data_t);
+
+    SER_PULL_FIELD(&p_struct->adv_data, ble_data_t_empty_dec);
+    SER_PULL_FIELD(&p_struct->scan_rsp_data, ble_data_t_empty_dec);
+
+    SER_STRUCT_DEC_END;
+}
+
 uint32_t ble_gap_evt_adv_set_terminated_t_enc(void const * const p_void_struct,
                                 uint8_t * const    p_buf,
                                 uint32_t           buf_len,
@@ -1719,8 +1745,7 @@ uint32_t ble_gap_evt_adv_set_terminated_t_enc(void const * const p_void_struct,
     SER_PUSH_uint8(&p_struct->reason);
     SER_PUSH_uint8(&p_struct->adv_handle);
     SER_PUSH_uint8(&p_struct->num_completed_adv_events);
-
-    SER_PUSH_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_enc);
+    SER_PUSH_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_empty_enc);
 
     SER_STRUCT_ENC_END;
 }
@@ -1736,7 +1761,7 @@ uint32_t ble_gap_evt_adv_set_terminated_t_dec(uint8_t const * const p_buf,
     SER_PULL_uint8(&p_struct->adv_handle);
     SER_PULL_uint8(&p_struct->num_completed_adv_events);
 
-    SER_PULL_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_dec);
+    SER_PULL_FIELD(&p_struct->adv_data, ble_gap_adv_data_t_empty_dec);
 
     SER_STRUCT_DEC_END;
 }
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.h nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.h
@@ -594,6 +594,16 @@ uint32_t ble_gap_adv_data_t_dec(uint8_t const * const p_buf,
                                 uint32_t * const      p_index,
                                 void * const          p_void_struct);
 
+uint32_t ble_gap_adv_data_t_empty_enc(void const * const p_void_struct,
+                                uint8_t * const    p_buf,
+                                uint32_t           buf_len,
+                                uint32_t * const   p_index);
+
+uint32_t ble_gap_adv_data_t_empty_dec(uint8_t const * const p_buf,
+                                uint32_t              buf_len,
+                                uint32_t * const      p_index,
+                                void * const          p_void_struct);
+
 uint32_t ble_gap_evt_adv_set_terminated_t_enc(void const * const p_void_struct,
                                 uint8_t * const    p_buf,
                                 uint32_t           buf_len,
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_struct_serialization.c nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_struct_serialization.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_struct_serialization.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_struct_serialization.c
@@ -47,6 +47,11 @@
 #include "ble.h"
 #include "cond_field_serialization.h"
 #include "ser_config.h"
+#ifdef SER_CONNECTIVITY
+#include "conn_ble_gap_sec_keys.h"
+#else
+#include "app_ble_gap_sec_keys.h"
+#endif
 #include <string.h>
 
 #if NRF_SD_BLE_API_VERSION > 5
@@ -542,4 +547,56 @@ uint32_t ble_data_t_dec(uint8_t const * const p_buf,
 
     SER_STRUCT_DEC_END;
 }
+
+uint32_t ble_data_t_empty_enc(void const * const p_void_struct,
+                        uint8_t * const    p_buf,
+                        uint32_t           buf_len,
+                        uint32_t * const   p_index)
+{
+    SER_STRUCT_ENC_BEGIN(ble_data_t);
+
+    uint32_t buf_id = 0;
+#if NRF_SD_BLE_API_VERSION > 5
+#if defined(SER_CONNECTIVITY)
+    buf_id = conn_ble_gap_ble_data_buf_free(p_struct->p_data);
+#else
+    buf_id = app_ble_gap_adv_buf_register(p_struct->p_data);
+    SER_ASSERT(buf_id >= 0, NRF_ERROR_NO_MEM);
+#endif
+#endif
+    SER_PUSH_uint32(&buf_id);
+    SER_PUSH_uint16(&p_struct->len);
+
+    SER_STRUCT_ENC_END;
+}
+
+uint32_t ble_data_t_empty_dec(uint8_t const * const p_buf,
+                        uint32_t              buf_len,
+                        uint32_t * const      p_index,
+                        void * const          p_void_struct)
+{
+    SER_STRUCT_DEC_BEGIN(ble_data_t);
+
+    uint32_t buf_id;
+    SER_PULL_uint32(&buf_id);
+    p_struct->len = SER_MAX_ADV_DATA;
+#if NRF_SD_BLE_API_VERSION > 5
+#if defined(SER_CONNECTIVITY)
+    if (buf_id && (p_struct->p_data == NULL))
+    {
+        p_struct->p_data = conn_ble_gap_ble_data_buf_alloc(buf_id);
+    }
+#else
+    p_struct->p_data = app_ble_gap_adv_buf_unregister(buf_id, true);
+#endif
+#endif
+    SER_PULL_uint16(&p_struct->len);
+
+    if (p_struct->p_data == NULL)
+    {
+        p_struct->len = 0;
+    }
+
+    SER_STRUCT_DEC_END;
+}
 #endif
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_struct_serialization.h nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_struct_serialization.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/struct_ser/ble/ble_struct_serialization.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/struct_ser/ble/ble_struct_serialization.h
@@ -209,6 +209,16 @@ uint32_t ble_data_t_dec(uint8_t const * const p_buf,
                         uint32_t              buf_len,
                         uint32_t * const      p_index,
                         void * const          p_void_struct);
+
+uint32_t ble_data_t_empty_enc(void const * const p_void_struct,
+                        uint8_t * const    p_buf,
+                        uint32_t           buf_len,
+                        uint32_t * const   p_index);
+
+uint32_t ble_data_t_empty_dec(uint8_t const * const p_buf,
+                        uint32_t              buf_len,
+                        uint32_t * const      p_index,
+                        void * const          p_void_struct);
 #endif
 #ifdef __cplusplus
 }
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/config/ser_phy_config_conn.h nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/config/ser_phy_config_conn.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/config/ser_phy_config_conn.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/config/ser_phy_config_conn.h
@@ -69,10 +69,10 @@ extern "C" {
 /* UART configuration */
 #define UART_IRQ_PRIORITY                       APP_IRQ_PRIORITY_LOWEST
 
-#define SER_PHY_UART_RX                         SER_CON_RX_PIN
-#define SER_PHY_UART_TX                         SER_CON_TX_PIN
-#define SER_PHY_UART_CTS                        SER_CON_CTS_PIN
-#define SER_PHY_UART_RTS                        SER_CON_RTS_PIN
+#define SER_PHY_UART_RX                         RX_PIN_NUMBER//SER_CON_RX_PIN
+#define SER_PHY_UART_TX                         TX_PIN_NUMBER//SER_CON_TX_PIN
+#define SER_PHY_UART_CTS                        CTS_PIN_NUMBER//SER_CON_CTS_PIN
+#define SER_PHY_UART_RTS                        RTS_PIN_NUMBER//SER_CON_RTS_PIN
 
 
 #ifdef __cplusplus
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci.c nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci.c
@@ -1672,7 +1672,7 @@ void ser_phy_hci_reset(void)
 {
     m_p_tx_payload = NULL;
     m_p_rx_buffer = NULL;
-    
+
     nrf_queue_reset(&m_tx_evt_queue);
     nrf_queue_reset(&m_rx_evt_queue);
 
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c
@@ -233,9 +233,9 @@ static void tx_buf_fill(void)
             return;
 
         default:
+            ASSERT(mp_tx_data->p_buffer != NULL);
             if (m_tx_index < mp_tx_data->num_of_bytes)
             {
-                ASSERT(mp_tx_data->p_buffer != NULL);
                 uint8_t data = mp_tx_data->p_buffer[m_tx_index];
 
                 if (data == APP_SLIP_END)
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c
@@ -67,10 +67,10 @@ NRF_LOG_MODULE_REGISTER();
 static void cdc_acm_user_ev_handler(app_usbd_class_inst_t const * p_inst,
                                     app_usbd_cdc_acm_user_event_t event);
 
-#define CDC_ACM_COMM_INTERFACE  0
+#define CDC_ACM_COMM_INTERFACE  1
 #define CDC_ACM_COMM_EPIN       NRF_DRV_USBD_EPIN2
 
-#define CDC_ACM_DATA_INTERFACE  1
+#define CDC_ACM_DATA_INTERFACE  2
 #define CDC_ACM_DATA_EPIN       NRF_DRV_USBD_EPIN1
 #define CDC_ACM_DATA_EPOUT      NRF_DRV_USBD_EPOUT1
 
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c
@@ -1249,6 +1249,12 @@ uint32_t conn_mw_ble_gap_adv_set_configure(uint8_t const * const p_rx_buf,
        (void)conn_ble_gap_ble_data_buf_free(p_adv_data->adv_data.p_data);
        (void)conn_ble_gap_ble_data_buf_free(p_adv_data->scan_rsp_data.p_data);
    }
+   else
+   {
+       conn_ble_gap_set_adv_data_set(*p_adv_handle,
+                                     p_adv_data->adv_data.p_data,
+                                     p_adv_data->scan_rsp_data.p_data);
+   }
 
    err_code = ble_gap_adv_set_configure_rsp_enc(sd_err_code, p_tx_buf, p_tx_buf_len, p_adv_data, p_adv_handle);
    SER_ASSERT(err_code == NRF_SUCCESS, err_code);
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c
@@ -664,7 +664,7 @@ uint32_t ble_gap_scan_start_req_dec(uint8_t const * const     p_buf,
 
     SER_PULL_COND(pp_scan_params, ble_gap_scan_params_t_dec);
 #if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 5
-    SER_PULL_COND(pp_adv_report_buffer, ble_data_t_dec);
+    SER_PULL_COND(pp_adv_report_buffer, ble_data_t_empty_dec);
 #endif
 
     SER_REQ_DEC_END;
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c
@@ -318,7 +318,7 @@ uint32_t ble_gap_evt_timeout_enc(ble_evt_t const * const p_event,
 #if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 5 && !defined(S112)
     if (p_event->evt.gap_evt.params.timeout.src == BLE_GAP_TIMEOUT_SRC_SCAN)
     {
-        SER_PUSH_FIELD(&p_event->evt.gap_evt.params.timeout.params.adv_report_buffer, ble_data_t_enc);
+        SER_PUSH_FIELD(&p_event->evt.gap_evt.params.timeout.params.adv_report_buffer, ble_data_t_empty_enc);
     }
 #endif
     SER_EVT_ENC_END;
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c
@@ -43,17 +43,31 @@
 #include "nordic_common.h"
 #include <stddef.h>
 
+typedef enum {
+    BLE_DATA_BUF_FREE,
+    BLE_DATA_BUF_IN_USE,
+    BLE_DATA_BUF_LAST_DIRTY,
+} ble_data_buf_state_t;
+
 ser_ble_gap_conn_keyset_t m_conn_keys_table[SER_MAX_CONNECTIONS];
 #if NRF_SD_BLE_API_VERSION >= 6
 
 typedef struct
 {
+    ble_data_buf_state_t state;
     uint32_t id;
     uint8_t  ble_data[SER_MAX_ADV_DATA];
 } ble_data_item_t;
 
-ble_data_item_t m_ble_data_pool[8];
+typedef struct
+{
+    uint8_t * buf1;
+    uint8_t * buf2;
+} adv_set_data_t;
+
+static adv_set_data_t adv_set_data[BLE_GAP_ADV_SET_COUNT_MAX];
 
+ble_data_item_t m_ble_data_pool[8];
 static uint8_t * mp_scan_data;
 
 #endif
@@ -68,6 +82,7 @@ void conn_ble_gap_sec_keys_init(void)
 #if NRF_SD_BLE_API_VERSION >= 6
     for (i = 0; i < 8; i++)
     {
+        m_ble_data_pool[i].state = BLE_DATA_BUF_FREE;
         m_ble_data_pool[i].id = 0;
     }
 #endif
@@ -75,21 +90,21 @@ void conn_ble_gap_sec_keys_init(void)
 
 uint32_t conn_ble_gap_sec_context_create(uint32_t *p_index)
 {
-  uint32_t err_code = NRF_ERROR_NO_MEM;
-  uint32_t i;
+    uint32_t err_code = NRF_ERROR_NO_MEM;
+    uint32_t i;
 
-  for (i=0; i<SER_MAX_CONNECTIONS; i++ )
-  {
-    if ( ! m_conn_keys_table[i].conn_active )
+    for (i=0; i<SER_MAX_CONNECTIONS; i++)
     {
-        m_conn_keys_table[i].conn_active = 1;
-        *p_index = i;
-        err_code = NRF_SUCCESS;
-        break;
+        if (!m_conn_keys_table[i].conn_active)
+        {
+            m_conn_keys_table[i].conn_active = 1;
+            *p_index = i;
+            err_code = NRF_SUCCESS;
+            break;
+        }
     }
-  }
 
-  return err_code;
+    return err_code;
 }
 
 uint32_t conn_ble_gap_sec_context_destroy(uint16_t conn_handle)
@@ -117,7 +132,7 @@ uint32_t conn_ble_gap_sec_context_find(uint16_t conn_handle, uint32_t *p_index)
 
   for (i=0; i<SER_MAX_CONNECTIONS; i++ )
   {
-    if ( (m_conn_keys_table[i].conn_handle == conn_handle) && (m_conn_keys_table[i].conn_active == 1) )
+    if ((m_conn_keys_table[i].conn_handle == conn_handle) && (m_conn_keys_table[i].conn_active == 1))
     {
         *p_index = i;
         err_code = NRF_SUCCESS;
@@ -149,8 +164,9 @@ uint8_t * conn_ble_gap_ble_data_buf_alloc(uint32_t id)
 
     for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
     {
-        if (m_ble_data_pool[i].id == 0)
+        if (m_ble_data_pool[i].state == BLE_DATA_BUF_FREE)
         {
+            m_ble_data_pool[i].state = BLE_DATA_BUF_IN_USE;
             m_ble_data_pool[i].id = id;
             return m_ble_data_pool[i].ble_data;
         }
@@ -175,6 +191,7 @@ uint32_t conn_ble_gap_ble_data_buf_free(uint8_t * p_data)
         {
             uint32_t id = m_ble_data_pool[i].id;
             m_ble_data_pool[i].id = 0;
+            m_ble_data_pool[i].state = BLE_DATA_BUF_FREE;
             return id;
         }
     }
@@ -182,21 +199,66 @@ uint32_t conn_ble_gap_ble_data_buf_free(uint8_t * p_data)
     return 0;
 }
 
-void conn_ble_gap_scan_data_set(uint8_t * p_scan_data)
+void conn_ble_gap_ble_data_mark_dirty(uint8_t * p_data)
 {
-    mp_scan_data = p_scan_data;
+    uint32_t i;
+
+    if (p_data)
+    {
+        for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
+        {
+            if (m_ble_data_pool[i].ble_data == p_data)
+            {
+                m_ble_data_pool[i].state = BLE_DATA_BUF_LAST_DIRTY;
+            }
+        }
+    }
 }
 
-void conn_ble_gap_scan_data_unset(bool free)
+void conn_ble_gap_ble_adv_data_mark_dirty(uint8_t * p_data1, uint8_t *p_data2)
 {
-    if (mp_scan_data)
+    uint32_t i;
+
+    /* First find if given id already allocated the buffer. */
+    for (i = 0; i < ARRAY_SIZE(m_ble_data_pool); i++)
     {
-        if (free)
+        if (m_ble_data_pool[i].state == BLE_DATA_BUF_LAST_DIRTY)
         {
-            (void)conn_ble_gap_ble_data_buf_free(mp_scan_data);
+            conn_ble_gap_ble_data_buf_free(m_ble_data_pool[i].ble_data);
         }
-        mp_scan_data = NULL;
     }
+
+    conn_ble_gap_ble_data_mark_dirty(p_data1);
+    conn_ble_gap_ble_data_mark_dirty(p_data2);
+}
+
+void conn_ble_gap_scan_data_set(uint8_t * p_scan_data)
+{
+	mp_scan_data = p_scan_data;
+}
+
+void conn_ble_gap_scan_data_unset(bool free)
+{
+	if (mp_scan_data)
+	{
+		if (free)
+		{
+			conn_ble_gap_ble_data_buf_free(mp_scan_data);
+		}
+		mp_scan_data = NULL;
+	}
+}
+
+void conn_ble_gap_set_adv_data_set(uint8_t adv_handle, uint8_t * buf1, uint8_t * buf2)
+{
+    if (adv_handle == BLE_GAP_ADV_SET_HANDLE_NOT_SET)
+    {
+        adv_handle = BLE_GAP_ADV_SET_COUNT_MAX - 1;
+    }
+    conn_ble_gap_ble_adv_data_mark_dirty(adv_set_data[adv_handle].buf1, adv_set_data[adv_handle].buf2);
+
+    adv_set_data[adv_handle].buf1 = buf1;
+    adv_set_data[adv_handle].buf2 = buf2;
 }
 #endif
 
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.h nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.h
@@ -124,6 +124,8 @@ uint32_t conn_ble_gap_ble_data_buf_free(uint8_t * p_data);
 void conn_ble_gap_scan_data_set(uint8_t * p_scan_data);
 void conn_ble_gap_scan_data_unset(bool free);
 
+void conn_ble_gap_set_adv_data_set(uint8_t adv_handle, uint8_t * buf1, uint8_t * buf2);
+
 #ifdef __cplusplus
 }
 #endif
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/ser_conn_event_encoder.c nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/ser_conn_event_encoder.c
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/ser_conn_event_encoder.c
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/ser_conn_event_encoder.c
@@ -108,7 +108,7 @@ void ser_conn_ble_event_encoder(void * p_event_data, uint16_t event_size)
          * scheduler queue. In result the next event reserves the TX buffer before the current
          * packet is sent. If in meantime a command arrives a command response cannot be sent in
          * result. Pausing the scheduler temporary prevents processing a next event. */
-        if (!m_reset_ongoing) 
+        if (!m_reset_ongoing)
         {
             app_sched_pause();
         }
diff --git nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/ser_conn_handlers.h nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/ser_conn_handlers.h
--- nRF5_SDK_15.3.0_59ac345/components/serialization/connectivity/ser_conn_handlers.h
+++ nRF5_SDK_15.3.0_66869dd/components/serialization/connectivity/ser_conn_handlers.h
@@ -79,6 +79,8 @@ extern "C" {
 /** Maximum number of events in the application scheduler queue. */
 #ifdef S112
 #define SER_CONN_SCHED_QUEUE_SIZE             8u
+#elif defined(SER_PHY_HCI_USB_CDC)
+#define SER_CONN_SCHED_QUEUE_SIZE             64u
 #else
 #define SER_CONN_SCHED_QUEUE_SIZE             16u
 #endif
diff --git nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh.c nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh.c
--- nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh.c
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh.c
@@ -204,7 +204,11 @@ ret_code_t nrf_sdh_enable_request(void)
         .source       = NRF_SDH_CLOCK_LF_SRC,
         .rc_ctiv      = NRF_SDH_CLOCK_LF_RC_CTIV,
         .rc_temp_ctiv = NRF_SDH_CLOCK_LF_RC_TEMP_CTIV,
+#if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 3
         .accuracy     = NRF_SDH_CLOCK_LF_ACCURACY
+#else
+        .xtal_accuracy     = NRF_SDH_CLOCK_LF_ACCURACY
+#endif
     };
 
     CRITICAL_REGION_ENTER();
@@ -224,6 +228,13 @@ ret_code_t nrf_sdh_enable_request(void)
     m_nrf_sdh_continue  = false;
     m_nrf_sdh_suspended = false;
 
+#ifdef SOFTDEVICE_PRESENT
+    ret_code = sd_nvic_ClearPendingIRQ((IRQn_Type)SD_EVT_IRQn);
+    APP_ERROR_CHECK(ret_code);
+#else
+    // In case of serialization, NVIC must be accessed directly.
+    NVIC_ClearPendingIRQ((IRQn_Type)SD_EVT_IRQn);
+#endif
     // Enable event interrupt.
     // Interrupt priority has already been set by the stack.
     softdevices_evt_irq_enable();
diff --git nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh_ble.c nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh_ble.c
--- nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh_ble.c
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh_ble.c
@@ -102,8 +102,9 @@ ret_code_t nrf_sdh_ble_app_ram_start_get(uint32_t * p_app_ram_start)
 
 ret_code_t nrf_sdh_ble_default_cfg_set(uint8_t conn_cfg_tag, uint32_t * p_ram_start)
 {
-    uint32_t ret_code;
 
+#if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 3
+    uint32_t ret_code;
     ret_code = nrf_sdh_ble_app_ram_start_get(p_ram_start);
     if (ret_code != NRF_SUCCESS)
     {
@@ -197,7 +198,7 @@ ret_code_t nrf_sdh_ble_default_cfg_set(uint8_t conn_cfg_tag, uint32_t * p_ram_st
         NRF_LOG_ERROR("sd_ble_cfg_set() returned %s when attempting to set BLE_GATTS_CFG_SERVICE_CHANGED.",
                       nrf_strerror_get(ret_code));
     }
-
+#endif //defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 3
     return NRF_SUCCESS;
 }
 
@@ -217,7 +218,7 @@ static uint32_t ram_end_address_get(void)
     return RAM_START + ram_total_size;
 }
 
-
+#if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 4
 ret_code_t nrf_sdh_ble_enable(uint32_t * const p_app_ram_start)
 {
     // Start of RAM, obtained from linker symbol.
@@ -256,7 +257,46 @@ ret_code_t nrf_sdh_ble_enable(uint32_t * const p_app_ram_start)
 
     return ret_code;
 }
+#else
+ret_code_t nrf_sdh_ble_enable(ble_enable_params_t * p_ble_enable_params, uint32_t * const p_app_ram_start)
+{
+    // Start of RAM, obtained from linker symbol.
+    uint32_t const app_ram_start_link = *p_app_ram_start;
 
+    ret_code_t ret_code = sd_ble_enable(p_ble_enable_params, p_app_ram_start);
+    if (*p_app_ram_start > app_ram_start_link)
+    {
+        NRF_LOG_WARNING("Insufficient RAM allocated for the SoftDevice.");
+
+        NRF_LOG_WARNING("Change the RAM start location from 0x%x to 0x%x.",
+                        app_ram_start_link, *p_app_ram_start);
+        NRF_LOG_WARNING("Maximum RAM size for application is 0x%x.",
+                        ram_end_address_get() - (*p_app_ram_start));
+    }
+    else
+    {
+        NRF_LOG_DEBUG("RAM starts at 0x%x", app_ram_start_link);
+        if (*p_app_ram_start != app_ram_start_link)
+        {
+            NRF_LOG_DEBUG("RAM start location can be adjusted to 0x%x.", *p_app_ram_start);
+
+            NRF_LOG_DEBUG("RAM size for application can be adjusted to 0x%x.",
+                          ram_end_address_get() - (*p_app_ram_start));
+        }
+    }
+
+    if (ret_code == NRF_SUCCESS)
+    {
+        m_stack_is_enabled = true;
+    }
+    else
+    {
+        NRF_LOG_ERROR("sd_ble_enable() returned %s.", nrf_strerror_get(ret_code));
+    }
+
+    return ret_code;
+}
+#endif
 
 /**@brief       Function for polling BLE events.
  *
@@ -306,6 +346,12 @@ static void nrf_sdh_ble_evts_poll(void * p_context)
 
             handler(p_ble_evt, p_observer->p_context);
         }
+
+        /* Interrupt processing if sdh got suspended. */
+        if (nrf_sdh_is_suspended()) {
+	     ret_code = NRF_ERROR_NOT_FOUND;
+             break;
+        }
     }
 
     if (ret_code != NRF_ERROR_NOT_FOUND)
diff --git nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh_ble.h nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh_ble.h
--- nRF5_SDK_15.3.0_59ac345/components/softdevice/common/nrf_sdh_ble.h
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/common/nrf_sdh_ble.h
@@ -62,6 +62,12 @@
 extern "C" {
 #endif
 
+#ifndef BLE_EVT_LEN_MAX
+#define BLE_EVT_LEN_MAX(ATT_MTU) ( \
+    offsetof(ble_evt_t, evt.gattc_evt.params.prim_srvc_disc_rsp.services) + ((ATT_MTU) - 1) / 4 * sizeof(ble_gattc_service_t) \
+)
+
+#endif
 /** @brief  Size of the buffer for a BLE event. */
 #define NRF_SDH_BLE_EVT_BUF_SIZE BLE_EVT_LEN_MAX(NRF_SDH_BLE_GATT_MAX_MTU_SIZE)
 
@@ -172,8 +178,11 @@ ret_code_t nrf_sdh_ble_default_cfg_set(uint8_t conn_cfg_tag, uint32_t * p_ram_st
  *
  * @param[in]   p_app_ram_start     Address of the start of application's RAM.
  */
+#if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION > 4
 ret_code_t nrf_sdh_ble_enable(uint32_t * p_app_ram_start);
-
+#else
+ret_code_t nrf_sdh_ble_enable(ble_enable_params_t * p_ble_enable_params, uint32_t * p_app_ram_start);
+#endif
 
 #ifdef __cplusplus
 }
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble.h
@@ -0,0 +1,681 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_COMMON BLE SoftDevice Common
+  @{
+  @defgroup ble_api Events, type definitions and API calls
+  @{
+
+  @brief Module independent events, type definitions and API calls for the BLE SoftDevice.
+
+ */
+
+#ifndef BLE_H__
+#define BLE_H__
+
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_gap.h"
+#include "ble_l2cap.h"
+#include "ble_gatt.h"
+#include "ble_gattc.h"
+#include "ble_gatts.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_COMMON_ENUMERATIONS Enumerations
+ * @{ */
+
+/**
+ * @brief Common API SVC numbers.
+ */
+enum BLE_COMMON_SVCS
+{
+  SD_BLE_ENABLE = BLE_SVC_BASE,         /**< Enable and initialize the BLE stack */
+  SD_BLE_EVT_GET,                       /**< Get an event from the pending events queue. */
+  SD_BLE_TX_PACKET_COUNT_GET,           /**< Get the total number of available application transmission packets for a particular connection. */
+  SD_BLE_UUID_VS_ADD,                   /**< Add a Vendor Specific UUID. */
+  SD_BLE_UUID_DECODE,                   /**< Decode UUID bytes. */
+  SD_BLE_UUID_ENCODE,                   /**< Encode UUID bytes. */
+  SD_BLE_VERSION_GET,                   /**< Get the local version information (company id, Link Layer Version, Link Layer Subversion). */
+  SD_BLE_USER_MEM_REPLY,                /**< User Memory Reply. */
+  SD_BLE_OPT_SET,                       /**< Set a BLE option. */
+  SD_BLE_OPT_GET,                       /**< Get a BLE option. */
+};
+
+  /**
+   * @brief BLE Module Independent Event IDs.
+   */
+enum BLE_COMMON_EVTS
+{
+  BLE_EVT_TX_COMPLETE  = BLE_EVT_BASE,  /**< Transmission Complete. @ref ble_evt_tx_complete_t */
+  BLE_EVT_USER_MEM_REQUEST,             /**< User Memory request. @ref ble_evt_user_mem_request_t */
+  BLE_EVT_USER_MEM_RELEASE,             /**< User Memory release. @ref ble_evt_user_mem_release_t */
+  BLE_EVT_DATA_LENGTH_CHANGED           /**< Link layer PDU length changed. @ref ble_evt_data_length_changed_t. */
+};
+
+/**@brief BLE connection bandwidth types.
+ * Bandwidth types supported by the SoftDevice. The bandwidth type dictates the maximum number of full length packets per connection interval.
+ */
+enum BLE_CONN_BWS
+{
+  BLE_CONN_BW_INVALID = 0,              /**< Invalid connection bandwidth. */
+  BLE_CONN_BW_LOW,                      /**< Low connection bandwidth. */
+  BLE_CONN_BW_MID,                      /**< Medium connection bandwidth. */
+  BLE_CONN_BW_HIGH                      /**< High connection bandwidth. */
+};
+
+/**@brief Common Option IDs.
+ * IDs that uniquely identify a common option.
+ */
+enum BLE_COMMON_OPTS
+{
+  BLE_COMMON_OPT_CONN_BW = BLE_OPT_BASE,     /**< Bandwidth configuration @ref ble_common_opt_conn_bw_t */
+  BLE_COMMON_OPT_PA_LNA,                     /**< PA and LNA options */
+  BLE_COMMON_OPT_CONN_EVT_EXT,               /**< Extended connection events option */
+};
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_DEFINES Defines
+ * @{ */
+
+/** @brief  Required pointer alignment for BLE Events.
+*/
+#define BLE_EVTS_PTR_ALIGNMENT    4
+
+/** @brief  Maximum possible length for BLE Events.
+ * @note Value of @ref ble_gatt_enable_params_t::att_mtu shall be used as a parameter.
+ * If that value is set to 0 then @ref GATT_MTU_SIZE_DEFAULT must be used instead.
+*/
+#define BLE_EVTS_LEN_MAX(ATT_MTU) (MAX( \
+  sizeof(ble_evt_t), \
+  MAX( \
+    offsetof(ble_evt_t, evt.gattc_evt.params.rel_disc_rsp.includes) + ((ATT_MTU) - 2) / 6 * sizeof(ble_gattc_include_t), \
+    offsetof(ble_evt_t, evt.gattc_evt.params.attr_info_disc_rsp.info.attr_info16) + ((ATT_MTU) - 2) / 4 * sizeof(ble_gattc_attr_info16_t) \
+  ) \
+))
+
+/** @defgroup BLE_USER_MEM_TYPES User Memory Types
+ * @{ */
+#define BLE_USER_MEM_TYPE_INVALID               0x00  /**< Invalid User Memory Types. */
+#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES   0x01  /**< User Memory for GATTS queued writes. */
+/** @} */
+
+/** @defgroup BLE_UUID_VS_COUNTS Vendor Specific UUID counts
+ * @{
+ */
+#define BLE_UUID_VS_COUNT_MIN         1    /**< Minimum VS UUID count. */
+#define BLE_UUID_VS_COUNT_DEFAULT     0    /**< Use the default VS UUID count (10 for this version of the SoftDevice). */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_STRUCTURES Structures
+ * @{ */
+
+/**@brief User Memory Block. */
+typedef struct
+{
+  uint8_t          *p_mem;      /**< Pointer to the start of the user memory block. */
+  uint16_t          len;        /**< Length in bytes of the user memory block. */
+} ble_user_mem_block_t;
+
+/**
+ * @brief Event structure for @ref BLE_EVT_TX_COMPLETE.
+ */
+typedef struct
+{
+  uint8_t count;                        /**< Number of packets transmitted. */
+} ble_evt_tx_complete_t;
+
+/**@brief Event structure for @ref BLE_EVT_USER_MEM_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;     /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+} ble_evt_user_mem_request_t;
+
+/**@brief Event structure for @ref BLE_EVT_USER_MEM_RELEASE. */
+typedef struct
+{
+  uint8_t                     type;       /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+  ble_user_mem_block_t        mem_block;  /**< User memory block */
+} ble_evt_user_mem_release_t;
+
+/**@brief Event structure for @ref BLE_EVT_DATA_LENGTH_CHANGED. */
+typedef struct
+{
+  uint16_t max_tx_octets;                 /**< The maximum number of payload octets in a Link Layer Data Channel PDU that the local Controller will send. Range: 27-251 */
+  uint16_t max_tx_time;                   /**< The maximum time (in microseconds) that the local Controller will take to send a Link Layer Data Channel PDU. Range: 328-2120  */
+  uint16_t max_rx_octets;                 /**< The maximum number of payload octets in a Link Layer Data Channel PDU that the local controller expects to receive. Range: 27-251 */
+  uint16_t max_rx_time;                   /**< The maximum time (in microseconds) that the local Controller expects to take to receive a Link Layer Data Channel PDU. Range: 328-2120 */
+} ble_evt_data_length_changed_t;
+
+/**@brief Event structure for events not associated with a specific function module. */
+typedef struct
+{
+  uint16_t conn_handle;                                 /**< Connection Handle on which this event occurred. */
+  union
+  {
+    ble_evt_tx_complete_t           tx_complete;         /**< Transmission Complete. */
+    ble_evt_user_mem_request_t      user_mem_request;    /**< User Memory Request Event Parameters. */
+    ble_evt_user_mem_release_t      user_mem_release;    /**< User Memory Release Event Parameters. */
+    ble_evt_data_length_changed_t   data_length_changed; /**< Data Length Changed Event Parameters. */
+  } params;                                              /**< Event parameter union. */
+} ble_common_evt_t;
+
+/**@brief BLE Event header. */
+typedef struct
+{
+  uint16_t evt_id;                /**< Value from a BLE_<module>_EVT series. */
+  uint16_t evt_len;               /**< Length in octets including this header. */
+} ble_evt_hdr_t;
+
+/**@brief Common BLE Event type, wrapping the module specific event reports. */
+typedef struct
+{
+  ble_evt_hdr_t header;           /**< Event header. */
+  union
+  {
+    ble_common_evt_t  common_evt; /**< Common Event, evt_id in BLE_EVT_* series. */
+    ble_gap_evt_t     gap_evt;    /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */
+    ble_l2cap_evt_t   l2cap_evt;  /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */
+    ble_gattc_evt_t   gattc_evt;  /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */
+    ble_gatts_evt_t   gatts_evt;  /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */
+  } evt;                          /**< Event union. */
+} ble_evt_t;
+
+
+/**
+ * @brief Version Information.
+ */
+typedef struct
+{
+  uint8_t   version_number;    /**< Link Layer Version number for BT 4.1 spec is 7 (https://www.bluetooth.org/en-us/specification/assigned-numbers/link-layer). */
+  uint16_t  company_id;        /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */
+  uint16_t  subversion_number; /**< Link Layer Sub Version number, corresponds to the SoftDevice Config ID or Firmware ID (FWID). */
+} ble_version_t;
+
+/**
+ * @brief Configuration parameters for the PA and LNA.
+ */
+typedef struct
+{
+     uint8_t enable :1;      /**< Enable toggling for this amplifier */
+     uint8_t active_high :1; /**< Set the pin to be active high */
+     uint8_t gpio_pin :6;    /**< The GPIO pin to toggle for this amplifier */
+} ble_pa_lna_cfg_t;
+
+/**
+ * @brief PA & LNA GPIO toggle configuration
+ *
+ * This option configures the SoftDevice to toggle pins when the radio is active for use with a power amplifier and/or
+ * a low noise amplifier.
+ *
+ * Toggling the pins is achieved by using two PPI channels and a GPIOTE channel. The hardware channel IDs are provided
+ * by the application and should be regarded as reserved as long as any PA/LNA toggling is enabled.
+ *
+ * @note  @ref sd_ble_opt_get is not supported for this option.
+ * @note  This feature is only supported for nRF52, on nRF51 @ref NRF_ERROR_NOT_SUPPORTED will always be returned.
+ * @note  Setting this option while the radio is in use (i.e. any of the roles are active) may have undefined consequences
+ * and must be avoided by the application.
+ */
+typedef struct
+{
+   ble_pa_lna_cfg_t pa_cfg;   /**< Power Amplifier configuration */
+   ble_pa_lna_cfg_t lna_cfg;  /**< Low Noise Amplifier configuration */
+
+   uint8_t ppi_ch_id_set;     /**< PPI channel used for radio pin setting */
+   uint8_t ppi_ch_id_clr;     /**< PPI channel used for radio pin clearing */
+   uint8_t gpiote_ch_id;      /**< GPIOTE channel used for radio pin toggling */
+} ble_common_opt_pa_lna_t;
+
+/**
+ * @brief BLE connection bandwidth configuration parameters
+ */
+typedef struct
+{
+  uint8_t conn_bw_tx;   /**< Connection bandwidth configuration for transmission, see @ref BLE_CONN_BWS.*/
+  uint8_t conn_bw_rx;   /**< Connection bandwidth configuration for reception, see @ref BLE_CONN_BWS.*/
+} ble_conn_bw_t;
+
+/**@brief BLE connection specific bandwidth configuration parameters.
+ *
+ * This can be used with @ref sd_ble_opt_set to set the bandwidth configuration to be used when creating connections.
+ *
+ * Call @ref sd_ble_opt_set with this option prior to calling @ref sd_ble_gap_adv_start or @ref sd_ble_gap_connect.
+ *
+ * The bandwidth configurations set via @ref sd_ble_opt_set are maintained separately for central and peripheral
+ * connections. The given configurations are used for all future connections of the role indicated in this structure
+ * unless they are changed by subsequent @ref sd_ble_opt_set calls.
+ *
+ * @note When this option is not used, the SoftDevice will use the default options:
+ * - @ref BLE_CONN_BW_HIGH for @ref BLE_GAP_ROLE_PERIPH connections (both transmission and reception).
+ * - @ref BLE_CONN_BW_MID for @ref BLE_GAP_ROLE_CENTRAL connections (both transmisison and reception).
+ * This option allows the application to selectively override these defaults for each role.
+ *
+ * @note The global memory pool configuration can be set with the @ref ble_conn_bw_counts_t configuration parameter, which
+ * is provided to @ref sd_ble_enable.
+ *
+ * @note @ref sd_ble_opt_get is not supported for this option.
+ * @note Please refer to SoftDevice Specification for more information on bandwidth configuration.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_CONF_BW}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::BLE_ERROR_INVALID_ROLE The role is invalid.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid bandwidth configuration parameters.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED If the combination of role and bandwidth configuration is not supported.
+ */
+typedef struct
+{
+  uint8_t            role;     /**< BLE role of the connection, see @ref BLE_GAP_ROLES. */
+  ble_conn_bw_t      conn_bw;  /**< Bandwidth configuration parameters. */
+} ble_common_opt_conn_bw_t;
+
+/**
+ * @brief Configuration of extended BLE connection events.
+ *
+ * When enabled the SoftDevice will dynamically extend the connection event when possible.
+ *
+ * The connection event length is controlled by the bandwidth configuration as set by @ref ble_common_opt_conn_bw_t.
+ * The connection event can be extended if there is time to send another packet pair before the start of the next connection interval,
+ * and if there are no conflicts with other BLE roles requesting radio time.
+ *
+ * @note @ref sd_ble_opt_get is not supported for this option.
+ */
+typedef struct
+{
+   uint8_t enable : 1; /**< Enable extended BLE connection events, disabled by default. */
+} ble_common_opt_conn_evt_ext_t;
+
+/**@brief Option structure for common options. */
+typedef union
+{
+  ble_common_opt_conn_bw_t      conn_bw;       /**< Parameters for the connection bandwidth option. */
+  ble_common_opt_pa_lna_t       pa_lna;        /**< Parameters for controlling PA and LNA pin toggling. */
+  ble_common_opt_conn_evt_ext_t conn_evt_ext;  /**< Parameters for enabling extended connection events. */
+} ble_common_opt_t;
+
+/**@brief Common BLE Option type, wrapping the module specific options. */
+typedef union
+{
+  ble_common_opt_t  common_opt;         /**< COMMON options, opt_id in @ref BLE_COMMON_OPTS series. */
+  ble_gap_opt_t     gap_opt;            /**< GAP option, opt_id in @ref BLE_GAP_OPTS series. */
+} ble_opt_t;
+
+/**
+ * @brief BLE bandwidth count parameters
+ *
+ * These parameters are used to configure the memory pools allocated within the SoftDevice for application packets
+ * (both transmission and reception) for all connections.
+ *
+ * @note The sum of all three counts must add up to the sum of @ref ble_gap_enable_params_t::central_conn_count and
+ * @ref ble_gap_enable_params_t::periph_conn_count in @ref ble_gap_enable_params_t.
+ */
+typedef struct {
+  uint8_t high_count;   /**< Total number of high bandwidth TX or RX memory pools available to the application at runtime for all active connections. */
+  uint8_t mid_count;    /**< Total number of medium bandwidth TX or RX memory pools available to the application at runtime for all active connections. */
+  uint8_t low_count;    /**< Total number of low bandwidth TX or RX memory pools available to the application at runtime for all active connections. */
+} ble_conn_bw_count_t;
+
+/**
+ * @brief BLE bandwidth global memory pool configuration parameters
+ *
+ * These configuration parameters are used to set the amount of memory dedicated to application packets for
+ * all connections. The application should specify the most demanding configuration for the intended use.
+ *
+ * Please refer to the SoftDevice Specification for more information on bandwidth configuration.
+ *
+ * @note Each connection created at runtime requires both a TX and an RX memory pool. By the use of these configuration
+ * parameters, the application can decide the size and total number of the global memory pools that will be later
+ * available for connection creation.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_CONF_BW}
+ * @endmscs
+ *
+ */
+typedef struct {
+  ble_conn_bw_count_t tx_counts;   /**< Global memory pool configuration for transmission.*/
+  ble_conn_bw_count_t rx_counts;   /**< Global memory pool configuration for reception.*/
+} ble_conn_bw_counts_t;
+
+/**
+ * @brief BLE Common Initialization parameters.
+ *
+ * @note If @ref p_conn_bw_counts is NULL the SoftDevice will assume default bandwidth configuration for all connections.
+ * To fit a custom bandwidth configuration requirement, the application developer may have to specify a custom memory
+ * pool configuration here. See @ref ble_common_opt_conn_bw_t for bandwidth configuration of individual connections.
+ * Please refer to the SoftDevice Specification for more information on bandwidth configuration.
+ */
+typedef struct
+{
+  uint16_t                  vs_uuid_count;     /**< Maximum number of 128-bit, Vendor Specific UUID bases to allocate. */
+  ble_conn_bw_counts_t      *p_conn_bw_counts; /**< Bandwidth configuration parameters or NULL for defaults. */
+} ble_common_enable_params_t;
+
+/**
+ * @brief BLE Initialization parameters.
+ */
+typedef struct
+{
+  ble_common_enable_params_t        common_enable_params;  /**< Common init parameters @ref ble_common_enable_params_t. */
+  ble_gap_enable_params_t           gap_enable_params;     /**< GAP init parameters @ref ble_gap_enable_params_t. */
+  ble_gatt_enable_params_t          gatt_enable_params;    /**< GATT init parameters @ref ble_gatt_enable_params_t. */
+  ble_gatts_enable_params_t         gatts_enable_params;   /**< GATTS init parameters @ref ble_gatts_enable_params_t. */
+} ble_enable_params_t;
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Enable the BLE stack
+ *
+ * @param[in, out] p_ble_enable_params Pointer to ble_enable_params_t
+ * @param[in, out] p_app_ram_base      Pointer to a variable containing the start address of the application RAM region
+ * (APP_RAM_BASE). On return, this will contain the minimum start address of the application RAM region required by the
+ * SoftDevice for this configuration. Calling @ref sd_ble_enable() with *p_app_ram_base set to 0 can be used during
+ * development to find out how much memory a specific configuration will need.
+ *
+ * @note The memory requirement for a specific configuration will not increase between SoftDevices with the same major
+ * version number.
+ *
+ * @note At runtime the IC's RAM is split into 2 regions: The SoftDevice RAM region is located between 0x20000000 and
+ *       APP_RAM_BASE-1 and the application's RAM region is located between APP_RAM_BASE and the start of the call stack.
+ *
+ * @details This call initializes the BLE stack, no other BLE related function can be called before this one.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_ENABLE}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS              The BLE stack has been initialized successfully.
+ * @retval ::NRF_ERROR_INVALID_STATE  The BLE stack had already been initialized and cannot be reinitialized.
+ * @retval ::NRF_ERROR_INVALID_ADDR   Invalid or not sufficiently aligned pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true:
+ *                                    - The specified Attribute Table size is too small.
+ *                                      The minimum acceptable size is defined by @ref BLE_GATTS_ATTR_TAB_SIZE_MIN.
+ *                                    - The specified Attribute Table size is not a multiple of 4.
+ *                                    - The device name length is invalid (must be between 0 and @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *                                    - The device name length is too long for the given Attribute Table.
+ * @retval ::NRF_ERROR_INVALID_PARAM  One or more of the following is true:
+ *                                    - Incorrectly configured VS UUID count.
+ *                                    - Invalid connection count parameters.
+ *                                    - Invalid device name location (vloc).
+ *                                    - Invalid device name security mode.
+ *                                    - Invalid maximum ATT_MTU size, see @ref ble_gatt_enable_params_t::att_mtu.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED  Device name security mode is not supported.
+ * @retval ::NRF_ERROR_NO_MEM         The amount of memory assigned to the SoftDevice by *p_app_ram_base is not
+ *                                    large enough to fit this configuration's memory requirement. Check *p_app_ram_base
+ *                                    and set the start address of the application RAM region accordingly.
+ * @retval ::NRF_ERROR_CONN_COUNT     The requested number of connections exceeds the maximum supported by the SoftDevice.
+ *                                    Please refer to the SoftDevice Specification for more information on role configuration.
+ */
+SVCALL(SD_BLE_ENABLE, uint32_t, sd_ble_enable(ble_enable_params_t * p_ble_enable_params, uint32_t * p_app_ram_base));
+
+/**@brief Get an event from the pending events queue.
+ *
+ * @param[out] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length.
+ *                    This buffer <b>must be aligned to the extend defined by @ref BLE_EVTS_PTR_ALIGNMENT</b>.
+ * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length.
+ *
+ * @details This call allows the application to pull a BLE event from the BLE stack. The application is signaled that
+ * an event is available from the BLE stack by the triggering of the SD_EVT_IRQn interrupt.
+ * The application is free to choose whether to call this function from thread mode (main context) or directly from the
+ * Interrupt Service Routine that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher
+ * priority than the application, this function should be called in a loop (until @ref NRF_ERROR_NOT_FOUND is returned)
+ * every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the BLE stack. Failure to do so
+ * could potentially leave events in the internal queue without the application being aware of this fact. Sizing the
+ * p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to
+ * be copied into application memory. If the buffer provided is not large enough to fit the entire contents of the event,
+ * @ref NRF_ERROR_DATA_SIZE will be returned and the application can then call again with a larger buffer size.
+ * The maximum possible event length is defined by @ref BLE_EVTS_LEN_MAX. The application may also "peek" the event length
+ * by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return:
+ *
+ *     \code
+ *     uint16_t len;
+ *     errcode = sd_ble_evt_get(NULL, &len);
+ *     \endcode
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_IRQ_EVT_MSC}
+ * @mmsc{@ref BLE_COMMON_THREAD_EVT_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Event pulled and stored into the supplied buffer.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND No events ready to be pulled.
+ * @retval ::NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer.
+ */
+SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t *p_dest, uint16_t *p_len));
+
+
+/**@brief Get the total number of available guaranteed application transmission packets for a particular connection.
+ *
+ * @details This call allows the application to obtain the total number of guaranteed application transmission packets
+ * available for a connection. Please note that this does not return the number of free packets, but rather the total
+ * amount of them for that particular connection. The application has two options to handle transmitting application packets:
+ * - Use a simple arithmetic calculation: after connection creation time the application should use this function to
+ * find out the total amount of guaranteed packets available to it and store it in a variable.
+ * Every time a packet is successfully queued for a transmission on this connection using any of the exposed functions in
+ * this  BLE API, the application should decrement that variable. Conversely, whenever a @ref BLE_EVT_TX_COMPLETE event
+ * with the conn_handle matching the particular connection is received by the application, it should retrieve the count
+ * field in such event and add that number to the same variable storing the number of available guaranteed packets. This
+ * mechanism allows the application to be aware at any time of the number of guaranteed application packets available for
+ * each of the active connections, and therefore it can know with certainty whether it is possible to send more data or
+ * it has to wait for a @ref BLE_EVT_TX_COMPLETE event before it proceeds.
+ * The application can still pursue transmissions when the number of guaranteed application packets available is smaller
+ * than or equal to zero, but successful queuing of the tranmsission is not guaranteed.
+ * - Choose to simply not keep track of available packets at all, and instead handle the @ref BLE_ERROR_NO_TX_PACKETS error
+ * by queueing the packet to be transmitted and try again as soon as a @ref BLE_EVT_TX_COMPLETE event arrives.
+ *
+ * The API functions that <b>may</b> consume an application packet depending on the parameters supplied to them can be found below:
+ * - @ref sd_ble_gattc_write (write without response only)
+ * - @ref sd_ble_gatts_hvx (notifications only)
+ * - @ref sd_ble_l2cap_tx (all packets)
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_count Pointer to a uint8_t which will contain the number of application transmission packets upon
+ *                     successful return.
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_APP_BUFF_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Number of application transmission packets retrieved successfully.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_TX_PACKET_COUNT_GET, uint32_t, sd_ble_tx_packet_count_get(uint16_t conn_handle, uint8_t *p_count));
+
+
+/**@brief Add a Vendor Specific base UUID.
+ *
+ * @details This call enables the application to add a vendor specific base UUID to the BLE stack's table, for later
+ * use with all other modules and APIs. This then allows the application to use the shorter, 24-bit @ref ble_uuid_t
+ * format when dealing with both 16-bit and 128-bit UUIDs without having to check for lengths and having split code
+ * paths. This is accomplished by extending the grouping mechanism that the Bluetooth SIG standard base UUID uses
+ * for all other 128-bit UUIDs. The type field in the @ref ble_uuid_t structure is an index (relative to
+ * @ref BLE_UUID_TYPE_VENDOR_BEGIN) to the table populated by multiple calls to this function, and the uuid field
+ * in the same structure contains the 2 bytes at indices 12 and 13. The number of possible 128-bit UUIDs available to
+ * the application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536,
+ * although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array.
+ *
+ * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by
+ * the 16-bit uuid field in @ref ble_uuid_t.
+ *
+ * @note If a UUID is already present in the BLE stack's internal table, the corresponding index will be returned in
+ * p_uuid_type along with an NRF_SUCCESS error code.
+ *
+ * @param[in]  p_vs_uuid    Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding
+ *                          bytes 12 and 13.
+ * @param[out] p_uuid_type  Pointer to a uint8_t where the type field in @ref ble_uuid_t corresponding to this UUID will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added the Vendor Specific UUID.
+ * @retval ::NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid.
+ * @retval ::NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs.
+ */
+SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const *p_vs_uuid, uint8_t *p_uuid_type));
+
+
+/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure.
+ *
+ * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared
+ * to the corresponding ones in each entry of the table of vendor specific UUIDs populated with @ref sd_ble_uuid_vs_add
+ * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index
+ * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type.
+ *
+ * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE.
+ *
+ * @param[in]   uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes).
+ * @param[in]   p_uuid_le   Pointer pointing to little endian raw UUID bytes.
+ * @param[out]  p_uuid      Pointer to a @ref ble_uuid_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid UUID length.
+ * @retval ::NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs.
+ */
+SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const *p_uuid_le, ble_uuid_t *p_uuid));
+
+
+/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit).
+ *
+ * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validity and size of p_uuid is computed.
+ *
+ * @param[in]   p_uuid        Pointer to a @ref ble_uuid_t structure that will be encoded into bytes.
+ * @param[out]  p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes).
+ * @param[out]  p_uuid_le     Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully encoded into the buffer.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid UUID type.
+ */
+SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const *p_uuid, uint8_t *p_uuid_le_len, uint8_t *p_uuid_le));
+
+
+/**@brief Get Version Information.
+ *
+ * @details This call allows the application to get the BLE stack version information.
+ *
+ * @param[out] p_version Pointer to a ble_version_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS  Version information stored successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy (typically doing a locally-initiated disconnection procedure).
+ */
+SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t *p_version));
+
+
+/**@brief Provide a user memory block.
+ *
+ * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in,out] p_block Pointer to a user memory block structure.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_PEER_CANCEL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully queued a response to the peer.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection state or no execute write request pending.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t const *p_block));
+
+/**@brief Set a BLE option.
+ *
+ * @details This call allows the application to set the value of an option.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC}
+ * @mmsc{@ref BLE_COMMON_CONF_BW}
+ * @endmscs
+ *
+ * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS.
+ * @param[in] p_opt Pointer to a ble_opt_t structure containing the option value.
+ *
+ * @retval ::NRF_SUCCESS  Option set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Unable to set the parameter at this time.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed.
+ */
+SVCALL(SD_BLE_OPT_SET, uint32_t, sd_ble_opt_set(uint32_t opt_id, ble_opt_t const *p_opt));
+
+
+/**@brief Get a BLE option.
+ *
+ * @details This call allows the application to retrieve the value of an option.
+ *
+ * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS.
+ * @param[out] p_opt Pointer to a ble_opt_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS  Option retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Unable to retrieve the parameter at this time.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED This option is not supported.
+ *
+ */
+SVCALL(SD_BLE_OPT_GET, uint32_t, sd_ble_opt_get(uint32_t opt_id, ble_opt_t *p_opt));
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_err.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_err.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_err.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @addtogroup  nrf_error
+  @{
+    @ingroup BLE_COMMON
+  @}
+
+  @defgroup ble_err General error codes
+  @{
+
+  @brief General error code definitions for the BLE API.
+
+  @ingroup BLE_COMMON
+*/
+#ifndef NRF_BLE_ERR_H__
+#define NRF_BLE_ERR_H__
+
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* @defgroup BLE_ERRORS Error Codes
+ * @{ */
+#define BLE_ERROR_NOT_ENABLED            (NRF_ERROR_STK_BASE_NUM+0x001) /**< @ref sd_ble_enable has not been called. */
+#define BLE_ERROR_INVALID_CONN_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid connection handle. */
+#define BLE_ERROR_INVALID_ATTR_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x003) /**< Invalid attribute handle. */
+#define BLE_ERROR_NO_TX_PACKETS          (NRF_ERROR_STK_BASE_NUM+0x004) /**< Not enough application packets available on this connection. */
+#define BLE_ERROR_INVALID_ROLE           (NRF_ERROR_STK_BASE_NUM+0x005) /**< Invalid role. */
+/** @} */
+
+
+/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges
+ *  @brief Assignment of subranges for module specific error codes.
+ *  @note For specific error codes, see ble_<module>.h or ble_error_<module>.h.
+ * @{ */
+#define NRF_L2CAP_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */
+#define NRF_GAP_ERR_BASE               (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */
+#define NRF_GATTC_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */
+#define NRF_GATTS_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gap.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gap.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gap.h
@@ -0,0 +1,1917 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GAP Generic Access Profile (GAP)
+  @{
+  @brief Definitions and prototypes for the GAP interface.
+ */
+
+#ifndef BLE_GAP_H__
+#define BLE_GAP_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup BLE_GAP_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GAP API SVC numbers.
+ */
+enum BLE_GAP_SVCS
+{
+  SD_BLE_GAP_ADDR_SET = BLE_GAP_SVC_BASE,       /**< Set own Bluetooth Address. */
+  SD_BLE_GAP_ADDR_GET,                          /**< Get own Bluetooth Address. */
+  SD_BLE_GAP_WHITELIST_SET,                     /**< Set active whitelist. */
+  SD_BLE_GAP_DEVICE_IDENTITIES_SET,             /**< Set device identity list. */
+  SD_BLE_GAP_PRIVACY_SET,                       /**< Set Privacy settings*/
+  SD_BLE_GAP_PRIVACY_GET,                       /**< Get Privacy settings*/
+  SD_BLE_GAP_ADV_DATA_SET,                      /**< Set Advertising Data. */
+  SD_BLE_GAP_ADV_START,                         /**< Start Advertising. */
+  SD_BLE_GAP_ADV_STOP,                          /**< Stop Advertising. */
+  SD_BLE_GAP_CONN_PARAM_UPDATE,                 /**< Connection Parameter Update. */
+  SD_BLE_GAP_DISCONNECT,                        /**< Disconnect. */
+  SD_BLE_GAP_TX_POWER_SET,                      /**< Set TX Power. */
+  SD_BLE_GAP_APPEARANCE_SET,                    /**< Set Appearance. */
+  SD_BLE_GAP_APPEARANCE_GET,                    /**< Get Appearance. */
+  SD_BLE_GAP_PPCP_SET,                          /**< Set PPCP. */
+  SD_BLE_GAP_PPCP_GET,                          /**< Get PPCP. */
+  SD_BLE_GAP_DEVICE_NAME_SET,                   /**< Set Device Name. */
+  SD_BLE_GAP_DEVICE_NAME_GET,                   /**< Get Device Name. */
+  SD_BLE_GAP_AUTHENTICATE,                      /**< Initiate Pairing/Bonding. */
+  SD_BLE_GAP_SEC_PARAMS_REPLY,                  /**< Reply with Security Parameters. */
+  SD_BLE_GAP_AUTH_KEY_REPLY,                    /**< Reply with an authentication key. */
+  SD_BLE_GAP_LESC_DHKEY_REPLY,                  /**< Reply with an LE Secure Connections DHKey. */
+  SD_BLE_GAP_KEYPRESS_NOTIFY,                   /**< Notify of a keypress during an authentication procedure. */
+  SD_BLE_GAP_LESC_OOB_DATA_GET,                 /**< Get the local LE Secure Connections OOB data. */
+  SD_BLE_GAP_LESC_OOB_DATA_SET,                 /**< Set the remote LE Secure Connections OOB data. */
+  SD_BLE_GAP_ENCRYPT,                           /**< Initiate encryption procedure. */
+  SD_BLE_GAP_SEC_INFO_REPLY,                    /**< Reply with Security Information. */
+  SD_BLE_GAP_CONN_SEC_GET,                      /**< Obtain connection security level. */
+  SD_BLE_GAP_RSSI_START,                        /**< Start reporting of changes in RSSI. */
+  SD_BLE_GAP_RSSI_STOP,                         /**< Stop reporting of changes in RSSI. */
+  SD_BLE_GAP_SCAN_START,                        /**< Start Scanning. */
+  SD_BLE_GAP_SCAN_STOP,                         /**< Stop Scanning. */
+  SD_BLE_GAP_CONNECT,                           /**< Connect. */
+  SD_BLE_GAP_CONNECT_CANCEL,                    /**< Cancel ongoing connection procedure. */
+  SD_BLE_GAP_RSSI_GET,                          /**< Get the last RSSI sample. */
+};
+
+/**@brief GAP Event IDs.
+ * IDs that uniquely identify an event coming from the stack to the application.
+ */
+enum BLE_GAP_EVTS
+{
+  BLE_GAP_EVT_CONNECTED  = BLE_GAP_EVT_BASE,    /**< Connection established.                         \n See @ref ble_gap_evt_connected_t.            */
+  BLE_GAP_EVT_DISCONNECTED,                     /**< Disconnected from peer.                         \n See @ref ble_gap_evt_disconnected_t.         */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE,                /**< Connection Parameters updated.                  \n See @ref ble_gap_evt_conn_param_update_t.    */
+  BLE_GAP_EVT_SEC_PARAMS_REQUEST,               /**< Request to provide security parameters.         \n Reply with @ref sd_ble_gap_sec_params_reply.  \n See @ref ble_gap_evt_sec_params_request_t. */
+  BLE_GAP_EVT_SEC_INFO_REQUEST,                 /**< Request to provide security information.        \n Reply with @ref sd_ble_gap_sec_info_reply.    \n See @ref ble_gap_evt_sec_info_request_t.   */
+  BLE_GAP_EVT_PASSKEY_DISPLAY,                  /**< Request to display a passkey to the user.       \n In LESC Numeric Comparison, reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_passkey_display_t. */
+  BLE_GAP_EVT_KEY_PRESSED,                      /**< Notification of a keypress on the remote device.\n See @ref ble_gap_evt_key_pressed_t           */
+  BLE_GAP_EVT_AUTH_KEY_REQUEST,                 /**< Request to provide an authentication key.       \n Reply with @ref sd_ble_gap_auth_key_reply.    \n See @ref ble_gap_evt_auth_key_request_t.   */
+  BLE_GAP_EVT_LESC_DHKEY_REQUEST,               /**< Request to calculate an LE Secure Connections DHKey. \n Reply with @ref sd_ble_gap_lesc_dhkey_reply.  \n See @ref ble_gap_evt_lesc_dhkey_request_t */
+  BLE_GAP_EVT_AUTH_STATUS,                      /**< Authentication procedure completed with status. \n See @ref ble_gap_evt_auth_status_t.          */
+  BLE_GAP_EVT_CONN_SEC_UPDATE,                  /**< Connection security updated.                    \n See @ref ble_gap_evt_conn_sec_update_t.      */
+  BLE_GAP_EVT_TIMEOUT,                          /**< Timeout expired.                                \n See @ref ble_gap_evt_timeout_t.              */
+  BLE_GAP_EVT_RSSI_CHANGED,                     /**< RSSI report.                                    \n See @ref ble_gap_evt_rssi_changed_t.         */
+  BLE_GAP_EVT_ADV_REPORT,                       /**< Advertising report.                             \n See @ref ble_gap_evt_adv_report_t.           */
+  BLE_GAP_EVT_SEC_REQUEST,                      /**< Security Request.                               \n See @ref ble_gap_evt_sec_request_t.          */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST,        /**< Connection Parameter Update Request.            \n Reply with @ref sd_ble_gap_conn_param_update. \n See @ref ble_gap_evt_conn_param_update_request_t. */
+  BLE_GAP_EVT_SCAN_REQ_REPORT,                  /**< Scan request report.                            \n See @ref ble_gap_evt_scan_req_report_t.      */
+};
+
+/**@brief GAP Option IDs.
+ * IDs that uniquely identify a GAP option.
+ */
+enum BLE_GAP_OPTS
+{
+  BLE_GAP_OPT_CH_MAP  = BLE_GAP_OPT_BASE,       /**< Channel Map. @ref ble_gap_opt_ch_map_t  */
+  BLE_GAP_OPT_LOCAL_CONN_LATENCY,               /**< Local connection latency. @ref ble_gap_opt_local_conn_latency_t */
+  BLE_GAP_OPT_PASSKEY,                          /**< Set passkey. @ref ble_gap_opt_passkey_t */
+  BLE_GAP_OPT_SCAN_REQ_REPORT,                  /**< Scan request report. @ref ble_gap_opt_scan_req_report_t */
+  BLE_GAP_OPT_COMPAT_MODE,                      /**< Compatibility mode. @ref ble_gap_opt_compat_mode_t */
+  BLE_GAP_OPT_AUTH_PAYLOAD_TIMEOUT,             /**< Set Authenticated payload timeout. @ref ble_gap_opt_auth_payload_timeout_t */
+  BLE_GAP_OPT_EXT_LEN,                          /**< Extended length packets. @ref ble_gap_opt_ext_len_t */
+};
+
+/** @} */
+
+/**@addtogroup BLE_GAP_DEFINES Defines
+ * @{ */
+
+/**@defgroup BLE_ERRORS_GAP SVC return values specific to GAP
+ * @{ */
+#define BLE_ERROR_GAP_UUID_LIST_MISMATCH            (NRF_GAP_ERR_BASE + 0x000)  /**< UUID list does not contain an integral number of UUIDs. */
+#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST   (NRF_GAP_ERR_BASE + 0x001)  /**< Use of Whitelist not permitted with discoverable advertising. */
+#define BLE_ERROR_GAP_INVALID_BLE_ADDR              (NRF_GAP_ERR_BASE + 0x002)  /**< The upper two bits of the address do not correspond to the specified address type. */
+#define BLE_ERROR_GAP_WHITELIST_IN_USE              (NRF_GAP_ERR_BASE + 0x003)  /**< Attempt to modify the whitelist while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE      (NRF_GAP_ERR_BASE + 0x004)  /**< Attempt to modify the device identity list while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE   (NRF_GAP_ERR_BASE + 0x005)  /**< The device identity list contains entries with duplicate identity addresses. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ROLES GAP Roles
+ * @note Not explicitly used in peripheral API, but will be relevant for central API.
+ * @{ */
+#define BLE_GAP_ROLE_INVALID     0x0            /**< Invalid Role. */
+#define BLE_GAP_ROLE_PERIPH      0x1            /**< Peripheral Role. */
+#define BLE_GAP_ROLE_CENTRAL     0x2            /**< Central Role. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources
+ * @{ */
+#define BLE_GAP_TIMEOUT_SRC_ADVERTISING                0x00 /**< Advertising timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SECURITY_REQUEST           0x01 /**< Security request timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SCAN                       0x02 /**< Scanning timeout. */
+#define BLE_GAP_TIMEOUT_SRC_CONN                       0x03 /**< Connection timeout. */
+#define BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD               0x04 /**< Authenticated payload timeout. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADDR_TYPES GAP Address types
+ * @{ */
+#define BLE_GAP_ADDR_TYPE_PUBLIC                        0x00 /**< Public address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC                 0x01 /**< Random static address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     0x02 /**< Random private resolvable address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Random private non-resolvable address. */
+/**@} */
+
+
+/**@brief The default interval in seconds at which a private address is refreshed.  */
+#define BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (900) /* 15 minutes. */
+/**@brief The maximum interval in seconds at which a private address can be refreshed.  */
+#define BLE_GAP_MAX_PRIVATE_ADDR_CYCLE_INTERVAL_S     (41400) /* 11 hours 30 minutes. */
+
+
+/** @brief BLE address length. */
+#define BLE_GAP_ADDR_LEN (6)
+
+
+/**@defgroup BLE_GAP_PRIVACY_MODES Privacy modes
+ * @{ */
+#define BLE_GAP_PRIVACY_MODE_OFF                       0x00 /**< Device will send and accept its identity address for its own address. */
+#define BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY            0x01 /**< Device will send and accept only private addresses for its own address. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format
+ * @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm
+ * @{ */
+#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
+#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
+#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
+#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
+#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data - 16-bit UUID. */
+#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
+#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
+#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
+#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL                0x1A /**< Advertising Interval. */
+#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS         0x1B /**< LE Bluetooth Device Address. */
+#define BLE_GAP_AD_TYPE_LE_ROLE                             0x1C /**< LE Role. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256            0x1D /**< Simple Pairing Hash C-256. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256      0x1E /**< Simple Pairing Randomizer R-256. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID             0x20 /**< Service Data - 32-bit UUID. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID            0x21 /**< Service Data - 128-bit UUID. */
+#define BLE_GAP_AD_TYPE_URI                                 0x24 /**< URI */
+#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA                 0x3D /**< 3D Information Data. */
+#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags
+ * @{ */
+#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE         (0x01)   /**< LE Limited Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE         (0x02)   /**< LE General Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED         (0x04)   /**< BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER         (0x08)   /**< Simultaneous LE and BR/EDR, Controller. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST               (0x10)   /**< Simultaneous LE and BR/EDR, Host. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE Limited Discoverable Mode, BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE General Discoverable Mode, BR/EDR not supported. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min
+ * @{ */
+#define BLE_GAP_ADV_INTERVAL_MIN        0x0020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */
+#define BLE_GAP_ADV_NONCON_INTERVAL_MIN 0x00A0 /**< Minimum Advertising interval in 625 us units for non connectable mode, i.e. 100 ms. */
+#define BLE_GAP_ADV_INTERVAL_MAX        0x4000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. */
+ /**@}  */
+
+
+/**@defgroup BLE_GAP_SCAN_INTERVALS GAP Scan interval max and min
+ * @{ */
+#define BLE_GAP_SCAN_INTERVAL_MIN       0x0004 /**< Minimum Scan interval in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_INTERVAL_MAX       0x4000 /**< Maximum Scan interval in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_WINDOW GAP Scan window max and min
+ * @{ */
+#define BLE_GAP_SCAN_WINDOW_MIN         0x0004 /**< Minimum Scan window in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_WINDOW_MAX         0x4000 /**< Maximum Scan window in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_TIMEOUT GAP Scan timeout max and min
+ * @{ */
+#define BLE_GAP_SCAN_TIMEOUT_MIN        0x0001 /**< Minimum Scan timeout in seconds. */
+#define BLE_GAP_SCAN_TIMEOUT_MAX        0xFFFF /**< Maximum Scan timeout in seconds. */
+ /** @}  */
+
+
+/**@brief Maximum size of advertising data in octets. */
+#define BLE_GAP_ADV_MAX_SIZE            (31)
+
+
+/**@defgroup BLE_GAP_ADV_TYPES GAP Advertising types
+ * @{ */
+#define BLE_GAP_ADV_TYPE_ADV_IND          0x00   /**< Connectable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND   0x01   /**< Connectable directed. */
+#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND     0x02   /**< Scannable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND  0x03   /**< Non connectable undirected. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies
+ * @{ */
+#define BLE_GAP_ADV_FP_ANY                0x00   /**< Allow scan requests and connect requests from any device. */
+#define BLE_GAP_ADV_FP_FILTER_SCANREQ     0x01   /**< Filter scan requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_CONNREQ     0x02   /**< Filter connect requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_BOTH        0x03   /**< Filter both scan and connect requests with whitelist. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values
+ * @{ */
+#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (180) /**< Maximum advertising time in limited discoverable mode (TGAP(lim_adv_timeout) = 180s). */
+#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0)   /**< Unlimited advertising in general discoverable mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_DISC_MODES GAP Discovery modes
+ * @{ */
+#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE  0x00   /**< Not discoverable discovery Mode. */
+#define BLE_GAP_DISC_MODE_LIMITED           0x01   /**< Limited Discovery Mode. */
+#define BLE_GAP_DISC_MODE_GENERAL           0x02   /**< General Discovery Mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_IO_CAPS GAP IO Capabilities
+ * @{ */
+#define BLE_GAP_IO_CAPS_DISPLAY_ONLY      0x00   /**< Display Only. */
+#define BLE_GAP_IO_CAPS_DISPLAY_YESNO     0x01   /**< Display and Yes/No entry. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY     0x02   /**< Keyboard Only. */
+#define BLE_GAP_IO_CAPS_NONE              0x03   /**< No I/O capabilities. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY  0x04   /**< Keyboard and Display. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types
+ * @{ */
+#define BLE_GAP_AUTH_KEY_TYPE_NONE        0x00   /**< No key (may be used to reject). */
+#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY     0x01   /**< 6-digit Passkey. */
+#define BLE_GAP_AUTH_KEY_TYPE_OOB         0x02   /**< Out Of Band data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_KP_NOT_TYPES GAP Keypress Notification Types
+ * @{ */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_START       0x00   /**< Passkey entry started. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_IN    0x01   /**< Passkey digit entered. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_OUT   0x02   /**< Passkey digit erased. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_CLEAR       0x03   /**< Passkey cleared. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_END         0x04   /**< Passkey entry completed. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS GAP Security status
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SUCCESS                0x00  /**< Procedure completed with success. */
+#define BLE_GAP_SEC_STATUS_TIMEOUT                0x01  /**< Procedure timed out. */
+#define BLE_GAP_SEC_STATUS_PDU_INVALID            0x02  /**< Invalid PDU received. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_BEGIN       0x03  /**< Reserved for Future Use range #1 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_END         0x80  /**< Reserved for Future Use range #1 end. */
+#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED   0x81  /**< Passkey entry failed (user cancelled or other). */
+#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE      0x82  /**< Out of Band Key not available. */
+#define BLE_GAP_SEC_STATUS_AUTH_REQ               0x83  /**< Authentication requirements not met. */
+#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE          0x84  /**< Confirm value failed. */
+#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP       0x85  /**< Pairing not supported.  */
+#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE           0x86  /**< Encryption key size. */
+#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED    0x87  /**< Unsupported SMP command. */
+#define BLE_GAP_SEC_STATUS_UNSPECIFIED            0x88  /**< Unspecified reason. */
+#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS      0x89  /**< Too little time elapsed since last attempt. */
+#define BLE_GAP_SEC_STATUS_INVALID_PARAMS         0x8A  /**< Invalid parameters. */
+#define BLE_GAP_SEC_STATUS_DHKEY_FAILURE          0x8B  /**< DHKey check failure. */
+#define BLE_GAP_SEC_STATUS_NUM_COMP_FAILURE       0x8C  /**< Numeric Comparison failure. */
+#define BLE_GAP_SEC_STATUS_BR_EDR_IN_PROG         0x8D  /**< BR/EDR pairing in progress. */
+#define BLE_GAP_SEC_STATUS_X_TRANS_KEY_DISALLOWED 0x8E  /**< BR/EDR Link Key cannot be used for LE keys. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_BEGIN       0x8F  /**< Reserved for Future Use range #2 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_END         0xFF  /**< Reserved for Future Use range #2 end. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL           0x00  /**< Local failure. */
+#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE          0x01  /**< Remote failure. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits
+ * @{ */
+#define BLE_GAP_CP_MIN_CONN_INTVL_NONE           0xFFFF  /**< No new minimum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MIN            0x0006  /**< Lowest minimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MAX            0x0C80  /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_NONE           0xFFFF  /**< No new maximum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MIN            0x0006  /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MAX            0x0C80  /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_SLAVE_LATENCY_MAX             0x01F3  /**< Highest slave latency permitted, in connection events. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE         0xFFFF  /**< No new supervision timeout specified in connect parameters. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN          0x000A  /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX          0x0C80  /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */
+/**@} */
+
+
+/**@brief GAP device name defines. */
+#define BLE_GAP_DEVNAME_DEFAULT                  "nRF5x" /**< Default device name value. */
+#define BLE_GAP_DEVNAME_DEFAULT_LEN              31      /**< Default number of octets in device name. */
+#define BLE_GAP_DEVNAME_MAX_LEN                  248     /**< Maximum number of octets in device name. */
+
+
+/**@brief Disable RSSI events for connections */
+#define BLE_GAP_RSSI_THRESHOLD_INVALID 0xFF
+
+
+/**@defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters
+ *
+ * See @ref ble_gap_conn_sec_mode_t.
+ * @{ */
+/**@brief Set sec_mode pointed to by ptr to have no access rights.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr)          do {(ptr)->sm = 0; (ptr)->lv = 0;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require no protection, open link.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)               do {(ptr)->sm = 1; (ptr)->lv = 1;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr)        do {(ptr)->sm = 1; (ptr)->lv = 2;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr)      do {(ptr)->sm = 1; (ptr)->lv = 3;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require LESC encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_LESC_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 4;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr)     do {(ptr)->sm = 2; (ptr)->lv = 1;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr)   do {(ptr)->sm = 2; (ptr)->lv = 2;} while (0)
+/**@} */
+
+
+/**@brief GAP Security Random Number Length. */
+#define BLE_GAP_SEC_RAND_LEN 8
+
+
+/**@brief GAP Security Key Length. */
+#define BLE_GAP_SEC_KEY_LEN 16
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key Length. */
+#define BLE_GAP_LESC_P256_PK_LEN 64
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman DHKey Length. */
+#define BLE_GAP_LESC_DHKEY_LEN   32
+
+
+/**@brief GAP Passkey Length. */
+#define BLE_GAP_PASSKEY_LEN 6
+
+
+/**@brief Maximum amount of addresses in the whitelist. */
+#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8)
+
+
+/**@brief Maximum amount of identities in the device identities list. */
+#define BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT (8)
+
+
+/**@defgroup GAP_SEC_MODES GAP Security Modes
+ * @{ */
+#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */
+/**@} */
+/** @} */
+
+
+/**@addtogroup BLE_GAP_STRUCTURES Structures
+ * @{ */
+
+/**@brief Bluetooth Low Energy address. */
+typedef struct
+{
+  uint8_t addr_id_peer : 1;       /**< Only valid for peer addresses.
+                                       Reference to peer in device identities list (as set with @ref sd_ble_gap_device_identities_set) when peer is using privacy. */
+  uint8_t addr_type    : 7;       /**< See @ref BLE_GAP_ADDR_TYPES. */
+  uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 48-bit address, LSB format. */
+} ble_gap_addr_t;
+
+
+/**@brief GAP connection parameters.
+ *
+ * @note  When ble_conn_params_t is received in an event, both min_conn_interval and
+ *        max_conn_interval will be equal to the connection interval set by the central.
+ *
+ * @note If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies:
+ *       conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval
+ *       that corresponds to the following Bluetooth Spec requirement:
+ *       The Supervision_Timeout in milliseconds shall be larger than
+ *       (1 + Conn_Latency) * Conn_Interval_Max * 2, where Conn_Interval_Max is given in milliseconds.
+ */
+typedef struct
+{
+  uint16_t min_conn_interval;         /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t max_conn_interval;         /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t slave_latency;             /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t conn_sup_timeout;          /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+} ble_gap_conn_params_t;
+
+
+/**@brief GAP connection security modes.
+ *
+ * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n
+ * Security Mode 1 Level 1: No security is needed (aka open link).\n
+ * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n
+ * Security Mode 1 Level 3: MITM protected encrypted link required.\n
+ * Security Mode 1 Level 4: LESC MITM protected encrypted link required.\n
+ * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n
+ * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n
+ */
+typedef struct
+{
+  uint8_t sm : 4;                     /**< Security Mode (1 or 2), 0 for no permissions at all. */
+  uint8_t lv : 4;                     /**< Level (1, 2, 3 or 4), 0 for no permissions at all. */
+
+} ble_gap_conn_sec_mode_t;
+
+
+/**@brief GAP connection security status.*/
+typedef struct
+{
+  ble_gap_conn_sec_mode_t sec_mode;           /**< Currently active security mode for this connection.*/
+  uint8_t                 encr_key_size;      /**< Length of currently active encryption key, 7 to 16 octets (only applicable for bonding procedures). */
+} ble_gap_conn_sec_t;
+
+
+/**
+ * @brief Device name and its properties
+ * @note If @ref max_len is more than @ref BLE_GAP_DEVNAME_DEFAULT_LEN and vloc is set to @ref BLE_GATTS_VLOC_STACK, the attribute table size must be increased to have room for the longer device name (see @ref ble_gatts_enable_params_t).
+ */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t  write_perm;   /**< Write permissions. */
+  uint8_t                  vloc:2;       /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 *p_value;      /**< Pointer to where the value (device name) is stored or will be stored.*/
+  uint16_t                 current_len;  /**< Current length in bytes of the memory pointed to by p_value.*/
+  uint16_t                 max_len;      /**< Maximum length in bytes of the memory pointed to by p_value.*/
+} ble_gap_device_name_t;
+
+
+/**
+ * @brief BLE GAP initialization parameters.
+ */
+typedef struct
+{
+  uint8_t                      periph_conn_count;  /**< Number of connections acting as a peripheral  */
+  uint8_t                      central_conn_count; /**< Number of connections acting as a central */
+  uint8_t                      central_sec_count;  /**< Number of SMP instances for all connections acting as a central. */
+  ble_gap_device_name_t const *p_device_name;      /**< Pointer to device name instance. If NULL, @ref sd_ble_enable() will set the device name to @ref BLE_GAP_DEVNAME_DEFAULT. */
+} ble_gap_enable_params_t;
+
+
+/**@brief Identity Resolving Key. */
+typedef struct
+{
+  uint8_t irk[BLE_GAP_SEC_KEY_LEN];   /**< Array containing IRK. */
+} ble_gap_irk_t;
+
+
+/**@brief Channel mask for RF channels used in advertising. */
+typedef struct
+{
+  uint8_t ch_37_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 37 */
+  uint8_t ch_38_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 38 */
+  uint8_t ch_39_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 39 */
+} ble_gap_adv_ch_mask_t;
+
+
+/**@brief GAP advertising parameters. */
+typedef struct
+{
+  uint8_t               type;                 /**< See @ref BLE_GAP_ADV_TYPES. */
+  ble_gap_addr_t const *p_peer_addr;          /**< Address of a known peer.
+                                                   - When privacy is enabled and the local device use @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE addresses, the device identity list is searched for a matching
+                                                     entry. If the local IRK for that device identity is set, the local IRK for that device will be used to generate the advertiser address field in the advertise packet.
+                                                   - If type is @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this must be set to the targeted initiator. If the initiator is in the device identity list,
+                                                     the peer IRK for that device will be used to generate the initiator address field in the ADV_DIRECT_IND packet. */
+  uint8_t               fp;                   /**< Filter Policy, see @ref BLE_GAP_ADV_FILTER_POLICIES. */
+  uint16_t              interval;             /**< Advertising interval between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s), see @ref BLE_GAP_ADV_INTERVALS.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for high duty cycle directed advertising.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, set @ref BLE_GAP_ADV_INTERVAL_MIN <= interval <= @ref BLE_GAP_ADV_INTERVAL_MAX for low duty cycle advertising.*/
+  uint16_t              timeout;              /**< Advertising timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. See also @ref BLE_GAP_ADV_TIMEOUT_VALUES. If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for High duty cycle directed advertising. */
+  ble_gap_adv_ch_mask_t channel_mask;         /**< Advertising channel mask. See @ref ble_gap_adv_ch_mask_t. */
+} ble_gap_adv_params_t;
+
+
+/**@brief GAP scanning parameters. */
+typedef struct
+{
+  uint8_t  active         : 1;  /**< If 1, perform active scanning (scan requests). */
+  uint8_t  use_whitelist  : 1;  /**< If 1, filter advertisers using current active whitelist. */
+  uint8_t  adv_dir_report : 1;  /**< If 1, also report directed advertisements where the initiator field is set to a private resolvable address,
+                                     even if the address did not resolve to an entry in the device identity list. A report will be generated
+                                     even if the peer is not in the whitelist. */
+  uint16_t interval;            /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+  uint16_t window;              /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+  uint16_t timeout;             /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
+} ble_gap_scan_params_t;
+
+
+/**@brief Device Privacy.
+ *
+ *        The privacy feature provides a way for the device to avoid being tracked over a period of time.
+ *        The privacy feature, when enabled, hides the local device identity and replaces it with a private address
+ *        that is automatically refreshed at a specified interval.
+ *
+ *        If a device still wants to be recognized by other peers, it needs to share it's Identity Resolving Key (IRK).
+ *        With this key, a device can generate a random private address that can only be recognized by peers in possession of that key,
+ *        and devices can establish connections without revealing their real identities.
+ *
+ * @note  If the device IRK is updated, the new IRK becomes the one to be distributed in all
+ *        bonding procedures performed after @ref sd_ble_gap_privacy_set returns.
+ *        The IRK distributed during bonding procedure is the device IRK that is active when @ref sd_ble_gap_sec_params_reply is called.
+ */
+typedef struct
+{
+  uint8_t        privacy_mode;         /**< Privacy mode, see @ref BLE_GAP_PRIVACY_MODES. Default is @ref BLE_GAP_PRIVACY_MODE_OFF. */
+  uint8_t        private_addr_type;    /**< The private address type must be either @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. */
+  uint16_t       private_addr_cycle_s; /**< Private address cycle interval in seconds. Providing an address cycle value of 0 will use the default value defined by @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S. */
+  ble_gap_irk_t *p_device_irk;         /**< When used as input, pointer to IRK structure that will be used as the default IRK. If NULL, the device default IRK will be used.
+                                            When used as output, pointer to IRK structure where the current default IRK will be written to. If NULL, this argument is ignored.
+                                            By default, the default IRK is used to generate random private resolvable addresses for the local device unless instructed otherwise. */
+} ble_gap_privacy_params_t;
+
+
+/** @brief Keys that can be exchanged during a bonding procedure. */
+typedef struct
+{
+  uint8_t enc     : 1;                        /**< Long Term Key and Master Identification. */
+  uint8_t id      : 1;                        /**< Identity Resolving Key and Identity Address Information. */
+  uint8_t sign    : 1;                        /**< Connection Signature Resolving Key. */
+  uint8_t link    : 1;                        /**< Derive the Link Key from the LTK. */
+} ble_gap_sec_kdist_t;
+
+
+/**@brief GAP security parameters. */
+typedef struct
+{
+  uint8_t               bond      : 1;             /**< Perform bonding. */
+  uint8_t               mitm      : 1;             /**< Enable Man In The Middle protection. */
+  uint8_t               lesc      : 1;             /**< Enable LE Secure Connection pairing. */
+  uint8_t               keypress  : 1;             /**< Enable generation of keypress notifications. */
+  uint8_t               io_caps   : 3;             /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */
+  uint8_t               oob       : 1;             /**< Out Of Band data available. */
+  uint8_t               min_key_size;              /**< Minimum encryption key size in octets between 7 and 16. If 0 then not applicable in this instance. */
+  uint8_t               max_key_size;              /**< Maximum encryption key size in octets between min_key_size and 16. */
+  ble_gap_sec_kdist_t   kdist_own;                 /**< Key distribution bitmap: keys that the local device will distribute. */
+  ble_gap_sec_kdist_t   kdist_peer;                /**< Key distribution bitmap: keys that the remote device will distribute. */
+} ble_gap_sec_params_t;
+
+
+/**@brief GAP Encryption Information. */
+typedef struct
+{
+  uint8_t   ltk[BLE_GAP_SEC_KEY_LEN];   /**< Long Term Key. */
+  uint8_t   lesc : 1;                   /**< Key generated using LE Secure Connections. */
+  uint8_t   auth : 1;                   /**< Authenticated Key. */
+  uint8_t   ltk_len : 6;                /**< LTK length in octets. */
+} ble_gap_enc_info_t;
+
+
+/**@brief GAP Master Identification. */
+typedef struct
+{
+  uint16_t  ediv;                       /**< Encrypted Diversifier. */
+  uint8_t   rand[BLE_GAP_SEC_RAND_LEN]; /**< Random Number. */
+} ble_gap_master_id_t;
+
+
+/**@brief GAP Signing Information. */
+typedef struct
+{
+  uint8_t   csrk[BLE_GAP_SEC_KEY_LEN];        /**< Connection Signature Resolving Key. */
+} ble_gap_sign_info_t;
+
+
+/**@brief GAP LE Secure Connections P-256 Public Key. */
+typedef struct
+{
+  uint8_t   pk[BLE_GAP_LESC_P256_PK_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key. Stored in the standard SMP protocol format: {X,Y} both in little-endian. */
+} ble_gap_lesc_p256_pk_t;
+
+
+/**@brief GAP LE Secure Connections DHKey. */
+typedef struct
+{
+  uint8_t   key[BLE_GAP_LESC_DHKEY_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman Key. Stored in little-endian. */
+} ble_gap_lesc_dhkey_t;
+
+
+/**@brief GAP LE Secure Connections OOB data. */
+typedef struct
+{
+  ble_gap_addr_t  addr;                          /**< Bluetooth address of the device. */
+  uint8_t         r[BLE_GAP_SEC_KEY_LEN];        /**< Random Number. */
+  uint8_t         c[BLE_GAP_SEC_KEY_LEN];        /**< Confirm Value. */
+} ble_gap_lesc_oob_data_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONNECTED. */
+typedef struct
+{
+  ble_gap_addr_t        peer_addr;              /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  uint8_t               role;                   /**< BLE role for this connection, see @ref BLE_GAP_ROLES */
+  ble_gap_conn_params_t conn_params;            /**< GAP Connection Parameters. */
+} ble_gap_evt_connected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_DISCONNECTED. */
+typedef struct
+{
+  uint8_t reason;                               /**< HCI error code, see @ref BLE_HCI_STATUS_CODES. */
+} ble_gap_evt_disconnected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. */
+typedef struct
+{
+  ble_gap_sec_params_t peer_params;             /**< Initiator Security Parameters. */
+} ble_gap_evt_sec_params_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_INFO_REQUEST. */
+typedef struct
+{
+  ble_gap_addr_t      peer_addr;                     /**< Bluetooth address of the peer device. */
+  ble_gap_master_id_t master_id;                     /**< Master Identification for LTK lookup. */
+  uint8_t             enc_info  : 1;                 /**< If 1, Encryption Information required. */
+  uint8_t             id_info   : 1;                 /**< If 1, Identity Information required. */
+  uint8_t             sign_info : 1;                 /**< If 1, Signing Information required. */
+} ble_gap_evt_sec_info_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_PASSKEY_DISPLAY. */
+typedef struct
+{
+  uint8_t passkey[BLE_GAP_PASSKEY_LEN];         /**< 6-digit passkey in ASCII ('0'-'9' digits only). */
+  uint8_t match_request : 1;                    /**< If 1 requires the application to report the match using @ref sd_ble_gap_auth_key_reply
+                                                     with either @ref BLE_GAP_AUTH_KEY_TYPE_NONE if there is no match or
+                                                     @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY if there is a match. */
+} ble_gap_evt_passkey_display_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_KEY_PRESSED. */
+typedef struct
+{
+  uint8_t kp_not;         /**< Keypress notification type, see @ref BLE_GAP_KP_NOT_TYPES. */
+} ble_gap_evt_key_pressed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_KEY_REQUEST. */
+typedef struct
+{
+  uint8_t key_type;                             /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */
+} ble_gap_evt_auth_key_request_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST. */
+typedef struct
+{
+  ble_gap_lesc_p256_pk_t *p_pk_peer;  /**< LE Secure Connections remote P-256 Public Key. This will point to the application-supplied memory
+                                           inside the keyset during the call to @ref sd_ble_gap_sec_params_reply. */
+  uint8_t oobd_req       :1;          /**< LESC OOB data required. A call to @ref sd_ble_gap_lesc_oob_data_set is required to complete the procedure. */
+} ble_gap_evt_lesc_dhkey_request_t;
+
+
+/**@brief Security levels supported.
+ * @note See Bluetooth Specification Version 4.2 Volume 3, Part C, Chapter 10, Section 10.2.1.
+*/
+typedef struct
+{
+  uint8_t lv1 : 1;                              /**< If 1: Level 1 is supported. */
+  uint8_t lv2 : 1;                              /**< If 1: Level 2 is supported. */
+  uint8_t lv3 : 1;                              /**< If 1: Level 3 is supported. */
+  uint8_t lv4 : 1;                              /**< If 1: Level 4 is supported. */
+} ble_gap_sec_levels_t;
+
+
+/**@brief Encryption Key. */
+typedef struct
+{
+  ble_gap_enc_info_t    enc_info;             /**< Encryption Information. */
+  ble_gap_master_id_t   master_id;            /**< Master Identification. */
+} ble_gap_enc_key_t;
+
+
+/**@brief Identity Key. */
+typedef struct
+{
+  ble_gap_irk_t         id_info;              /**< Identity Resolving Key. */
+  ble_gap_addr_t        id_addr_info;         /**< Identity Address. */
+} ble_gap_id_key_t;
+
+
+/**@brief Security Keys. */
+typedef struct
+{
+  ble_gap_enc_key_t      *p_enc_key;           /**< Encryption Key, or NULL. */
+  ble_gap_id_key_t       *p_id_key;            /**< Identity Key, or NULL. */
+  ble_gap_sign_info_t    *p_sign_key;          /**< Signing Key, or NULL. */
+  ble_gap_lesc_p256_pk_t *p_pk;                /**< LE Secure Connections P-256 Public Key. When in debug mode the application must use the value defined
+                                                    in the Core Bluetooth Specification v4.2 Vol.3, Part H, Section 2.3.5.6.1 */
+} ble_gap_sec_keys_t;
+
+
+/**@brief Security key set for both local and peer keys. */
+typedef struct
+{
+  ble_gap_sec_keys_t            keys_own;     /**< Keys distributed by the local device. For LE Secure Connections the encryption key will be generated locally and will always be stored if bonding. */
+  ble_gap_sec_keys_t            keys_peer;    /**< Keys distributed by the remote device. For LE Secure Connections, p_enc_key must always be NULL. */
+} ble_gap_sec_keyset_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_STATUS. */
+typedef struct
+{
+  uint8_t               auth_status;            /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */
+  uint8_t               error_src : 2;          /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */
+  uint8_t               bonded : 1;             /**< Procedure resulted in a bond. */
+  ble_gap_sec_levels_t  sm1_levels;             /**< Levels supported in Security Mode 1. */
+  ble_gap_sec_levels_t  sm2_levels;             /**< Levels supported in Security Mode 2. */
+  ble_gap_sec_kdist_t   kdist_own;              /**< Bitmap stating which keys were exchanged (distributed) by the local device. If bonding with LE Secure Connections, the enc bit will be always set. */
+  ble_gap_sec_kdist_t   kdist_peer;             /**< Bitmap stating which keys were exchanged (distributed) by the remote device. If bonding with LE Secure Connections, the enc bit will never be set. */
+} ble_gap_evt_auth_status_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_SEC_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_sec_t conn_sec;                  /**< Connection security level. */
+} ble_gap_evt_conn_sec_update_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t src;                                  /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */
+} ble_gap_evt_timeout_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_RSSI_CHANGED. */
+typedef struct
+{
+  int8_t  rssi;                               /**< Received Signal Strength Indication in dBm. */
+} ble_gap_evt_rssi_changed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_ADV_REPORT. */
+typedef struct
+{
+  ble_gap_addr_t peer_addr;                     /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  ble_gap_addr_t direct_addr;                   /**< Set when the scanner is unable to resolve the private resolvable address of the initiator
+                                                     field of a directed advertisement packet and the scanner has been enabled to report this in @ref ble_gap_scan_params_t::adv_dir_report. */
+  int8_t         rssi;                          /**< Received Signal Strength Indication in dBm. */
+  uint8_t        scan_rsp : 1;                  /**< If 1, the report corresponds to a scan response and the type field may be ignored. */
+  uint8_t        type     : 2;                  /**< See @ref BLE_GAP_ADV_TYPES. Only valid if the scan_rsp field is 0. */
+  uint8_t        dlen     : 5;                  /**< Advertising or scan response data length. */
+  uint8_t        data[BLE_GAP_ADV_MAX_SIZE];    /**< Advertising or scan response data. */
+} ble_gap_evt_adv_report_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_REQUEST. */
+typedef struct
+{
+  uint8_t    bond       : 1;                       /**< Perform bonding. */
+  uint8_t    mitm       : 1;                       /**< Man In The Middle protection requested. */
+  uint8_t    lesc       : 1;                       /**< LE Secure Connections requested. */
+  uint8_t    keypress   : 1;                       /**< Generation of keypress notifications requested. */
+} ble_gap_evt_sec_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SCAN_REQ_REPORT. */
+typedef struct
+{
+  int8_t                  rssi;              /**< Received Signal Strength Indication in dBm. */
+  ble_gap_addr_t          peer_addr;         /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                  and the address is the device's identity address. */
+} ble_gap_evt_scan_req_report_t;
+
+
+/**@brief GAP event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                     /**< Connection Handle on which event occurred. */
+  union                                                     /**< union alternative identified by evt_id in enclosing struct. */
+  {
+    ble_gap_evt_connected_t                   connected;                    /**< Connected Event Parameters. */
+    ble_gap_evt_disconnected_t                disconnected;                 /**< Disconnected Event Parameters. */
+    ble_gap_evt_conn_param_update_t           conn_param_update;            /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_sec_params_request_t          sec_params_request;           /**< Security Parameters Request Event Parameters. */
+    ble_gap_evt_sec_info_request_t            sec_info_request;             /**< Security Information Request Event Parameters. */
+    ble_gap_evt_passkey_display_t             passkey_display;              /**< Passkey Display Event Parameters. */
+    ble_gap_evt_key_pressed_t                 key_pressed;                  /**< Key Pressed Event Parameters. */
+    ble_gap_evt_auth_key_request_t            auth_key_request;             /**< Authentication Key Request Event Parameters. */
+    ble_gap_evt_lesc_dhkey_request_t          lesc_dhkey_request;           /**< LE Secure Connections DHKey calculation request. */
+    ble_gap_evt_auth_status_t                 auth_status;                  /**< Authentication Status Event Parameters. */
+    ble_gap_evt_conn_sec_update_t             conn_sec_update;              /**< Connection Security Update Event Parameters. */
+    ble_gap_evt_timeout_t                     timeout;                      /**< Timeout Event Parameters. */
+    ble_gap_evt_rssi_changed_t                rssi_changed;                 /**< RSSI Event parameters. */
+    ble_gap_evt_adv_report_t                  adv_report;                   /**< Advertising Report Event Parameters. */
+    ble_gap_evt_sec_request_t                 sec_request;                  /**< Security Request Event Parameters. */
+    ble_gap_evt_conn_param_update_request_t   conn_param_update_request;    /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_scan_req_report_t             scan_req_report;              /**< Scan Request Report parameters. */
+  } params;                                                                 /**< Event Parameters. */
+} ble_gap_evt_t;
+
+
+/**@brief Channel Map option.
+ *        Used with @ref sd_ble_opt_get to get the current channel map
+ *        or @ref sd_ble_opt_set to set a new channel map. When setting the
+ *        channel map, it applies to all current and future connections. When getting the
+ *        current channel map, it applies to a single connection and the connection handle
+ *        must be supplied.
+ *
+ * @note  Setting the channel map may take some time, depending on connection parameters.
+ *        The time taken may be different for each connection and the get operation will
+ *        return the previous channel map until the new one has taken effect.
+ *
+ * @note  After setting the channel map, by spec it can not be set again until at least 1 s has passed.
+ *        See Bluetooth Specification Version 4.1 Volume 2, Part E, Section 7.3.46.
+ *
+ * @retval ::NRF_SUCCESS Get or set successful.
+ * @retval ::NRF_ERROR_BUSY Channel map was set again before enough time had passed.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied for get.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Returned by sd_ble_opt_set in peripheral-only SoftDevices.
+ *
+ */
+typedef struct
+{
+  uint16_t conn_handle;                   /**< Connection Handle (only applicable for get) */
+  uint8_t ch_map[5];                      /**< Channel Map (37-bit). */
+} ble_gap_opt_ch_map_t;
+
+
+/**@brief Local connection latency option.
+ *
+ *        Local connection latency is a feature which enables the slave to improve
+ *        current consumption by ignoring the slave latency set by the peer. The
+ *        local connection latency can only be set to a multiple of the slave latency,
+ *        and cannot be longer than half of the supervision timeout.
+ *
+ *        Used with @ref sd_ble_opt_set to set the local connection latency. The
+ *        @ref sd_ble_opt_get is not supported for this option, but the actual
+ *        local connection latency (unless set to NULL) is set as a return parameter
+ *        when setting the option.
+ *
+ * @note  The latency set will be truncated down to the closest slave latency event
+ *        multiple, or the nearest multiple before half of the supervision timeout.
+ *
+ * @note  The local connection latency is disabled by default, and needs to be enabled for new
+ *        connections and whenever the connection is updated.
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   requested_latency;                 /**< Requested local connection latency. */
+  uint16_t * p_actual_latency;                  /**< Pointer to storage for the actual local connection latency (can be set to NULL to skip return value). */
+} ble_gap_opt_local_conn_latency_t;
+
+
+/**@brief Passkey Option.
+ *
+ *        Structure containing the passkey to be used during pairing. This can be used with @ref
+ *        sd_ble_opt_set to make the SoftDevice use a pre-programmed passkey for authentication
+ *        instead of generating a random one.
+ *
+ * @note  Repeated pairing attempts using the same pre-programmed passkey makes pairing vulnerable to MITM attacks.
+ *
+ * @note  @ref sd_ble_opt_get is not supported for this option.
+ *
+ */
+typedef struct
+{
+  uint8_t * p_passkey;                          /**< Pointer to 6-digit ASCII string (digit 0..9 only, no NULL termination) passkey to be used during pairing. If this is NULL, the SoftDevice will generate a random passkey if required.*/
+} ble_gap_opt_passkey_t;
+
+
+/**@brief Scan request report option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to make the SoftDevice send
+ *        @ref BLE_GAP_EVT_SCAN_REQ_REPORT events.
+ *
+ *  @note   Due to the limited space reserved for scan request report events,
+ *          not all received scan requests will be reported.
+ *
+ *  @note   If whitelisting is used, only whitelisted requests are reported.
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_STATE When advertising is ongoing while the option is set.
+ */
+typedef struct
+{
+   uint8_t enable : 1;                           /**< Enable scan request reports. */
+} ble_gap_opt_scan_req_report_t;
+
+
+/**@brief Compatibility mode option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to enable and disable
+ *        compatibility modes. Compatibility modes are disabled by default.
+ *
+ *  @note  Compatibility mode 1 enables interoperability with devices that do not support
+ *         a value of 0 for the WinOffset parameter in the Link Layer CONNECT_REQ packet.
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_STATE When connection creation is ongoing while mode 1 is set.
+ */
+typedef struct
+{
+   uint8_t mode_1_enable : 1;                           /**< Enable compatibility mode 1.*/
+} ble_gap_opt_compat_mode_t;
+
+/**@brief Data length extension option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to enable longer data packets.
+ *
+ * @note  An rxtx_max_pdu_payload_size of 0 will result in the default minimum payload size of 27.
+ * @note  Not supported by SoftDevices for nRF51 Series devices.
+ * @note  The parameters for a connection are applied when a connection complete
+ *        event is generated for the host.
+ *
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_PARAM If the payload size is not 0 or a valid link layer PDU payload size.
+ *  @retval ::NRF_ERROR_NOT_SUPPORTED If called on a SoftDevice designed for nRF51 (e.g. s130).
+ */
+typedef struct
+{
+  uint8_t  rxtx_max_pdu_payload_size;      /**< Max PDU payload size (in octets). */
+} ble_gap_opt_ext_len_t;
+
+
+
+/**@brief Authenticated payload timeout option.
+ *
+ * This can be used with @ref sd_ble_opt_set to change the Authenticated payload timeout to a value other than the default of 8 minutes.
+ *
+ * @note The authenticated payload timeout event ::BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD will be generated
+ * if auth_payload_timeout time has elapsed without receiving a packet with a valid MIC on an encrypted
+ * link.
+ *
+ * @note  The LE ping procedure will be initiated before the timer expires to give the peer a chance
+ * to reset the timer. In addition the stack will try to prioritize running of LE ping over other
+ * activities to increase chances of finishing LE ping before timer expires. To avoid side-effects
+ * on other activities, it is recommended to use high timeout values.
+ * Recommended timeout > 2*(connInterval * (6 + connSlaveLatency)).
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. auth_payload_timeout was outside of allowed range.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   auth_payload_timeout;              /**< Requested timeout in 10 ms unit. Maximum is 48 000 (=480 000 ms =8 min). Minimum is 1 (=10ms). */
+} ble_gap_opt_auth_payload_timeout_t;
+
+
+/**@brief Option structure for GAP options. */
+typedef union
+{
+  ble_gap_opt_ch_map_t                  ch_map;                    /**< Parameters for the Channel Map option. */
+  ble_gap_opt_local_conn_latency_t      local_conn_latency;        /**< Parameters for the Local connection latency option */
+  ble_gap_opt_passkey_t                 passkey;                   /**< Parameters for the Passkey option.*/
+  ble_gap_opt_scan_req_report_t         scan_req_report;           /**< Parameters for the scan request report option.*/
+  ble_gap_opt_compat_mode_t             compat_mode;               /**< Parameters for the compatibility mode option.*/
+  ble_gap_opt_ext_len_t                 ext_len;                   /**< Parameters for the extended length option. */
+  ble_gap_opt_auth_payload_timeout_t    auth_payload_timeout;      /**< Parameters for the authenticated payload timeout option.*/
+} ble_gap_opt_t;
+/**@} */
+
+
+/**@addtogroup BLE_GAP_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Set the local Bluetooth identity address.
+ *
+ * The local Bluetooth identity address is the address that identifies this device to other peers.
+ * The address type must be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ * The identity address cannot be changed while roles are running.
+ *
+ * @note This address will be distributed to the peer during bonding.
+ * If the address changes, the address stored in the peer device will not be valid and the ability to
+ * reconnect using the old address will be lost.
+ *
+ * @note By default the SoftDevice will set an address of type @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being
+ * enabled. The address is a random number populated during the IC manufacturing process and remains unchanged
+ * for the lifetime of each IC.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @endmscs
+ *
+ * @param[in] p_addr Pointer to address structure.
+ *
+ * @retval ::NRF_SUCCESS Address successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_STATE The identity address cannot be changed while the roles are running.
+ */
+SVCALL(SD_BLE_GAP_ADDR_SET, uint32_t, sd_ble_gap_addr_set(ble_gap_addr_t const *p_addr));
+
+
+/**@brief Get local Bluetooth identity address.
+ *
+ * @note This will always return the identity address irrespective of the privacy settings,
+ * i.e. the address type will always be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ *
+ * @param[out] p_addr Pointer to address structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Address successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_ADDR_GET, uint32_t, sd_ble_gap_addr_get(ble_gap_addr_t *p_addr));
+
+
+/**@brief Set the active whitelist in the SoftDevice.
+ *
+ * @note Only one whitelist can be used at a time and the whitelist is shared between the BLE roles.
+ *       The whitelist cannot be set if a BLE role is using the whitelist.
+ *
+ * @note If an address is resolved using the information in the device identity list, then the whitelist
+ *       filter policy applies to the peer identity address and not the resolvable address sent on air.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @endmscs
+ *
+ * @param[in] pp_wl_addrs Pointer to a whitelist of peer addresses, if NULL the whitelist will be cleared.
+ * @param[in] len         Length of the whitelist, maximum @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT.
+ *
+ * @retval ::NRF_SUCCESS The whitelist is successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The whitelist (or one of its entries) provided is invalid.
+ * @retval ::BLE_ERROR_GAP_WHITELIST_IN_USE The whitelist is in use by a BLE role and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given whitelist size is invalid (zero or too large); this can only return when
+ *                               pp_wl_addrs is not NULL.
+ */
+SVCALL(SD_BLE_GAP_WHITELIST_SET, uint32_t, sd_ble_gap_whitelist_set(ble_gap_addr_t const * const * pp_wl_addrs, uint8_t len));
+
+
+/**@brief Set device identity list.
+ *
+ * @note Only one device identity list can be used at a time and the list is shared between the BLE roles.
+ *       The device identity list cannot be set if a BLE role is using the list.
+ *
+ * @param[in] pp_id_keys     Pointer to an array of peer identity addresses and peer IRKs, if NULL the device identity list will be cleared.
+ * @param[in] pp_local_irks  Pointer to an array of local IRKs. Each entry in the array maps to the entry in pp_id_keys at the same index.
+ *                           To fill in the list with the currently set device IRK for all peers, set to NULL.
+ * @param[in] len            Length of the device identity list, maximum @ref BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The device identity list successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The device identity list (or one of its entries) provided is invalid.
+                                    This code may be returned if the local IRK list also has an invalid entry.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE The device identity list is in use and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE The device identity list contains multiple entries with the same identity address.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given device identity list size invalid (zero or too large); this can
+ *                               only return when pp_id_keys is not NULL.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_IDENTITIES_SET, uint32_t, sd_ble_gap_device_identities_set(ble_gap_id_key_t const * const * pp_id_keys, ble_gap_irk_t const * const * pp_local_irks, uint8_t len));
+
+
+/**@brief Set privacy settings.
+ *
+ * @note Privacy settings cannot be set while BLE roles are running.
+ *
+ * @param[in] p_privacy_params Privacy settings.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer to privacy settings is NULL or invalid.
+                                    Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ * @retval ::NRF_ERROR_INVALID_PARAM Out of range parameters are provided.
+ * @retval ::NRF_ERROR_INVALID_STATE Privacy settings cannot be changed while BLE roles using privacy are enabled.
+  */
+SVCALL(SD_BLE_GAP_PRIVACY_SET, uint32_t, sd_ble_gap_privacy_set(ble_gap_privacy_params_t const *p_privacy_params));
+
+
+/**@brief Get privacy settings.
+ *
+ * @note The privacy settings returned include the current device irk as well.
+ *
+ * @param[in] p_privacy_params Privacy settings.
+ *
+ * @retval ::NRF_SUCCESS            Privacy settings read.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer given for returning the privacy settings may be NULL or invalid.
+                                    Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ */
+SVCALL(SD_BLE_GAP_PRIVACY_GET, uint32_t, sd_ble_gap_privacy_get(ble_gap_privacy_params_t *p_privacy_params));
+
+
+/**@brief Set, clear or update advertising and scan response data.
+ *
+ * @note The format of the advertising data will be checked by this call to ensure interoperability.
+ *       Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and
+ *       duplicating the local name in the advertising data and scan response data.
+ *
+ * @note To clear the advertising data and set it to a 0-length packet, simply provide a valid pointer (p_data/p_sr_data) with its corresponding
+ *        length (dlen/srdlen) set to 0.
+ *
+ * @note The call will fail if p_data and p_sr_data are both NULL since this would have no effect.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_data    Raw data to be placed in advertising packet. If NULL, no changes are made to the current advertising packet data.
+ * @param[in] dlen      Data length for p_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_data is NULL, can be 0 if p_data is not NULL.
+ * @param[in] p_sr_data Raw data to be placed in scan response packet. If NULL, no changes are made to the current scan response packet data.
+ * @param[in] srdlen    Data length for p_sr_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_sr_data is NULL, can be 0 if p_data is not NULL.
+ *
+ * @retval ::NRF_SUCCESS Advertising data successfully updated or cleared.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, both p_data and p_sr_data cannot be NULL.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied.
+ * @retval ::NRF_ERROR_INVALID_DATA Invalid data type(s) supplied, check the advertising data format specification.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported data type.
+ * @retval ::BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied.
+ */
+SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const *p_data, uint8_t dlen, uint8_t const *p_sr_data, uint8_t srdlen));
+
+
+/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @note An application can start an advertising procedure for broadcasting purposes while a connection
+ *       is active. After a @ref BLE_GAP_EVT_CONNECTED event is received, this function may therefore
+ *       be called to start a broadcast advertising procedure. The advertising procedure
+ *       cannot however be connectable (it must be of type @ref BLE_GAP_ADV_TYPE_ADV_SCAN_IND or
+ *       @ref BLE_GAP_ADV_TYPE_ADV_NONCONN_IND). @note Only one advertiser may be active at any time.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONNECTED, Generated after connection has been established through connectable advertising.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Advertisement has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_adv_params Pointer to advertising parameters structure.
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has started advertising.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached; connectable advertiser cannot be started.
+ * @retval ::NRF_ERROR_NO_MEM The configured memory pools (see @ref ble_conn_bw_counts_t) are not large enough for the
+ *                            bandwidth selected for this connection.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check the accepted ranges and limits.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Bluetooth address supplied.
+ * @retval ::BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Observer) and try again
+ */
+SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(ble_gap_adv_params_t const *p_adv_params));
+
+
+/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has stopped advertising.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in advertising state).
+ */
+SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(void));
+
+
+/**@brief Update connection parameters.
+ *
+ * @details In the central role this will initiate a Link Layer connection parameter update procedure,
+ *          otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for
+ *          the central to perform the procedure. In both cases, and regardless of success or failure, the application
+ *          will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event.
+ *
+ * @details This function can be used as a central both to reply to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST or to start the procedure unrequested.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_PARAM_UPDATE, Result of the connection parameter update procedure.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CPU_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_conn_params  Pointer to desired connection parameters. If NULL is provided on a peripheral role,
+ *                           the parameters in the PPCP characteristic of the GAP service will be used instead.
+ *                           If NULL is provided on a central role and in response to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST, the peripheral request will be rejected
+ *
+ * @retval ::NRF_SUCCESS The Connection Update procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, process pending events and wait for pending procedures to complete and retry.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Disconnect (GAP Link Termination).
+ *
+ * @details This call initiates the disconnection procedure, and its completion will be communicated to the application
+ *          with a @ref BLE_GAP_EVT_DISCONNECTED event.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_DISCONNECTED, Generated when disconnection procedure is complete.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are @ref BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION and @ref BLE_HCI_CONN_INTERVAL_UNACCEPTABLE).
+ *
+ * @retval ::NRF_SUCCESS The disconnection procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress).
+ */
+SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
+
+
+/**@brief Set the radio's transmit power.
+ *
+ * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, 3, and 4 dBm).
+ *
+ * @note The +3dBm setting is only available on nRF52 series ICs.
+ * @note The -30dBm setting is only available on nRF51 series ICs.
+ * @note The -40dBm setting is only available on nRF52 series ICs.
+ *
+ * @retval ::NRF_SUCCESS Successfully changed the transmit power.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
+
+
+/**@brief Set GAP Appearance value.
+ *
+ * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS  Appearance value set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance));
+
+
+/**@brief Get GAP Appearance value.
+ *
+ * @param[out] p_appearance Pointer to appearance (16-bit) to be filled in, see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS Appearance value retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t *p_appearance));
+
+
+/**@brief Set GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Get GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t *p_conn_params));
+
+
+/**@brief Set GAP device name.
+ *
+ * @param[in] p_write_perm Write permissions for the Device Name characteristic, see @ref ble_gap_conn_sec_mode_t.
+ * @param[in] p_dev_name Pointer to a UTF-8 encoded, <b>non NULL-terminated</b> string.
+ * @param[in] len Length of the UTF-8, <b>non NULL-terminated</b> string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *
+ * @note If the device name is located in application flash memory (see @ref ble_gap_device_name_t), it cannot be changed. Then @ref NRF_ERROR_FORBIDDEN will be returned.
+ *
+ * @retval ::NRF_SUCCESS GAP device name and permissions set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_FORBIDDEN Device name is not writable.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const *p_write_perm, uint8_t const *p_dev_name, uint16_t len));
+
+
+/**@brief Get GAP device name.
+ *
+ * @note          If the device name is longer than the size of the supplied buffer,
+ *                p_len will return the complete device name length,
+ *                and not the number of bytes actually returned in p_dev_name.
+ *                The application may use this information to allocate a suitable buffer size.
+ *
+ * @param[out]    p_dev_name Pointer to an empty buffer where the UTF-8 <b>non NULL-terminated</b> string will be placed. Set to NULL to obtain the complete device name length.
+ * @param[in,out] p_len      Length of the buffer pointed by p_dev_name, complete device name length on output.
+ *
+ * @retval ::NRF_SUCCESS GAP device name retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_len));
+
+
+/**@brief Initiate the GAP Authentication procedure.
+ *
+ * @details In the central role, this function will send an SMP Pairing Request (or an SMP Pairing Failed if rejected),
+ *          otherwise in the peripheral role, an SMP Security Request will be sent.
+ *
+ * @events
+ * @event{Depending on the security parameters set and the packet exchanges with the peer\, the following events may be generated:}
+ * @event{@ref BLE_GAP_EVT_SEC_PARAMS_REQUEST}
+ * @event{@ref BLE_GAP_EVT_SEC_INFO_REQUEST}
+ * @event{@ref BLE_GAP_EVT_PASSKEY_DISPLAY}
+ * @event{@ref BLE_GAP_EVT_KEY_PRESSED}
+ * @event{@ref BLE_GAP_EVT_AUTH_KEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_LESC_DHKEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE}
+ * @event{@ref BLE_GAP_EVT_AUTH_STATUS}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing or bonding procedure.
+ *                         In the peripheral role, only the bond, mitm, lesc and keypress fields of this structure are used.
+ *                         In the central role, this pointer may be NULL to reject a Security Request.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ * @retval ::NRF_ERROR_TIMEOUT A SMP timeout has occurred, and further SMP operations on this link is prohibited.
+ */
+SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const *p_sec_params));
+
+
+/**@brief Reply with GAP security parameters.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_CONFIRM_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_KS_TOO_SMALL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_APP_ERROR_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_REMOTE_PAIRING_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_TIMEOUT_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS.
+ * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure. In the central role this must be set to NULL, as the parameters have
+ *                         already been provided during a previous call to @ref sd_ble_gap_authenticate.
+ * @param[in,out] p_sec_keyset Pointer to a @ref ble_gap_sec_keyset_t security keyset structure. Any keys generated and/or distributed as a result of the ongoing security procedure
+ *                         will be stored into the memory referenced by the pointers inside this structure. The keys will be stored and available to the application
+ *                         upon reception of a @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *                         Note that the SoftDevice expects the application to provide memory for storing the
+ *                         peer's keys. So it must be ensured that the relevant pointers inside this structure are not NULL. The pointers to the local key
+ *                         can, however, be NULL, in which case, the local key data will not be available to the application upon reception of the
+ *                         @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security parameter from the application.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ */
+SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const *p_sec_params, ble_gap_sec_keyset_t const *p_sec_keyset));
+
+
+/**@brief Reply with an authentication key.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST or a @ref BLE_GAP_EVT_PASSKEY_DISPLAY, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES.
+ * @param[in] p_key If key type is @ref BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination)
+ *                     or NULL when confirming LE Secure Connections Numeric Comparison.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in Little Endian format.
+ *
+ * @retval ::NRF_SUCCESS Authentication key successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const *p_key));
+
+/**@brief Reply with an LE Secure connections DHKey.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_dhkey LE Secure Connections DHKey.
+ *
+ * @retval ::NRF_SUCCESS DHKey successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_DHKEY_REPLY, uint32_t, sd_ble_gap_lesc_dhkey_reply(uint16_t conn_handle, ble_gap_lesc_dhkey_t const *p_dhkey));
+
+/**@brief Notify the peer of a local keypress.
+ *
+ * @details This function can only be used when an authentication procedure using LE Secure Connection is in progress. Calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] kp_not See @ref BLE_GAP_KP_NOT_TYPES.
+ *
+ * @retval ::NRF_SUCCESS Keypress notification successfully queued for transmission.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either not entering a passkey or keypresses have not been enabled by both peers.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GAP_KEYPRESS_NOTIFY, uint32_t, sd_ble_gap_keypress_notify(uint16_t conn_handle, uint8_t kp_not));
+
+/**@brief Generate a set of OOB data to send to a peer out of band.
+ *
+ * @note The @ref ble_gap_addr_t included in the OOB data returned will be the currently active one (or, if a connection has already been established,
+ *       the one used during connection setup). The application may manually overwrite it with an updated value.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle. Can be BLE_CONN_HANDLE_INVALID if a BLE connection has not been established yet.
+ * @param[in] p_pk_own LE Secure Connections local P-256 Public Key.
+ * @param[out] p_oobd_own The OOB data to be sent out of band to a peer.
+ *
+ * @retval ::NRF_SUCCESS OOB data successfully generated.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_GET, uint32_t, sd_ble_gap_lesc_oob_data_get(uint16_t conn_handle, ble_gap_lesc_p256_pk_t const *p_pk_own, ble_gap_lesc_oob_data_t *p_oobd_own));
+
+/**@brief Provide the OOB data sent/received out of band.
+ *
+ * @note At least one of the 2 pointers provided must be different from NULL.
+ * @note An authentication procedure with OOB selected as an algorithm must be in progress when calling this function.
+ * @note A @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST event with the oobd_req set to 1 must have been received prior to calling this function.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_oobd_own The OOB data sent out of band to a peer or NULL if none sent.
+ * @param[in] p_oobd_peer The OOB data received out of band from a peer or NULL if none received.
+ *
+ * @retval ::NRF_SUCCESS OOB data accepted.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_SET, uint32_t, sd_ble_gap_lesc_oob_data_set(uint16_t conn_handle, ble_gap_lesc_oob_data_t const *p_oobd_own, ble_gap_lesc_oob_data_t const *p_oobd_peer));
+
+/**@brief Initiate GAP Encryption procedure.
+ *
+ * @details In the central role, this function will initiate the encryption procedure using the encryption information provided.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE, The connection security has been updated.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_master_id Pointer to a @ref ble_gap_master_id_t master identification structure.
+ * @param[in] p_enc_info  Pointer to a @ref ble_gap_enc_info_t encryption information structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::BLE_ERROR_INVALID_ROLE Operation is not supported in the Peripheral role.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, wait for pending procedures to complete and retry.
+ */
+SVCALL(SD_BLE_GAP_ENCRYPT, uint32_t, sd_ble_gap_encrypt(uint16_t conn_handle, ble_gap_master_id_t const *p_master_id, ble_gap_enc_info_t const *p_enc_info));
+
+
+/**@brief Reply with GAP security information.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ * @note    Data signing is not yet supported, and p_sign_info must therefore be NULL.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_ENC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available.
+ * @param[in] p_id_info Pointer to a @ref ble_gap_irk_t identity information structure. May be NULL to signal none is available.
+ * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security information.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const *p_enc_info, ble_gap_irk_t const *p_id_info, ble_gap_sign_info_t const *p_sign_info));
+
+
+/**@brief Get the current connection security.
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_conn_sec  Pointer to a @ref ble_gap_conn_sec_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Current connection security successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t *p_conn_sec));
+
+
+/**@brief Start reporting the received signal strength to the application.
+ *
+ * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_RSSI_CHANGED, New RSSI data available. How often the event is generated is
+                                         dependent on the settings of the <code>threshold_dbm</code>
+                                         and <code>skip_count</code> input parameters.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle        Connection handle.
+ * @param[in] threshold_dbm      Minimum change in dBm before triggering the @ref BLE_GAP_EVT_RSSI_CHANGED event. Events are disabled if threshold_dbm equals @ref BLE_GAP_RSSI_THRESHOLD_INVALID.
+ * @param[in] skip_count         Number of RSSI samples with a change of threshold_dbm or more before sending a new @ref BLE_GAP_EVT_RSSI_CHANGED event.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully activated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Disconnection in progress. Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle, uint8_t threshold_dbm, uint8_t skip_count));
+
+
+/**@brief Stop reporting the received signal strength.
+ *
+ * @note An RSSI change detected before the call but not yet received by the application
+ * may be reported after @ref sd_ble_gap_rssi_stop has been called.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully deactivated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle));
+
+
+/**@brief Get the received signal strength for the last connection event.
+ *
+ * @ref sd_ble_gap_rssi_start must be called to start reporting RSSI before using this function. @ref NRF_ERROR_NOT_FOUND
+ * will be returned until RSSI was sampled for the first time after calling @ref sd_ble_gap_rssi_start.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @endmscs
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_rssi      Pointer to the location where the RSSI measurement shall be stored.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully read the RSSI.
+ * @retval ::NRF_ERROR_NOT_FOUND           No sample is available.
+ * @retval ::NRF_ERROR_INVALID_ADDR        Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE       RSSI reporting is not ongoing, or disconnection in progress.
+ */
+SVCALL(SD_BLE_GAP_RSSI_GET, uint32_t, sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi));
+
+
+/**@brief Start scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_ADV_REPORT, An advertising or scan response packet has been received.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Scanner has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_SCAN_START, uint32_t, sd_ble_gap_scan_start(ble_gap_scan_params_t const *p_scan_params));
+
+
+/**@brief Stop scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully stopped scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in scanning state).
+ */
+SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void));
+
+
+/**@brief Create a connection (GAP Link Establishment).
+ *
+ * @note If a scanning procedure is currently in progress it will be automatically stopped when calling this function.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] p_peer_addr   Pointer to peer address. If the use_whitelist bit is set in @ref ble_gap_scan_params_t, then this is ignored.
+ *                          If @ref ble_gap_addr_t::addr_id_peer is set then p_peer_addr must be present in the device identity list
+ *                          see @ref sd_ble_gap_device_identities_set.
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ * @param[in] p_conn_params Pointer to desired connection parameters.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated connection procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid parameter(s) pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+                                     - Invalid parameter(s) in p_scan_params or p_conn_params.
+                                     - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set.
+                                     - Peer address was not present in the device identity list, see @ref sd_ble_gap_device_identities_set.
+ * @retval ::NRF_ERROR_INVALID_STATE The SoftDevice is in an invalid state to perform this operation. This may be due to an
+ *                                   existing locally initiated connect procedure, which must complete before initiating again.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Peer address.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached.
+ * @retval ::NRF_ERROR_NO_MEM The configured memory pool (see @ref ble_conn_bw_counts_t) is not large enough for the
+ *                            bandwidth selected for this connection.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. If another connection is being established
+ *                          wait for the corresponding @ref BLE_GAP_EVT_CONNECTED event before calling again.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_CONNECT, uint32_t, sd_ble_gap_connect(ble_gap_addr_t const *p_peer_addr, ble_gap_scan_params_t const *p_scan_params, ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Cancel a connection establishment.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully cancelled an ongoing connection procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ */
+SVCALL(SD_BLE_GAP_CONNECT_CANCEL, uint32_t, sd_ble_gap_connect_cancel(void));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GAP_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatt.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatt.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatt.h
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common
+  @{
+  @brief  Common definitions and prototypes for the GATT interfaces.
+ */
+
+#ifndef BLE_GATT_H__
+#define BLE_GATT_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATT_DEFINES Defines
+ * @{ */
+
+/** @brief Default MTU size, in bytes. */
+#define GATT_MTU_SIZE_DEFAULT 23
+
+/**@brief Invalid Attribute Handle. */
+#define BLE_GATT_HANDLE_INVALID            0x0000
+
+/**@brief First Attribute Handle. */
+#define BLE_GATT_HANDLE_START              0x0001
+
+/**@brief Last Attribute Handle. */
+#define BLE_GATT_HANDLE_END                0xFFFF
+
+/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources
+ * @{ */
+#define BLE_GATT_TIMEOUT_SRC_PROTOCOL      0x00  /**< ATT Protocol timeout. */
+/** @} */
+
+/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations
+ * @{ */
+#define BLE_GATT_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATT_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATT_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATT_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATT_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATT_OP_EXEC_WRITE_REQ         0x05  /**< Execute Write Request. */
+/** @} */
+
+/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags
+ * @{ */
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00   /**< Cancel prepared write. */
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE  0x01   /**< Execute prepared write. */
+/** @} */
+
+/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations
+ * @{ */
+#define BLE_GATT_HVX_INVALID               0x00  /**< Invalid Operation. */
+#define BLE_GATT_HVX_NOTIFICATION          0x01  /**< Handle Value Notification. */
+#define BLE_GATT_HVX_INDICATION            0x02  /**< Handle Value Indication. */
+/** @} */
+
+/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes
+ * @{ */
+#define BLE_GATT_STATUS_SUCCESS                           0x0000  /**< Success. */
+#define BLE_GATT_STATUS_UNKNOWN                           0x0001  /**< Unknown or not applicable status. */
+#define BLE_GATT_STATUS_ATTERR_INVALID                    0x0100  /**< ATT Error: Invalid Error Code. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE             0x0101  /**< ATT Error: Invalid Attribute Handle. */
+#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED         0x0102  /**< ATT Error: Read not permitted. */
+#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED        0x0103  /**< ATT Error: Write not permitted. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_PDU                0x0104  /**< ATT Error: Used in ATT as Invalid PDU. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION       0x0105  /**< ATT Error: Authenticated link required. */
+#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED      0x0106  /**< ATT Error: Used in ATT as Request Not Supported. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET             0x0107  /**< ATT Error: Offset specified was past the end of the attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION        0x0108  /**< ATT Error: Used in ATT as Insufficient Authorisation. */
+#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL         0x0109  /**< ATT Error: Used in ATT as Prepare Queue Full. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND        0x010A  /**< ATT Error: Used in ATT as Attribute not found. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG         0x010B  /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE         0x010C  /**< ATT Error: Encryption key size used is insufficient. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH     0x010D  /**< ATT Error: Invalid value size. */
+#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR             0x010E  /**< ATT Error: Very unlikely error. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION           0x010F  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE     0x0110  /**< ATT Error: Attribute type is not a supported grouping attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES            0x0111  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN           0x0112  /**< ATT Error: Reserved for Future Use range #1 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END             0x017F  /**< ATT Error: Reserved for Future Use range #1 end. */
+#define BLE_GATT_STATUS_ATTERR_APP_BEGIN                  0x0180  /**< ATT Error: Application range begin. */
+#define BLE_GATT_STATUS_ATTERR_APP_END                    0x019F  /**< ATT Error: Application range end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN           0x01A0  /**< ATT Error: Reserved for Future Use range #2 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END             0x01DF  /**< ATT Error: Reserved for Future Use range #2 end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN           0x01E0  /**< ATT Error: Reserved for Future Use range #3 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END             0x01FC  /**< ATT Error: Reserved for Future Use range #3 end. */
+#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR      0x01FD  /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */
+#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG       0x01FE  /**< ATT Common Profile and Service Error: Procedure Already in Progress. */
+#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE           0x01FF  /**< ATT Common Profile and Service Error: Out Of Range. */
+/** @} */
+
+
+/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats
+ *  @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
+ * @{ */
+#define BLE_GATT_CPF_FORMAT_RFU                 0x00 /**< Reserved For Future Use. */
+#define BLE_GATT_CPF_FORMAT_BOOLEAN             0x01 /**< Boolean. */
+#define BLE_GATT_CPF_FORMAT_2BIT                0x02 /**< Unsigned 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_NIBBLE              0x03 /**< Unsigned 4-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT8               0x04 /**< Unsigned 8-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT12              0x05 /**< Unsigned 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT16              0x06 /**< Unsigned 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT24              0x07 /**< Unsigned 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT32              0x08 /**< Unsigned 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT48              0x09 /**< Unsigned 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT64              0x0A /**< Unsigned 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT128             0x0B /**< Unsigned 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT8               0x0C /**< Signed 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT12              0x0D /**< Signed 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT16              0x0E /**< Signed 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT24              0x0F /**< Signed 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT32              0x10 /**< Signed 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT48              0x11 /**< Signed 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT64              0x12 /**< Signed 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT128             0x13 /**< Signed 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_FLOAT32             0x14 /**< IEEE-754 32-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_FLOAT64             0x15 /**< IEEE-754 64-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_SFLOAT              0x16 /**< IEEE-11073 16-bit SFLOAT. */
+#define BLE_GATT_CPF_FORMAT_FLOAT               0x17 /**< IEEE-11073 32-bit FLOAT. */
+#define BLE_GATT_CPF_FORMAT_DUINT16             0x18 /**< IEEE-20601 format. */
+#define BLE_GATT_CPF_FORMAT_UTF8S               0x19 /**< UTF-8 string. */
+#define BLE_GATT_CPF_FORMAT_UTF16S              0x1A /**< UTF-16 string. */
+#define BLE_GATT_CPF_FORMAT_STRUCT              0x1B /**< Opaque Structure. */
+/** @} */
+
+/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces
+ * @{
+ */
+#define BLE_GATT_CPF_NAMESPACE_BTSIG            0x01 /**< Bluetooth SIG defined Namespace. */
+#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000 /**< Namespace Description Unknown. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATT_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE GATT initialization parameters.
+ */
+typedef struct
+{
+  uint16_t  att_mtu;          /**< Maximum size of ATT packet the SoftDevice can send or receive.
+                                   If it is 0 then @ref GATT_MTU_SIZE_DEFAULT will be used.
+                                   Otherwise @ref GATT_MTU_SIZE_DEFAULT is the minimum value.
+                                   @mscs
+                                   @mmsc{@ref BLE_GATTC_MTU_EXCHANGE}
+                                   @mmsc{@ref BLE_GATTS_MTU_EXCHANGE}
+                                   @endmscs
+                              */
+} ble_gatt_enable_params_t;
+
+/**@brief GATT Characteristic Properties. */
+typedef struct
+{
+  /* Standard properties */
+  uint8_t broadcast       :1; /**< Broadcasting of the value permitted. */
+  uint8_t read            :1; /**< Reading the value permitted. */
+  uint8_t write_wo_resp   :1; /**< Writing the value with Write Command permitted. */
+  uint8_t write           :1; /**< Writing the value with Write Request permitted. */
+  uint8_t notify          :1; /**< Notications of the value permitted. */
+  uint8_t indicate        :1; /**< Indications of the value permitted. */
+  uint8_t auth_signed_wr  :1; /**< Writing the value with Signed Write Command permitted. */
+} ble_gatt_char_props_t;
+
+/**@brief GATT Characteristic Extended Properties. */
+typedef struct
+{
+  /* Extended properties */
+  uint8_t reliable_wr     :1; /**< Writing the value with Queued Write operations permitted. */
+  uint8_t wr_aux          :1; /**< Writing the Characteristic User Description descriptor permitted. */
+} ble_gatt_char_ext_props_t;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GATT_H__
+
+/** @} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gattc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gattc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gattc.h
@@ -0,0 +1,660 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client
+  @{
+  @brief  Definitions and prototypes for the GATT Client interface.
+ */
+
+#ifndef BLE_GATTC_H__
+#define BLE_GATTC_H__
+
+#include "ble_gatt.h"
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATTC_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GATTC API SVC numbers. */
+enum BLE_GATTC_SVCS
+{
+  SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */
+  SD_BLE_GATTC_RELATIONSHIPS_DISCOVER,                         /**< Relationship Discovery. */
+  SD_BLE_GATTC_CHARACTERISTICS_DISCOVER,                       /**< Characteristic Discovery. */
+  SD_BLE_GATTC_DESCRIPTORS_DISCOVER,                           /**< Characteristic Descriptor Discovery. */
+  SD_BLE_GATTC_ATTR_INFO_DISCOVER,                             /**< Attribute Information Discovery. */
+  SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ,                        /**< Read Characteristic Value by UUID. */
+  SD_BLE_GATTC_READ,                                           /**< Generic read. */
+  SD_BLE_GATTC_CHAR_VALUES_READ,                               /**< Read multiple Characteristic Values. */
+  SD_BLE_GATTC_WRITE,                                          /**< Generic write. */
+  SD_BLE_GATTC_HV_CONFIRM,                                     /**< Handle Value Confirmation. */
+  SD_BLE_GATTC_EXCHANGE_MTU_REQUEST,                           /**< Exchange MTU Request. */
+};
+
+/**
+ * @brief GATT Client Event IDs.
+ */
+enum BLE_GATTC_EVTS
+{
+  BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE,  /**< Primary Service Discovery Response event.      \n See @ref ble_gattc_evt_prim_srvc_disc_rsp_t.          */
+  BLE_GATTC_EVT_REL_DISC_RSP,                             /**< Relationship Discovery Response event.         \n See @ref ble_gattc_evt_rel_disc_rsp_t.                */
+  BLE_GATTC_EVT_CHAR_DISC_RSP,                            /**< Characteristic Discovery Response event.       \n See @ref ble_gattc_evt_char_disc_rsp_t.               */
+  BLE_GATTC_EVT_DESC_DISC_RSP,                            /**< Descriptor Discovery Response event.           \n See @ref ble_gattc_evt_desc_disc_rsp_t.               */
+  BLE_GATTC_EVT_ATTR_INFO_DISC_RSP,                       /**< Attribute Information Response event.          \n See @ref ble_gattc_evt_attr_info_disc_rsp_t. */
+  BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP,                /**< Read By UUID Response event.                   \n See @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t.   */
+  BLE_GATTC_EVT_READ_RSP,                                 /**< Read Response event.                           \n See @ref ble_gattc_evt_read_rsp_t.                    */
+  BLE_GATTC_EVT_CHAR_VALS_READ_RSP,                       /**< Read multiple Response event.                  \n See @ref ble_gattc_evt_char_vals_read_rsp_t.          */
+  BLE_GATTC_EVT_WRITE_RSP,                                /**< Write Response event.                          \n See @ref ble_gattc_evt_write_rsp_t.                   */
+  BLE_GATTC_EVT_HVX,                                      /**< Handle Value Notification or Indication event. \n Confirm indication with @ref sd_ble_gattc_hv_confirm.  \n See @ref ble_gattc_evt_hvx_t. */
+  BLE_GATTC_EVT_EXCHANGE_MTU_RSP,                         /**< Exchange MTU Response event.                   \n See @ref ble_gattc_evt_exchange_mtu_rsp_t.            */
+  BLE_GATTC_EVT_TIMEOUT                                   /**< Timeout event.                                 \n See @ref ble_gattc_evt_timeout_t.                     */
+};
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC
+ * @{ */
+#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED    (NRF_GATTC_ERR_BASE + 0x000) /**< Procedure not Permitted. */
+/** @} */
+
+/** @defgroup BLE_GATTC_ATTR_INFO_FORMAT Attribute Information Formats
+ * @{ */
+#define BLE_GATTC_ATTR_INFO_FORMAT_16BIT    1 /**< 16-bit Attribute Information Format. */
+#define BLE_GATTC_ATTR_INFO_FORMAT_128BIT   2 /**< 128-bit Attribute Information Format. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_STRUCTURES Structures
+ * @{ */
+
+/**@brief Operation Handle Range. */
+typedef struct
+{
+  uint16_t          start_handle; /**< Start Handle. */
+  uint16_t          end_handle;   /**< End Handle. */
+} ble_gattc_handle_range_t;
+
+
+/**@brief GATT service. */
+typedef struct
+{
+  ble_uuid_t               uuid;          /**< Service UUID. */
+  ble_gattc_handle_range_t handle_range;  /**< Service Handle Range. */
+} ble_gattc_service_t;
+
+
+/**@brief  GATT include. */
+typedef struct
+{
+  uint16_t            handle;           /**< Include Handle. */
+  ble_gattc_service_t included_srvc;    /**< Handle of the included service. */
+} ble_gattc_include_t;
+
+
+/**@brief GATT characteristic. */
+typedef struct
+{
+  ble_uuid_t              uuid;                 /**< Characteristic UUID. */
+  ble_gatt_char_props_t   char_props;           /**< Characteristic Properties. */
+  uint8_t                 char_ext_props : 1;   /**< Extended properties present. */
+  uint16_t                handle_decl;          /**< Handle of the Characteristic Declaration. */
+  uint16_t                handle_value;         /**< Handle of the Characteristic Value. */
+} ble_gattc_char_t;
+
+
+/**@brief GATT descriptor. */
+typedef struct
+{
+  uint16_t          handle;         /**< Descriptor Handle. */
+  ble_uuid_t        uuid;           /**< Descriptor UUID. */
+} ble_gattc_desc_t;
+
+
+/**@brief Write Parameters. */
+typedef struct
+{
+  uint8_t        write_op;             /**< Write Operation to be performed, see @ref BLE_GATT_WRITE_OPS. */
+  uint8_t        flags;                /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */
+  uint16_t       handle;               /**< Handle to the attribute to be written. */
+  uint16_t       offset;               /**< Offset in bytes. @note For WRITE_CMD and WRITE_REQ, offset must be 0. */
+  uint16_t       len;                  /**< Length of data in bytes. */
+  uint8_t const *p_value;              /**< Pointer to the value data. */
+} ble_gattc_write_params_t;
+
+/**@brief Attribute Information for 16-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid_t     uuid;                 /**< 16-bit Attribute UUID. */
+} ble_gattc_attr_info16_t;
+
+/**@brief Attribute Information for 128-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid128_t  uuid;                 /**< 128-bit Attribute UUID. */
+} ble_gattc_attr_info128_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Service count. */
+  ble_gattc_service_t services[1];      /**< Service data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_prim_srvc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_REL_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Include count. */
+  ble_gattc_include_t includes[1];      /**< Include data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_rel_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Characteristic count. */
+  ble_gattc_char_t    chars[1];       /**< Characteristic data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_DESC_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Descriptor count. */
+  ble_gattc_desc_t    descs[1];       /**< Descriptor data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_desc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP. */
+typedef struct
+{
+  uint16_t                     count;            /**< Attribute count. */
+  uint8_t                      format;           /**< Attribute information format, see @ref BLE_GATTC_ATTR_INFO_FORMAT. */
+  union {
+    ble_gattc_attr_info16_t  attr_info16[1];     /**< Attribute information for 16-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+    ble_gattc_attr_info128_t attr_info128[1];    /**< Attribute information for 128-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+  } info;                                        /**< Attribute information union. */
+} ble_gattc_evt_attr_info_disc_rsp_t;
+
+/**@brief GATT read by UUID handle value pair. */
+typedef struct
+{
+  uint16_t            handle;          /**< Attribute Handle. */
+  uint8_t            *p_value;         /**< Pointer to the Attribute Value, length is available in @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t::value_len. */
+} ble_gattc_handle_value_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */
+typedef struct
+{
+  uint16_t                  count;            /**< Handle-Value Pair Count. */
+  uint16_t                  value_len;        /**< Length of the value in Handle-Value(s) list. */
+  uint8_t                   handle_value[1];  /**< Handle-Value(s) list. To iterate through the list use @ref sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter.
+                                                   @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                   See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_val_by_uuid_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_READ_RSP. */
+typedef struct
+{
+  uint16_t            handle;         /**< Attribute Handle. */
+  uint16_t            offset;         /**< Offset of the attribute data. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */
+typedef struct
+{
+  uint16_t            len;            /**< Concatenated Attribute values length. */
+  uint8_t             values[1];      /**< Attribute values. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_vals_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_RSP. */
+typedef struct
+{
+  uint16_t            handle;           /**< Attribute Handle. */
+  uint8_t             write_op;         /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */
+  uint16_t            offset;           /**< Data offset. */
+  uint16_t            len;              /**< Data length. */
+  uint8_t             data[1];          /**< Data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_write_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_HVX. */
+typedef struct
+{
+  uint16_t            handle;         /**< Handle to which the HVx operation applies. */
+  uint8_t             type;           /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_hvx_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. */
+typedef struct
+{
+  uint16_t          server_rx_mtu;            /**< Server RX MTU size. */
+} ble_gattc_evt_exchange_mtu_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gattc_evt_timeout_t;
+
+/**@brief GATTC event structure. */
+typedef struct
+{
+  uint16_t            conn_handle;                /**< Connection Handle on which event occured. */
+  uint16_t            gatt_status;                /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint16_t            error_handle;               /**< In case of error: The handle causing the error. In all other cases @ref BLE_GATT_HANDLE_INVALID. */
+  union
+  {
+    ble_gattc_evt_prim_srvc_disc_rsp_t          prim_srvc_disc_rsp;         /**< Primary Service Discovery Response Event Parameters. */
+    ble_gattc_evt_rel_disc_rsp_t                rel_disc_rsp;               /**< Relationship Discovery Response Event Parameters. */
+    ble_gattc_evt_char_disc_rsp_t               char_disc_rsp;              /**< Characteristic Discovery Response Event Parameters. */
+    ble_gattc_evt_desc_disc_rsp_t               desc_disc_rsp;              /**< Descriptor Discovery Response Event Parameters. */
+    ble_gattc_evt_char_val_by_uuid_read_rsp_t   char_val_by_uuid_read_rsp;  /**< Characteristic Value Read by UUID Response Event Parameters. */
+    ble_gattc_evt_read_rsp_t                    read_rsp;                   /**< Read Response Event Parameters. */
+    ble_gattc_evt_char_vals_read_rsp_t          char_vals_read_rsp;         /**< Characteristic Values Read Response Event Parameters. */
+    ble_gattc_evt_write_rsp_t                   write_rsp;                  /**< Write Response Event Parameters. */
+    ble_gattc_evt_hvx_t                         hvx;                        /**< Handle Value Notification/Indication Event Parameters. */
+    ble_gattc_evt_exchange_mtu_rsp_t            exchange_mtu_rsp;           /**< Exchange MTU Response Event Parameters. */
+    ble_gattc_evt_timeout_t                     timeout;                    /**< Timeout Event Parameters. */
+    ble_gattc_evt_attr_info_disc_rsp_t          attr_info_disc_rsp;         /**< Attribute Information Discovery Event Parameters. */
+  } params;                                                                 /**< Event Parameters. @note Only valid if @ref gatt_status == @ref BLE_GATT_STATUS_SUCCESS. */
+} ble_gattc_evt_t;
+/** @} */
+
+/** @addtogroup BLE_GATTC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initiate or continue a GATT Primary Service Discovery procedure.
+ *
+ * @details This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle.
+ *          If the last service has not been reached, this function must be called again with an updated start handle value to continue the search.
+ *
+ * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_PRIM_SRVC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] start_handle Handle to start searching from.
+ * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const *p_srvc_uuid));
+
+
+/**@brief Initiate or continue a GATT Relationship Discovery procedure.
+ *
+ * @details This function initiates or resumes the Find Included Services sub-procedure. If the last included service has not been reached,
+ *          this must be called again with an updated handle range to continue the search.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_REL_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_REL_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic discovery procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_CHAR_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_DESC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_DESC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure.
+ *
+ * @details This function initiates or resumes a Read using Characteristic UUID procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_UUID_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_uuid Pointer to a Characteristic value UUID to read.
+ * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const *p_uuid, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure.
+ *
+ * @details This function initiates or resumes a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor
+ *          to be read is longer than ATT_MTU - 1, this function must be called multiple times with appropriate offset to read the
+ *          complete value.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_READ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute to be read.
+ * @param[in] offset Offset into the attribute value to be read.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read (Long) procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset));
+
+
+/**@brief Initiate a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @details This function initiates a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_MULT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read.
+ * @param[in] handle_count The number of handles in p_handles.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const *p_handles, uint16_t handle_count));
+
+
+/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure.
+ *
+ * @details This function can perform all write procedures described in GATT.
+ *
+ * @note    It is important to note that a write without response will <b>consume an application buffer</b>, and will therefore
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. A write (with response) on the other hand will use the
+ *          standard client internal buffer and thus will only generate a @ref BLE_GATTC_EVT_WRITE_RSP event as soon as the write response
+ *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_packet_count_get for more details.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_WRITE_RSP, Generated when using write request or queued writes.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_LONG_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_RELIABLE_WRITE_MSC}
+ * @mmsc{@ref BLE_COMMON_APP_BUFF_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_write_params A pointer to a write parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Write procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress.
+ * @retval ::BLE_ERROR_NO_TX_PACKETS No available application packets for this connection.
+ */
+SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const *p_write_params));
+
+
+/**@brief Send a Handle Value Confirmation to the GATT Server.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_HVI_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute in the indication.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no Indication pending to be confirmed.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle.
+ */
+SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle));
+
+/**@brief Discovers information about a range of attributes on a GATT server.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, Generated when information about a range of attributes has been received.}
+ * @endevents
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range The range of handles to request information about.
+ *
+ * @retval ::NRF_SUCCESS Successfully started an attribute information discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state
+ * @retval ::NRF_ERROR_INVALID_ADDR  Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_ATTR_INFO_DISCOVER, uint32_t, sd_ble_gattc_attr_info_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * p_handle_range));
+
+/**@brief Start an ATT_MTU exchange by sending an Exchange MTU Request to the server.
+ *
+ * @details The SoftDevice sets ATT_MTU to the minimum of:
+ *          - The Client RX MTU value, and
+ *          - The Server RX MTU value from @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP.
+ *
+ *          However, the SoftDevice never sets ATT_MTU lower than @ref GATT_MTU_SIZE_DEFAULT.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP}
+ * @event{@ref BLE_EVT_DATA_LENGTH_CHANGED, Generated if a data length update procedure is performed after the ATT_MTU exchange.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_MTU_EXCHANGE}
+ * @endmscs
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] client_rx_mtu  Client RX MTU size.
+ *                           - The minimum value is @ref GATT_MTU_SIZE_DEFAULT.
+ *                           - The maximum value is @ref ble_gatt_enable_params_t::att_mtu.
+ *                           - The value must be equal to Server RX MTU size given in @ref sd_ble_gatts_exchange_mtu_reply
+ *                             if an ATT_MTU exchange has already been performed in the other direction.
+ *
+ * @retval ::NRF_SUCCESS Successfully sent request to the server.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state or an ATT_MTU exchange was already requested once.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid Client RX MTU size supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, uint32_t, sd_ble_gattc_exchange_mtu_request(uint16_t conn_handle, uint16_t client_rx_mtu));
+
+/**@brief Iterate through Handle-Value(s) list in @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *
+ * @param[in] p_gattc_evt  Pointer to event buffer containing @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *                         @note If the buffer contains different event, behavior is undefined.
+ * @param[in,out] p_iter   Iterator, points to @ref ble_gattc_handle_value_t structure that will be filled in with
+ *                         the next Handle-Value pair in each iteration. If the function returns other than
+ *                         @ref NRF_SUCCESS, it will not be changed.
+ *                         - To start iteration, initialize the structure to zero.
+ *                         - To continue, pass the value from previous iteration.
+ *
+ * \code
+ * ble_gattc_handle_value_t iter;
+ * memset(&iter, 0, sizeof(ble_gattc_handle_value_t));
+ * while (sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(&ble_evt.evt.gattc_evt, &iter) == NRF_SUCCESS)
+ * {
+ *   app_handle = iter.handle;
+ *   memcpy(app_value, iter.p_value, ble_evt.evt.gattc_evt.params.char_val_by_uuid_read_rsp.value_len);
+ * }
+ * \endcode
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the next Handle-Value pair.
+ * @retval ::NRF_ERROR_NOT_FOUND No more Handle-Value pairs available in the list.
+ */
+static inline uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter)
+{
+  uint32_t value_len = p_gattc_evt->params.char_val_by_uuid_read_rsp.value_len;
+  uint8_t *p_first = p_gattc_evt->params.char_val_by_uuid_read_rsp.handle_value;
+  uint8_t *p_next = p_iter->p_value ? p_iter->p_value + value_len : p_first;
+
+  if ((p_next - p_first) / (sizeof(uint16_t) + value_len) < p_gattc_evt->params.char_val_by_uuid_read_rsp.count)
+  {
+    p_iter->handle = (uint16_t)p_next[1] << 8 | p_next[0];
+    p_iter->p_value = p_next + sizeof(uint16_t);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_NOT_FOUND;
+  }
+}
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_GATTC_H__ */
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatts.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatts.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_gatts.h
@@ -0,0 +1,778 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server
+  @{
+  @brief  Definitions and prototypes for the GATTS interface.
+ */
+
+#ifndef BLE_GATTS_H__
+#define BLE_GATTS_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "ble_l2cap.h"
+#include "ble_gap.h"
+#include "ble_gatt.h"
+#include "nrf_svc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATTS_ENUMERATIONS Enumerations
+ * @{ */
+
+/**
+ * @brief GATTS API SVC numbers.
+ */
+enum BLE_GATTS_SVCS
+{
+  SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */
+  SD_BLE_GATTS_INCLUDE_ADD,                      /**< Add an included service. */
+  SD_BLE_GATTS_CHARACTERISTIC_ADD,               /**< Add a characteristic. */
+  SD_BLE_GATTS_DESCRIPTOR_ADD,                   /**< Add a generic attribute. */
+  SD_BLE_GATTS_VALUE_SET,                        /**< Set an attribute value. */
+  SD_BLE_GATTS_VALUE_GET,                        /**< Get an attribute value. */
+  SD_BLE_GATTS_HVX,                              /**< Handle Value Notification or Indication. */
+  SD_BLE_GATTS_SERVICE_CHANGED,                  /**< Perform a Service Changed Indication to one or more peers. */
+  SD_BLE_GATTS_RW_AUTHORIZE_REPLY,               /**< Reply to an authorization request for a read or write operation on one or more attributes. */
+  SD_BLE_GATTS_SYS_ATTR_SET,                     /**< Set the persistent system attributes for a connection. */
+  SD_BLE_GATTS_SYS_ATTR_GET,                     /**< Retrieve the persistent system attributes. */
+  SD_BLE_GATTS_INITIAL_USER_HANDLE_GET,          /**< Retrieve the first valid user handle. */
+  SD_BLE_GATTS_ATTR_GET,                         /**< Retrieve the UUID and/or metadata of an attribute. */
+  SD_BLE_GATTS_EXCHANGE_MTU_REPLY                /**< Reply to Exchange MTU Request. */
+};
+
+/**
+ * @brief GATT Server Event IDs.
+ */
+enum BLE_GATTS_EVTS
+{
+  BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE,       /**< Write operation performed.                                           \n See @ref ble_gatts_evt_write_t.                 */
+  BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST,             /**< Read/Write Authorization request.                                    \n Reply with @ref sd_ble_gatts_rw_authorize_reply. \n See @ref ble_gatts_evt_rw_authorize_request_t. */
+  BLE_GATTS_EVT_SYS_ATTR_MISSING,                 /**< A persistent system attribute access is pending.                     \n Respond with @ref sd_ble_gatts_sys_attr_set.     \n See @ref ble_gatts_evt_sys_attr_missing_t.     */
+  BLE_GATTS_EVT_HVC,                              /**< Handle Value Confirmation.                                           \n See @ref ble_gatts_evt_hvc_t.                   */
+  BLE_GATTS_EVT_SC_CONFIRM,                       /**< Service Changed Confirmation. No additional event structure applies.                                                    */
+  BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST,             /**< Exchange MTU Request.                                                \n Reply with @ref sd_ble_gatts_exchange_mtu_reply. \n See @ref ble_gatts_evt_exchange_mtu_request_t. */
+  BLE_GATTS_EVT_TIMEOUT                           /**< Peer failed to resonpond to an ATT request in time.                  \n See @ref ble_gatts_evt_timeout_t.               */
+};
+/** @} */
+
+/** @addtogroup BLE_GATTS_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS
+ * @{ */
+#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE   (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */
+#define BLE_ERROR_GATTS_SYS_ATTR_MISSING    (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */
+/** @} */
+
+/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths
+ * @{ */
+#define BLE_GATTS_FIX_ATTR_LEN_MAX (510)  /**< Maximum length for fixed length Attribute Values. */
+#define BLE_GATTS_VAR_ATTR_LEN_MAX (512)  /**< Maximum length for variable length Attribute Values. */
+/** @} */
+
+/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types
+ * @{ */
+#define BLE_GATTS_SRVC_TYPE_INVALID          0x00  /**< Invalid Service Type. */
+#define BLE_GATTS_SRVC_TYPE_PRIMARY          0x01  /**< Primary Service. */
+#define BLE_GATTS_SRVC_TYPE_SECONDARY        0x02  /**< Secondary Type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types
+ * @{ */
+#define BLE_GATTS_ATTR_TYPE_INVALID         0x00  /**< Invalid Attribute Type. */
+#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL  0x01  /**< Primary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL   0x02  /**< Secondary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_INC_DECL        0x03  /**< Include Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_DECL       0x04  /**< Characteristic Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_VAL        0x05  /**< Characteristic Value. */
+#define BLE_GATTS_ATTR_TYPE_DESC            0x06  /**< Descriptor. */
+#define BLE_GATTS_ATTR_TYPE_OTHER           0x07  /**< Other, non-GATT specific type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_OPS GATT Server Operations
+ * @{ */
+#define BLE_GATTS_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATTS_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATTS_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATTS_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATTS_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL  0x05  /**< Execute Write Request: Cancel all prepared writes. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW     0x06  /**< Execute Write Request: Immediately execute all prepared writes. */
+/** @} */
+
+/** @defgroup BLE_GATTS_VLOCS GATT Value Locations
+ * @{ */
+#define BLE_GATTS_VLOC_INVALID       0x00  /**< Invalid Location. */
+#define BLE_GATTS_VLOC_STACK         0x01  /**< Attribute Value is located in stack memory, no user memory is required. */
+#define BLE_GATTS_VLOC_USER          0x02  /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack
+                                                will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */
+/** @} */
+
+/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types
+ * @{ */
+#define BLE_GATTS_AUTHORIZE_TYPE_INVALID    0x00  /**< Invalid Type. */
+#define BLE_GATTS_AUTHORIZE_TYPE_READ       0x01  /**< Authorize a Read Operation. */
+#define BLE_GATTS_AUTHORIZE_TYPE_WRITE      0x02  /**< Authorize a Write Request Operation. */
+/** @} */
+
+/** @defgroup BLE_GATTS_SYS_ATTR_FLAGS System Attribute Flags
+ * @{ */
+#define BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS (1 << 0)  /**< Restrict system attributes to system services only. */
+#define BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS (1 << 1)  /**< Restrict system attributes to user services only. */
+/** @} */
+
+/** @defgroup BLE_GATTS_ATTR_TAB_SIZE Attribute Table size
+ * @{
+ */
+#define BLE_GATTS_ATTR_TAB_SIZE_MIN         248    /**< Minimum Attribute Table size */
+#define BLE_GATTS_ATTR_TAB_SIZE_DEFAULT     0x0000 /**< Default Attribute Table size (0x580 bytes for this version of the SoftDevice). */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATTS_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE GATTS initialization parameters.
+ */
+typedef struct
+{
+  uint8_t                  service_changed:1; /**< Include the Service Changed characteristic in the Attribute Table. */
+  uint32_t                 attr_tab_size;     /**< Attribute Table size in bytes. The size must be a multiple of 4. @ref BLE_GATTS_ATTR_TAB_SIZE_DEFAULT is used to set the default size. */
+} ble_gatts_enable_params_t;
+
+/**@brief Attribute metadata. */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t read_perm;       /**< Read permissions. */
+  ble_gap_conn_sec_mode_t write_perm;      /**< Write permissions. */
+  uint8_t                 vlen       :1;   /**< Variable length attribute. */
+  uint8_t                 vloc       :2;   /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 rd_auth    :1;   /**< Read authorization and value will be requested from the application on every read operation. */
+  uint8_t                 wr_auth    :1;   /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */
+} ble_gatts_attr_md_t;
+
+
+/**@brief GATT Attribute. */
+typedef struct
+{
+  ble_uuid_t          *p_uuid;          /**< Pointer to the attribute UUID. */
+  ble_gatts_attr_md_t *p_attr_md;       /**< Pointer to the attribute metadata structure. */
+  uint16_t             init_len;        /**< Initial attribute value length in bytes. */
+  uint16_t             init_offs;       /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */
+  uint16_t             max_len;         /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */
+  uint8_t*             p_value;         /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer
+                                             that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location.
+                                             The stack may access that memory directly without the application's knowledge. For writable characteristics, this value must not be a location in flash memory.*/
+} ble_gatts_attr_t;
+
+/**@brief GATT Attribute Value. */
+typedef struct
+{
+  uint16_t  len;        /**< Length in bytes to be written or read. Length in bytes written or read after successful return.*/
+  uint16_t  offset;     /**< Attribute value offset. */
+  uint8_t   *p_value;   /**< Pointer to where value is stored or will be stored.
+                             If value is stored in user memory, only the attribute length is updated when p_value == NULL.
+                             Set to NULL when reading to obtain the complete length of the attribute value */
+} ble_gatts_value_t;
+
+
+/**@brief GATT Characteristic Presentation Format. */
+typedef struct
+{
+  uint8_t          format;      /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */
+  int8_t           exponent;    /**< Exponent for integer data types. */
+  uint16_t         unit;        /**< Unit from Bluetooth Assigned Numbers. */
+  uint8_t          name_space;  /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+  uint16_t         desc;        /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+} ble_gatts_char_pf_t;
+
+
+/**@brief GATT Characteristic metadata. */
+typedef struct
+{
+  ble_gatt_char_props_t       char_props;               /**< Characteristic Properties. */
+  ble_gatt_char_ext_props_t   char_ext_props;           /**< Characteristic Extended Properties. */
+  uint8_t                    *p_char_user_desc;         /**< Pointer to a UTF-8 encoded string (non-NULL terminated), NULL if the descriptor is not required. */
+  uint16_t                    char_user_desc_max_size;  /**< The maximum size in bytes of the user description descriptor. */
+  uint16_t                    char_user_desc_size;      /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */
+  ble_gatts_char_pf_t*        p_char_pf;                /**< Pointer to a presentation format structure or NULL if the CPF descriptor is not required. */
+  ble_gatts_attr_md_t*        p_user_desc_md;           /**< Attribute metadata for the User Description descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t*        p_cccd_md;                /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t*        p_sccd_md;                /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */
+} ble_gatts_char_md_t;
+
+
+/**@brief GATT Characteristic Definition Handles. */
+typedef struct
+{
+  uint16_t          value_handle;       /**< Handle to the characteristic value. */
+  uint16_t          user_desc_handle;   /**< Handle to the User Description descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          cccd_handle;        /**< Handle to the Client Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          sccd_handle;        /**< Handle to the Server Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+} ble_gatts_char_handles_t;
+
+
+/**@brief GATT HVx parameters. */
+typedef struct
+{
+  uint16_t          handle;             /**< Characteristic Value Handle. */
+  uint8_t           type;               /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t          offset;             /**< Offset within the attribute value. */
+  uint16_t         *p_len;              /**< Length in bytes to be written, length in bytes written after successful return. */
+  uint8_t          *p_data;             /**< Actual data content, use NULL to use the current attribute value. */
+} ble_gatts_hvx_params_t;
+
+/**@brief GATT Authorization parameters. */
+typedef struct
+{
+  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint8_t           update : 1;         /**< If set, data supplied in p_data will be used to update the attribute value.
+                                             Please note that for @ref BLE_GATTS_AUTHORIZE_TYPE_WRITE operations this bit must always be set,
+                                             as the data to be written needs to be stored and later provided by the application. */
+  uint16_t          offset;             /**< Offset of the attribute value being updated. */
+  uint16_t          len;                /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */
+  const uint8_t    *p_data;             /**< Pointer to new value used to update the attribute value. */
+} ble_gatts_authorize_params_t;
+
+/**@brief GATT Read or Write Authorize Reply parameters. */
+typedef struct
+{
+  uint8_t                               type;   /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_authorize_params_t        read;   /**< Read authorization parameters. */
+    ble_gatts_authorize_params_t        write;  /**< Write authorization parameters. */
+  } params;                                     /**< Reply Parameters. */
+} ble_gatts_rw_authorize_reply_params_t;
+
+
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_WRITE. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  ble_uuid_t                  uuid;               /**< Attribute UUID. */
+  uint8_t                     op;                 /**< Type of write operation, see @ref BLE_GATTS_OPS. */
+  uint8_t                     auth_required;      /**< Writing operation deferred due to authorization requirement. Application may use @ref sd_ble_gatts_value_set to finalise the writing operation. */
+  uint16_t                    offset;             /**< Offset for the write operation. */
+  uint16_t                    len;                /**< Length of the received data. */
+  uint8_t                     data[1];            /**< Received data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                       See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gatts_evt_write_t;
+
+/**@brief Event substructure for authorized read requests, see @ref ble_gatts_evt_rw_authorize_request_t. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  ble_uuid_t                  uuid;               /**< Attribute UUID. */
+  uint16_t                    offset;             /**< Offset for the read operation. */
+} ble_gatts_evt_read_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;             /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_evt_read_t      read;             /**< Attribute Read Parameters. */
+    ble_gatts_evt_write_t     write;            /**< Attribute Write Parameters. */
+  } request;                                    /**< Request Parameters. */
+} ble_gatts_evt_rw_authorize_request_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. */
+typedef struct
+{
+  uint8_t hint;                                 /**< Hint (currently unused). */
+} ble_gatts_evt_sys_attr_missing_t;
+
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_HVC. */
+typedef struct
+{
+  uint16_t          handle;                       /**< Attribute Handle. */
+} ble_gatts_evt_hvc_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST. */
+typedef struct
+{
+  uint16_t          client_rx_mtu;              /**< Client RX MTU size. */
+} ble_gatts_evt_exchange_mtu_request_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gatts_evt_timeout_t;
+
+
+/**@brief GATTS event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                       /**< Connection Handle on which the event occurred. */
+  union
+  {
+    ble_gatts_evt_write_t                 write;                 /**< Write Event Parameters. */
+    ble_gatts_evt_rw_authorize_request_t  authorize_request;     /**< Read or Write Authorize Request Parameters. */
+    ble_gatts_evt_sys_attr_missing_t      sys_attr_missing;      /**< System attributes missing. */
+    ble_gatts_evt_hvc_t                   hvc;                   /**< Handle Value Confirmation Event Parameters. */
+    ble_gatts_evt_exchange_mtu_request_t  exchange_mtu_request;  /**< Exchange MTU Request Event Parameters. */
+    ble_gatts_evt_timeout_t               timeout;               /**< Timeout Event. */
+  } params;                                                      /**< Event Parameters. */
+} ble_gatts_evt_t;
+
+/** @} */
+
+/** @addtogroup BLE_GATTS_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Add a service declaration to the Attribute Table.
+ *
+ * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to
+ *       add a secondary service declaration that is not referenced by another service later in the Attribute Table.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] type      Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES.
+ * @param[in] p_uuid    Pointer to service UUID.
+ * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a service declaration.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const *p_uuid, uint16_t *p_handle));
+
+
+/**@brief Add an include declaration to the Attribute Table.
+ *
+ * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential population is supported at this time).
+ *
+ * @note The included service must already be present in the Attribute Table prior to this call.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] service_handle    Handle of the service where the included service is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] inc_srvc_handle   Handle of the included service.
+ * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added an include declaration.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Feature is not supported, service_handle must be that of the last added service.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ */
+SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *p_include_handle));
+
+
+/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the Attribute Table.
+ *
+ * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential population is supported at this time).
+ *
+ * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writeable auxiliaries bits,
+ *       readable (no security) and writeable (selectable) CCCDs and SCCDs and valid presentation format values.
+ *
+ * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] service_handle    Handle of the service where the characteristic is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_char_md         Characteristic metadata.
+ * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value.
+ * @param[out] p_handles        Pointer to the structure where the assigned handles will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a characteristic.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const *p_char_md, ble_gatts_attr_t const *p_attr_char_value, ble_gatts_char_handles_t *p_handles));
+
+
+/**@brief Add a descriptor to the Attribute Table.
+ *
+ * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential population is supported at this time).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] char_handle   Handle of the characteristic where the descriptor is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_attr        Pointer to the attribute structure.
+ * @param[out] p_handle     Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a descriptor.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const *p_attr, uint16_t *p_handle));
+
+/**@brief Set the value of a given attribute.
+ *
+ * @note Values other than system attributes can be set at any time, regardless of wheter any active connections exist.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle. If the value does not belong to a system attribute then @ref BLE_CONN_HANDLE_INVALID can be used.
+ * @param[in] handle       Attribute handle.
+ * @param[in,out] p_value  Attribute value information.
+ *
+ * @retval ::NRF_SUCCESS Successfully set the value of the attribute.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE @ref BLE_CONN_HANDLE_INVALID supplied on a system attribute.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value));
+
+/**@brief Get the value of a given attribute.
+ *
+ * @note                 If the attribute value is longer than the size of the supplied buffer,
+ *                       p_len will return the total attribute value length (excluding offset),
+ *                       and not the number of bytes actually returned in p_data.
+ *                       The application may use this information to allocate a suitable buffer size.
+ *
+ * @note                 When retrieving system attribute values with this function, the connection handle
+ *                       may refer to an already disconnected connection. Refer to the documentation of
+ *                       @ref sd_ble_gatts_sys_attr_get for further information.
+ *
+ * @param[in] conn_handle  Connection handle. If the value does not belong to a system attribute then @ref BLE_CONN_HANDLE_INVALID can be used.
+ * @param[in] handle       Attribute handle.
+ * @param[in,out] p_value  Attribute value information.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the value of the attribute.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid attribute offset supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE @ref BLE_CONN_HANDLE_INVALID supplied on a system attribute.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value));
+
+/**@brief Notify or Indicate an attribute value.
+ *
+ * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation
+ *          (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that
+ *          the application can atomically perform a value update and a server initiated transaction with a single API call.
+ *          If the application chooses to indicate an attribute value, a @ref BLE_GATTS_EVT_HVC event will be issued as soon as the confirmation arrives from
+ *          the peer.
+ *
+ * @note    The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution.
+ *          The Attribute Table has been updated if one of the following error codes is returned: @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY,
+ *          @ref NRF_ERROR_FORBIDDEN, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and @ref BLE_ERROR_NO_TX_PACKETS.
+ *          The caller can check whether the value has been updated by looking at the contents of *(p_hvx_params->p_len).
+ *
+ * @note    It is important to note that a notification will <b>consume an application buffer</b>, and will therefore
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. An indication on the other hand will use the
+ *          standard server internal buffer and thus will only generate a @ref BLE_GATTS_EVT_HVC event as soon as the confirmation
+ *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_packet_count_get for more details.
+ *
+ * @events
+ * @event{@ref BLE_EVT_TX_COMPLETE, Transmission complete.}
+ * @event{@ref BLE_GATTS_EVT_HVC, Confirmation received from peer.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC}
+ * @mmsc{@ref BLE_GATTS_HVN_MSC}
+ * @mmsc{@ref BLE_GATTS_HVI_MSC}
+ * @mmsc{@ref BLE_GATTS_HVX_DISABLED_MSC}
+ * @mmsc{@ref BLE_COMMON_APP_BUFF_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] p_hvx_params Pointer to an HVx parameters structure. If the p_data member contains a non-NULL pointer the attribute value will be updated with
+ *                         the contents pointed by it before sending the notification or indication.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true:
+ *                                   - Invalid Connection State
+ *                                   - Notifications and/or indications not enabled in the CCCD
+ *                                   - An ATT_MTU exchange is ongoing
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate.
+ * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_FORBIDDEN The connection's current security level is lower than the one required by the write permissions of the CCCD associated with this characteristic.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ * @retval ::BLE_ERROR_NO_TX_PACKETS  No available application packets for this connection, applies only to notifications.
+ */
+SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const *p_hvx_params));
+
+/**@brief Indicate the Service Changed attribute value.
+ *
+ * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the Attribute
+ *          Table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will
+ *          be issued.
+ *
+ * @note    Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here.
+ *
+ * @events
+ * @event{@ref BLE_GATTS_EVT_SC_CONFIRM, Confirmation of attribute table change received from peer.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_SC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] start_handle Start of affected attribute handle range.
+ * @param[in] end_handle   End of affected attribute handle range.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued the Service Changed indication for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Service Changed not enabled at initialization. See @ref sd_ble_enable and @ref ble_gatts_enable_params_t.
+ * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true:
+ *                                   - Invalid Connection State
+ *                                   - Notifications and/or indications not enabled in the CCCD
+ *                                   - An ATT_MTU exchange is ongoing
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle));
+
+/**@brief Respond to a Read/Write authorization request.
+ *
+ * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_READ_REQ_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_WRITE_REQ_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_PEER_CANCEL_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle                 Connection handle.
+ * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application.
+ *
+ * @note @ref ble_gatts_authorize_params_t::p_data is ignored when this function is used to respond
+ *       to a @ref BLE_GATTS_AUTHORIZE_TYPE_READ event if @ref ble_gatts_authorize_params_t::update
+ *       is set to 0.
+ *
+ * @retval ::NRF_SUCCESS               Successfully queued a response to the peer, and in the case of a write operation, Attribute Table updated.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR    Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE   Invalid Connection State or no authorization request pending.
+ * @retval ::NRF_ERROR_INVALID_PARAM   Authorization op invalid,
+ *                                         handle supplied does not match requested handle,
+ *                                         or invalid data to be written provided by the application.
+ * @retval ::NRF_ERROR_BUSY The stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const *p_rw_authorize_reply_params));
+
+
+/**@brief Update persistent system attribute information.
+ *
+ * @details Supply information about persistent system attributes to the stack,
+ *          previously obtained using @ref sd_ble_gatts_sys_attr_get.
+ *          This call is only allowed for active connections, and is usually
+ *          made immediately after a connection is established with an known bonded device,
+ *          often as a response to a @ref BLE_GATTS_EVT_SYS_ATTR_MISSING.
+ *
+ *          p_sysattrs may point directly to the application's stored copy of the system attributes
+ *          obtained using @ref sd_ble_gatts_sys_attr_get.
+ *          If the pointer is NULL, the system attribute info is initialized, assuming that
+ *          the application does not have any previously saved system attribute data for this device.
+ *
+ * @note The state of persistent system attributes is reset upon connection establishment and then remembered for its duration.
+ *
+ * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially.
+ *       This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or
+ *       reset the SoftDevice to return to a known state.
+ *
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be modified.
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be modified.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC}
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC}
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC}
+ * @endmscs
+ *
+ * @param[in]  conn_handle        Connection handle.
+ * @param[in]  p_sys_attr_data    Pointer to a saved copy of system attributes supplied to the stack, or NULL.
+ * @param[in]  len                Size of data pointed by p_sys_attr_data, in octets.
+ * @param[in]  flags              Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS
+ *
+ * @retval ::NRF_SUCCESS Successfully set the system attribute information.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied.
+ * @retval ::NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_BUSY The stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const *p_sys_attr_data, uint16_t len, uint32_t flags));
+
+
+/**@brief Retrieve persistent system attribute information from the stack.
+ *
+ * @details This call is used to retrieve information about values to be stored perisistently by the application
+ *          during the lifetime of a connection or after it has been terminated. When a new connection is established with the same bonded device,
+ *          the system attribute information retrieved with this function should be restored using using @ref sd_ble_gatts_sys_attr_set.
+ *          If retrieved after disconnection, the data should be read before a new connection established. The connection handle for
+ *          the previous, now disconnected, connection will remain valid until a new one is created to allow this API call to refer to it.
+ *          Connection handles belonging to active connections can be used as well, but care should be taken since the system attributes
+ *          may be written to at any time by the peer during a connection's lifetime.
+ *
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be returned.
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be returned.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC}
+ * @endmscs
+ *
+ * @param[in]     conn_handle       Connection handle of the recently terminated connection.
+ * @param[out]    p_sys_attr_data   Pointer to a buffer where updated information about system attributes will be filled in. The format of the data is described
+ *                                  in @ref BLE_GATTS_SYS_ATTRS_FORMAT. NULL can be provided to obtain the length of the data.
+ * @param[in,out] p_len             Size of application buffer if p_sys_attr_data is not NULL. Unconditially updated to actual length of system attribute data.
+ * @param[in]     flags             Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the system attribute information.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer.
+ * @retval ::NRF_ERROR_NOT_FOUND No system attributes found.
+ */
+SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t *p_sys_attr_data, uint16_t *p_len, uint32_t flags));
+
+
+/**@brief Retrieve the first valid user attribute handle.
+ *
+ * @param[out] p_handle   Pointer to an integer where the handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, uint32_t, sd_ble_gatts_initial_user_handle_get(uint16_t *p_handle));
+
+/**@brief Retrieve the attribute UUID and/or metadata.
+ *
+ * @param[in]  handle Attribute handle
+ * @param[out] p_uuid UUID of the attribute. Use NULL to omit this field.
+ * @param[out] p_md Metadata of the attribute. Use NULL to omit this field.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the attribute metadata,
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. Returned when both @c p_uuid and @c p_md are NULL.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute was not found.
+ */
+SVCALL(SD_BLE_GATTS_ATTR_GET, uint32_t, sd_ble_gatts_attr_get(uint16_t handle, ble_uuid_t * p_uuid, ble_gatts_attr_md_t * p_md));
+
+/**@brief Reply to an ATT_MTU exchange request by sending an Exchange MTU Response to the client.
+ *
+ * @details This function is only used to reply to a @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST event.
+ *
+ * @details The SoftDevice sets ATT_MTU to the minimum of:
+ *          - The Client RX MTU value from @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, and
+ *          - The Server RX MTU value.
+ *
+ *          However, the SoftDevice never sets ATT_MTU lower than @ref GATT_MTU_SIZE_DEFAULT.
+ *
+ * @events
+ * @event{@ref BLE_EVT_DATA_LENGTH_CHANGED, Generated if a data length update procedure is performed after the ATT_MTU exchange.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_MTU_EXCHANGE}
+ * @endmscs
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] server_rx_mtu  Server RX MTU size.
+ *                           - The minimum value is @ref GATT_MTU_SIZE_DEFAULT.
+ *                           - The maximum value is @ref ble_gatt_enable_params_t::att_mtu.
+ *                           - The value must be equal to Client RX MTU size given in @ref sd_ble_gattc_exchange_mtu_request
+ *                             if an ATT_MTU exchange has already been performed in the other direction.
+ *
+ * @retval ::NRF_SUCCESS Successfully sent response to the client.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no ATT_MTU exchange request pending.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid Server RX MTU size supplied.
+ * @retval ::NRF_ERROR_BUSY The stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GATTS_EXCHANGE_MTU_REPLY, uint32_t, sd_ble_gatts_exchange_mtu_reply(uint16_t conn_handle, uint16_t server_rx_mtu));
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GATTS_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_hci.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_hci.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_hci.h
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+*/
+
+
+#ifndef BLE_HCI_H__
+#define BLE_HCI_H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes
+ * @{ */
+
+#define BLE_HCI_STATUS_CODE_SUCCESS                        0x00   /**< Success. */
+#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND           0x01   /**< Unknown BLE Command. */
+#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER  0x02   /**< Unknown Connection Identifier. */
+/*0x03 Hardware Failure
+0x04 Page Timeout
+*/
+#define BLE_HCI_AUTHENTICATION_FAILURE                     0x05   /**< Authentication Failure. */
+#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING             0x06   /**< Pin or Key missing. */
+#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED                   0x07   /**< Memory Capacity Exceeded. */
+#define BLE_HCI_CONNECTION_TIMEOUT                         0x08   /**< Connection Timeout. */
+/*0x09 Connection Limit Exceeded
+0x0A Synchronous Connection Limit To A Device Exceeded
+0x0B ACL Connection Already Exists*/
+#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED             0x0C   /**< Command Disallowed. */
+/*0x0D Connection Rejected due to Limited Resources
+0x0E Connection Rejected Due To Security Reasons
+0x0F Connection Rejected due to Unacceptable BD_ADDR
+0x10 Connection Accept Timeout Exceeded
+0x11 Unsupported Feature or Parameter Value*/
+#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12  /**< Invalid BLE Command Parameters. */
+#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION           0x13  /**< Remote User Terminated Connection. */
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14  /**< Remote Device Terminated Connection due to low resources.*/
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF     0x15  /**< Remote Device Terminated Connection due to power off. */
+#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION            0x16  /**< Local Host Terminated Connection. */
+/*
+0x17 Repeated Attempts
+0x18 Pairing Not Allowed
+0x19 Unknown LMP PDU
+*/
+#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A                   /**< Unsupported Remote Feature. */
+/*
+0x1B SCO Offset Rejected
+0x1C SCO Interval Rejected
+0x1D SCO Air Mode Rejected*/
+#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS     0x1E       /**< Invalid LMP Parameters. */
+#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR          0x1F       /**< Unspecified Error. */
+/*0x20 Unsupported LMP Parameter Value
+0x21 Role Change Not Allowed
+*/
+#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT       0x22       /**< LMP Response Timeout. */
+/*0x23 LMP Error Transaction Collision*/
+#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED        0x24       /**< LMP PDU Not Allowed. */
+/*0x25 Encryption Mode Not Acceptable
+0x26 Link Key Can Not be Changed
+0x27 Requested QoS Not Supported
+*/
+#define BLE_HCI_INSTANT_PASSED                         0x28       /**< Instant Passed. */
+#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED      0x29       /**< Pairing with Unit Key Unsupported. */
+#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION        0x2A       /**< Different Transaction Collision. */
+/*
+0x2B Reserved
+0x2C QoS Unacceptable Parameter
+0x2D QoS Rejected
+0x2E Channel Classification Not Supported
+0x2F Insufficient Security
+0x30 Parameter Out Of Mandatory Range
+0x31 Reserved
+0x32 Role Switch Pending
+0x33 Reserved
+0x34 Reserved Slot Violation
+0x35 Role Switch Failed
+0x36 Extended Inquiry Response Too Large
+0x37 Secure Simple Pairing Not Supported By Host.
+0x38 Host Busy - Pairing
+0x39 Connection Rejected due to No Suitable Channel Found*/
+#define BLE_HCI_CONTROLLER_BUSY                        0x3A       /**< Controller Busy. */
+#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE             0x3B       /**< Connection Interval Unacceptable. */
+#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT            0x3C       /**< Directed Adverisement Timeout. */
+#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE     0x3D       /**< Connection Terminated due to MIC Failure. */
+#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED          0x3E       /**< Connection Failed to be Established. */
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_HCI_H__
+
+/** @} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_l2cap.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_l2cap.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_l2cap.h
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP)
+  @{
+  @brief Definitions and prototypes for the L2CAP interface.
+ */
+
+#ifndef BLE_L2CAP_H__
+#define BLE_L2CAP_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "ble_err.h"
+#include "nrf_svc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup BLE_L2CAP_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief L2CAP API SVC numbers. */
+enum BLE_L2CAP_SVCS
+{
+  SD_BLE_L2CAP_CID_REGISTER = BLE_L2CAP_SVC_BASE,  /**< Register a CID. */
+  SD_BLE_L2CAP_CID_UNREGISTER,                     /**< Unregister a CID. */
+  SD_BLE_L2CAP_TX                                  /**< Transmit a packet. */
+};
+
+/**@brief L2CAP Event IDs. */
+enum BLE_L2CAP_EVTS
+{
+  BLE_L2CAP_EVT_RX  = BLE_L2CAP_EVT_BASE          /**< L2CAP packet received. */
+};
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_DEFINES Defines
+ * @{ */
+
+/**@defgroup BLE_ERRORS_L2CAP SVC return values specific to L2CAP
+ * @{ */
+#define BLE_ERROR_L2CAP_CID_IN_USE            (NRF_L2CAP_ERR_BASE + 0x000)  /**< CID already in use. */
+/** @} */
+
+/**@brief Default L2CAP MTU. */
+#define BLE_L2CAP_MTU_DEF           (23)
+
+/**@brief Invalid Channel Identifier. */
+#define BLE_L2CAP_CID_INVALID       (0x0000)
+
+/**@brief Dynamic Channel Identifier base. */
+#define BLE_L2CAP_CID_DYN_BASE      (0x0040)
+
+/**@brief Maximum amount of dynamic CIDs. */
+#define BLE_L2CAP_CID_DYN_MAX       (8)
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_STRUCTURES Structures
+ * @{ */
+
+/**@brief Packet header format for L2CAP transmission. */
+typedef struct
+{
+  uint16_t   len;                                 /**< Length of valid info in data member. */
+  uint16_t   cid;                                 /**< Channel ID on which packet is transmitted. */
+} ble_l2cap_header_t;
+
+
+/**@brief L2CAP Received packet event report. */
+typedef struct
+{
+  ble_l2cap_header_t header;                      /**< L2CAP packet header. */
+  uint8_t    data[1];                             /**< Packet data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                       See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_l2cap_evt_rx_t;
+
+
+/**@brief L2CAP event callback event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                           /**< Connection Handle on which event occured. */
+  union
+  {
+    ble_l2cap_evt_rx_t rx;                        /**< RX Event parameters. */
+  } params;                                       /**< Event Parameters. */
+} ble_l2cap_evt_t;
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Register a CID with L2CAP.
+ *
+ * @details This registers a higher protocol layer with the L2CAP multiplexer, and is requried prior to all operations on the CID.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_API_MSC}
+ * @endmscs
+ *
+ * @param[in] cid L2CAP CID.
+ *
+ * @retval ::NRF_SUCCESS Successfully registered a CID with the L2CAP layer.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CID must be above @ref BLE_L2CAP_CID_DYN_BASE.
+ * @retval ::BLE_ERROR_L2CAP_CID_IN_USE L2CAP CID already in use.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_L2CAP_CID_REGISTER, uint32_t, sd_ble_l2cap_cid_register(uint16_t cid));
+
+/**@brief Unregister a CID with L2CAP.
+ *
+ * @details This unregisters a previously registerd higher protocol layer with the L2CAP multiplexer.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_API_MSC}
+ * @endmscs
+ *
+ * @param[in] cid L2CAP CID.
+ *
+ * @retval ::NRF_SUCCESS Successfully unregistered the CID.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND CID not previously registered.
+ */
+SVCALL(SD_BLE_L2CAP_CID_UNREGISTER, uint32_t, sd_ble_l2cap_cid_unregister(uint16_t cid));
+
+/**@brief Transmit an L2CAP packet.
+ *
+ * @note    It is important to note that a call to this function will <b>consume an application packet</b>, and will therefore
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted.
+ *          Please see the documentation of @ref sd_ble_tx_packet_count_get for more details.
+ *
+ * @events
+ * @event{@ref BLE_EVT_TX_COMPLETE}
+ * @event{@ref BLE_L2CAP_EVT_RX}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_API_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection Handle.
+ * @param[in] p_header    Pointer to a packet header containing length and CID.
+ * @param[in] p_data      Pointer to the data to be transmitted.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued an L2CAP packet for transmission.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CIDs must be registered beforehand with @ref sd_ble_l2cap_cid_register.
+ * @retval ::NRF_ERROR_NOT_FOUND CID not found.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::BLE_ERROR_NO_TX_PACKETS Not enough application packets available.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, see @ref BLE_L2CAP_MTU_DEF.
+ */
+SVCALL(SD_BLE_L2CAP_TX, uint32_t, sd_ble_l2cap_tx(uint16_t conn_handle, ble_l2cap_header_t const *p_header, uint8_t const *p_data));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_L2CAP_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_ranges.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_ranges.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_ranges.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_ranges Module specific SVC, event and option number subranges
+  @{
+
+  @brief Definition of SVC, event and option number subranges for each API module.
+
+  @note
+  SVCs, event and option numbers are split into subranges for each API module.
+  Each module receives its entire allocated range of SVC calls, whether implemented or not,
+  but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range.
+
+  Note that the symbols BLE_<module>_SVC_LAST is the end of the allocated SVC range,
+  rather than the last SVC function call actually defined and implemented.
+
+  Specific SVC, event and option values are defined in each module's ble_<module>.h file,
+  which defines names of each individual SVC code based on the range start value.
+*/
+
+#ifndef BLE_RANGES_H__
+#define BLE_RANGES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BLE_SVC_BASE           0x60       /**< Common BLE SVC base. */
+#define BLE_SVC_LAST           0x6B       /**< Common BLE SVC last. */
+
+
+#define BLE_GAP_SVC_BASE       0x6C       /**< GAP BLE SVC base. */
+#define BLE_GAP_SVC_LAST       0x93       /**< GAP BLE SVC last. */
+
+
+#define BLE_GATTC_SVC_BASE     0x94       /**< GATTC BLE SVC base. */
+#define BLE_GATTC_SVC_LAST     0x9F       /**< GATTC BLE SVC last. */
+
+
+#define BLE_GATTS_SVC_BASE     0xA0       /**< GATTS BLE SVC base. */
+#define BLE_GATTS_SVC_LAST     0xAF       /**< GATTS BLE SVC last. */
+
+
+#define BLE_L2CAP_SVC_BASE     0xB0       /**< L2CAP BLE SVC base. */
+#define BLE_L2CAP_SVC_LAST     0xBF       /**< L2CAP BLE SVC last. */
+
+
+#define BLE_EVT_INVALID        0x00       /**< Invalid BLE Event. */
+
+
+#define BLE_EVT_BASE           0x01       /**< Common BLE Event base. */
+#define BLE_EVT_LAST           0x0F       /**< Common BLE Event last. */
+
+
+#define BLE_GAP_EVT_BASE       0x10       /**< GAP BLE Event base. */
+#define BLE_GAP_EVT_LAST       0x2F       /**< GAP BLE Event last. */
+
+
+#define BLE_GATTC_EVT_BASE     0x30       /**< GATTC BLE Event base. */
+#define BLE_GATTC_EVT_LAST     0x4F       /**< GATTC BLE Event last. */
+
+
+#define BLE_GATTS_EVT_BASE     0x50       /**< GATTS BLE Event base. */
+#define BLE_GATTS_EVT_LAST     0x6F       /**< GATTS BLE Event last. */
+
+
+#define BLE_L2CAP_EVT_BASE     0x70       /**< L2CAP BLE Event base. */
+#define BLE_L2CAP_EVT_LAST     0x8F       /**< L2CAP BLE Event last. */
+
+
+#define BLE_OPT_INVALID        0x00       /**< Invalid BLE Option. */
+
+
+#define BLE_OPT_BASE           0x01       /**< Common BLE Option base. */
+#define BLE_OPT_LAST           0x1F       /**< Common BLE Option last. */
+
+
+#define BLE_GAP_OPT_BASE       0x20       /**< GAP BLE Option base. */
+#define BLE_GAP_OPT_LAST       0x3F       /**< GAP BLE Option last. */
+
+
+#define BLE_GATTC_OPT_BASE     0x40       /**< GATTC BLE Option base. */
+#define BLE_GATTC_OPT_LAST     0x5F       /**< GATTC BLE Option last. */
+
+
+#define BLE_GATTS_OPT_BASE     0x60       /**< GATTS BLE Option base. */
+#define BLE_GATTS_OPT_LAST     0x7F       /**< GATTS BLE Option last. */
+
+
+#define BLE_L2CAP_OPT_BASE     0x80       /**< L2CAP BLE Option base. */
+#define BLE_L2CAP_OPT_LAST     0x9F       /**< L2CAP BLE Option last. */
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_RANGES_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_types.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_types.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/ble_types.h
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_types Common types and macro definitions
+  @{
+
+  @brief Common types and macro definitions for the BLE SoftDevice.
+ */
+
+#ifndef BLE_TYPES_H__
+#define BLE_TYPES_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_TYPES_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_CONN_HANDLES BLE Connection Handles
+ * @{ */
+#define BLE_CONN_HANDLE_INVALID 0xFFFF  /**< Invalid Connection Handle. */
+#define BLE_CONN_HANDLE_ALL     0xFFFE  /**< Applies to all Connection Handles. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs
+ * @{ */
+/* Generic UUIDs, applicable to all services */
+#define BLE_UUID_UNKNOWN                              0x0000 /**< Reserved UUID. */
+#define BLE_UUID_SERVICE_PRIMARY                      0x2800 /**< Primary Service. */
+#define BLE_UUID_SERVICE_SECONDARY                    0x2801 /**< Secondary Service. */
+#define BLE_UUID_SERVICE_INCLUDE                      0x2802 /**< Include. */
+#define BLE_UUID_CHARACTERISTIC                       0x2803 /**< Characteristic. */
+#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP             0x2900 /**< Characteristic Extended Properties Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC            0x2901 /**< Characteristic User Description Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG        0x2902 /**< Client Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG        0x2903 /**< Server Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT  0x2904 /**< Characteristic Presentation Format Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT     0x2905 /**< Characteristic Aggregate Format Descriptor. */
+/* GATT specific UUIDs */
+#define BLE_UUID_GATT                                 0x1801 /**< Generic Attribute Profile. */
+#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED  0x2A05 /**< Service Changed Characteristic. */
+/* GAP specific UUIDs */
+#define BLE_UUID_GAP                                  0x1800 /**< Generic Access Profile. */
+#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME       0x2A00 /**< Device Name Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE        0x2A01 /**< Appearance Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR       0x2A03 /**< Reconnection Address Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_PPCP              0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_CAR               0x2AA6 /**< Central Address Resolution Characteristic. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_TYPES Types of UUID
+ * @{ */
+#define BLE_UUID_TYPE_UNKNOWN       0x00 /**< Invalid UUID type. */
+#define BLE_UUID_TYPE_BLE           0x01 /**< Bluetooth SIG UUID (16-bit). */
+#define BLE_UUID_TYPE_VENDOR_BEGIN  0x02 /**< Vendor UUID types start at this index (128-bit). */
+/** @} */
+
+
+/** @defgroup BLE_APPEARANCES Bluetooth Appearance values
+ *  @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
+ * @{ */
+#define BLE_APPEARANCE_UNKNOWN                                0 /**< Unknown. */
+#define BLE_APPEARANCE_GENERIC_PHONE                         64 /**< Generic Phone. */
+#define BLE_APPEARANCE_GENERIC_COMPUTER                     128 /**< Generic Computer. */
+#define BLE_APPEARANCE_GENERIC_WATCH                        192 /**< Generic Watch. */
+#define BLE_APPEARANCE_WATCH_SPORTS_WATCH                   193 /**< Watch: Sports Watch. */
+#define BLE_APPEARANCE_GENERIC_CLOCK                        256 /**< Generic Clock. */
+#define BLE_APPEARANCE_GENERIC_DISPLAY                      320 /**< Generic Display. */
+#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL               384 /**< Generic Remote Control. */
+#define BLE_APPEARANCE_GENERIC_EYE_GLASSES                  448 /**< Generic Eye-glasses. */
+#define BLE_APPEARANCE_GENERIC_TAG                          512 /**< Generic Tag. */
+#define BLE_APPEARANCE_GENERIC_KEYRING                      576 /**< Generic Keyring. */
+#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER                 640 /**< Generic Media Player. */
+#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER              704 /**< Generic Barcode Scanner. */
+#define BLE_APPEARANCE_GENERIC_THERMOMETER                  768 /**< Generic Thermometer. */
+#define BLE_APPEARANCE_THERMOMETER_EAR                      769 /**< Thermometer: Ear. */
+#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR            832 /**< Generic Heart rate Sensor. */
+#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT    833 /**< Heart Rate Sensor: Heart Rate Belt. */
+#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE               896 /**< Generic Blood Pressure. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM                   897 /**< Blood Pressure: Arm. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST                 898 /**< Blood Pressure: Wrist. */
+#define BLE_APPEARANCE_GENERIC_HID                          960 /**< Human Interface Device (HID). */
+#define BLE_APPEARANCE_HID_KEYBOARD                         961 /**< Keyboard (HID Subtype). */
+#define BLE_APPEARANCE_HID_MOUSE                            962 /**< Mouse (HID Subtype). */
+#define BLE_APPEARANCE_HID_JOYSTICK                         963 /**< Joystiq (HID Subtype). */
+#define BLE_APPEARANCE_HID_GAMEPAD                          964 /**< Gamepad (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE                 965 /**< Digitizer Tablet (HID Subtype). */
+#define BLE_APPEARANCE_HID_CARD_READER                      966 /**< Card Reader (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITAL_PEN                      967 /**< Digital Pen (HID Subtype). */
+#define BLE_APPEARANCE_HID_BARCODE                          968 /**< Barcode Scanner (HID Subtype). */
+#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER               1024 /**< Generic Glucose Meter. */
+#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR      1088 /**< Generic Running Walking Sensor. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE      1089 /**< Running Walking Sensor: In-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE      1090 /**< Running Walking Sensor: On-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP       1091 /**< Running Walking Sensor: On-Hip. */
+#define BLE_APPEARANCE_GENERIC_CYCLING                     1152 /**< Generic Cycling. */
+#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER            1153 /**< Cycling: Cycling Computer. */
+#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR                1154 /**< Cycling: Speed Sensor. */
+#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR              1155 /**< Cycling: Cadence Sensor. */
+#define BLE_APPEARANCE_CYCLING_POWER_SENSOR                1156 /**< Cycling: Power Sensor. */
+#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR        1157 /**< Cycling: Speed and Cadence Sensor. */
+#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER              3136 /**< Generic Pulse Oximeter. */
+#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP            3137 /**< Fingertip (Pulse Oximeter subtype). */
+#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN           3138 /**< Wrist Worn(Pulse Oximeter subtype). */
+#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE                3200 /**< Generic Weight Scale. */
+#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT          5184 /**< Generic Outdoor Sports Activity. */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP         5185 /**< Location Display Device (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP 5186 /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD          5187 /**< Location Pod (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD  5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */
+/** @} */
+
+/** @brief Set .type and .uuid fields of ble_uuid_struct to specified uuid value. */
+#define BLE_UUID_BLE_ASSIGN(instance, value) do {\
+            instance.type = BLE_UUID_TYPE_BLE; \
+            instance.uuid = value;} while (0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */
+#define BLE_UUID_COPY_PTR(dst, src) do {\
+            (dst)->type = (src)->type; \
+            (dst)->uuid = (src)->uuid;} while (0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */
+#define BLE_UUID_COPY_INST(dst, src) do {\
+            (dst).type = (src).type; \
+            (dst).uuid = (src).uuid;} while (0)
+
+/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_EQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid))
+
+/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid))
+
+/** @} */
+
+/** @addtogroup BLE_TYPES_STRUCTURES Structures
+ * @{ */
+
+/** @brief 128 bit UUID values. */
+typedef struct
+{
+  uint8_t uuid128[16]; /**< Little-Endian UUID bytes. */
+} ble_uuid128_t;
+
+/** @brief  Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */
+typedef struct
+{
+  uint16_t    uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */
+  uint8_t     type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is @ref BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */
+} ble_uuid_t;
+
+/* note: added to make the unit test work*/
+/**@brief Data structure. */
+typedef struct
+{
+  uint8_t     *p_data;  /**< Pointer to the data buffer provided to/from the application. */
+  uint16_t     len;     /**< Length of the data buffer, in bytes. */
+} ble_data_t;
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* BLE_TYPES_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf52/nrf_mbr.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf52/nrf_mbr.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf52/nrf_mbr.h
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+  @defgroup nrf_mbr_api Master Boot Record API
+  @{
+
+  @brief APIs for updating SoftDevice and BootLoader
+
+*/
+
+/* Header guard */
+#ifndef NRF_MBR_H__
+#define NRF_MBR_H__
+
+#include "nrf_svc.h"
+#include <stdint.h>
+
+#if !(defined(NRF52) || defined(NRF52840_XXAA))
+#error "This header file shall only be included for nRF52 projects"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup NRF_MBR_DEFINES Defines
+ * @{ */
+
+/**@brief MBR SVC Base number. */
+#define MBR_SVC_BASE            (0x18)
+
+/**@brief Page size in words. */
+#define MBR_PAGE_SIZE_IN_WORDS  (1024)
+
+/** @brief The size that must be reserved for the MBR when a softdevice is written to flash.
+This is the offset where the first byte of the softdevice hex file is written.*/
+#define MBR_SIZE                (0x1000)
+
+/** @} */
+
+/** @addtogroup NRF_MBR_ENUMS Enumerations
+ * @{ */
+
+/**@brief nRF Master Boot Record API SVC numbers. */
+enum NRF_MBR_SVCS
+{
+  SD_MBR_COMMAND = MBR_SVC_BASE, /**< ::sd_mbr_command */
+};
+
+/**@brief Possible values for ::sd_mbr_command_t.command */
+enum NRF_MBR_COMMANDS
+{
+  SD_MBR_COMMAND_COPY_BL,               /**< Copy a new BootLoader. @see sd_mbr_command_copy_bl_t */
+  SD_MBR_COMMAND_COPY_SD,               /**< Copy a new SoftDevice. @see ::sd_mbr_command_copy_sd_t*/
+  SD_MBR_COMMAND_INIT_SD,               /**< Init forwarding interrupts to SD, and run reset function in SD*/
+  SD_MBR_COMMAND_COMPARE,               /**< This command works like memcmp. @see ::sd_mbr_command_compare_t*/
+  SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET, /**< Start forwarding all exception to this address @see ::sd_mbr_command_vector_table_base_set_t*/
+};
+
+/** @} */
+
+/** @addtogroup NRF_MBR_TYPES Types
+ * @{ */
+
+/**@brief This command copies part of a new SoftDevice
+ * The destination area is erased before copying.
+ * If dst is in the middle of a flash page, that whole flash page will be erased.
+ * If (dst+len) is in the middle of a flash page, that whole flash page will be erased.
+ *
+ * The user of this function is responsible for setting the BPROT registers.
+ *
+ * @retval ::NRF_SUCCESS indicates that the contents of the memory blocks where copied correctly.
+ * @retval ::NRF_ERROR_INTERNAL indicates that the contents of the memory blocks where not verified correctly after copying.
+ */
+typedef struct
+{
+  uint32_t *src;  /**< Pointer to the source of data to be copied.*/
+  uint32_t *dst;  /**< Pointer to the destination where the content is to be copied.*/
+  uint32_t len;   /**< Number of 32 bit words to copy. Must be a multiple of @ref MBR_PAGE_SIZE_IN_WORDS words.*/
+} sd_mbr_command_copy_sd_t;
+
+
+/**@brief This command works like memcmp, but takes the length in words.
+ *
+ * @retval ::NRF_SUCCESS indicates that the contents of both memory blocks are equal.
+ * @retval ::NRF_ERROR_NULL indicates that the contents of the memory blocks are not equal.
+ */
+typedef struct
+{
+  uint32_t *ptr1; /**< Pointer to block of memory. */
+  uint32_t *ptr2; /**< Pointer to block of memory. */
+  uint32_t len;   /**< Number of 32 bit words to compare.*/
+} sd_mbr_command_compare_t;
+
+
+/**@brief This command copies a new BootLoader.
+ *  With this command, destination of BootLoader is always the address written in NRF_UICR->BOOTADDR.
+ *
+ *  Destination is erased by this function.
+ *  If (destination+bl_len) is in the middle of a flash page, that whole flash page will be erased.
+ *
+ *  This function will use PROTENSET to protect the flash that is not intended to be written.
+ *
+ *  On Success, this function will not return. It will start the new BootLoader from reset-vector as normal.
+ *
+ * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
+ * @retval ::NRF_ERROR_FORBIDDEN if NRF_UICR->BOOTADDR is not set.
+ * @retval ::NRF_ERROR_INVALID_LENGTH if parameters attempts to read or write outside flash area.
+ * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see sds for more info)
+ */
+typedef struct
+{
+  uint32_t *bl_src;  /**< Pointer to the source of the Bootloader to be be copied.*/
+  uint32_t bl_len;   /**< Number of 32 bit words to copy for BootLoader. */
+} sd_mbr_command_copy_bl_t;
+
+/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the MBR
+ *
+ * Once this function has been called, this address is where the MBR will start to forward interrupts to after a reset.
+ *
+ * To restore default forwarding this function should be called with @param address set to 0.
+ * The MBR will then start forwarding to interrupts to the address in NFR_UICR->BOOTADDR or to the SoftDevice if the BOOTADDR is not set.
+ *
+ * On Success, this function will not return. It will reset the device.
+ *
+ * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
+ * @retval ::NRF_ERROR_INVALID_ADDR if parameter address is outside of the flash size.
+ * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see sds for more info)
+ */
+typedef struct
+{
+  uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/
+} sd_mbr_command_vector_table_base_set_t;
+
+
+typedef struct
+{
+  uint32_t command;  /**< type of command to be issued see @ref NRF_MBR_COMMANDS. */
+  union
+  {
+    sd_mbr_command_copy_sd_t copy_sd;  /**< Parameters for copy SoftDevice.*/
+    sd_mbr_command_compare_t compare;  /**< Parameters for verify.*/
+    sd_mbr_command_copy_bl_t copy_bl;  /**< Parameters for copy BootLoader. Requires parameter page. */
+    sd_mbr_command_vector_table_base_set_t base_set; /**< Parameters for vector table base set. Requires parameter page.*/
+  } params;
+} sd_mbr_command_t;
+
+/** @} */
+
+/** @addtogroup NRF_MBR_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Issue Master Boot Record commands
+ *
+ * Commands used when updating a SoftDevice and bootloader.
+ *
+ * The SD_MBR_COMMAND_COPY_BL and SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET requires parameters to be
+ * retained by the MBR when resetting the IC. This is done in a separate flash page
+ * provided by the application. The uicr register UICR.NRFFW[1] must be set
+ * to an address corresponding to a page in the application flash space. This page will be cleared
+ * by the MBR and used to store the command before reset. When the UICR.NRFFW[1] field is set
+ * the page it refers to must not be used by the application. If the UICR.NRFFW[1] is set to
+ * 0xFFFFFFFF (the default) MBR commands which use flash will be unavailable and return
+ * NRF_ERROR_NO_MEM.
+ *
+ * @param[in]  param Pointer to a struct describing the command.
+ *
+ * @note for retvals see ::sd_mbr_command_copy_sd_t ::sd_mbr_command_copy_bl_t ::sd_mbr_command_compare_t ::sd_mbr_command_vector_table_base_set_t
+ *
+ * @retval NRF_ERROR_NO_MEM if UICR.NRFFW[1] is not set (i.e. is 0xFFFFFFFF).
+ * @retval NRF_ERROR_INVALID_PARAM if an invalid command is given.
+*/
+SVCALL(SD_MBR_COMMAND, uint32_t, sd_mbr_command(sd_mbr_command_t* param));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_MBR_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+ /**
+  @defgroup nrf_error SoftDevice Global Error Codes
+  @{
+
+  @brief Global Error definitions
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_H__
+#define NRF_ERROR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions
+ * @{ */
+#define NRF_ERROR_BASE_NUM      (0x0)       ///< Global error base
+#define NRF_ERROR_SDM_BASE_NUM  (0x1000)    ///< SDM error base
+#define NRF_ERROR_SOC_BASE_NUM  (0x2000)    ///< SoC error base
+#define NRF_ERROR_STK_BASE_NUM  (0x3000)    ///< STK error base
+/** @} */
+
+#define NRF_SUCCESS                           (NRF_ERROR_BASE_NUM + 0)  ///< Successful command
+#define NRF_ERROR_SVC_HANDLER_MISSING         (NRF_ERROR_BASE_NUM + 1)  ///< SVC handler is missing
+#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED      (NRF_ERROR_BASE_NUM + 2)  ///< SoftDevice has not been enabled
+#define NRF_ERROR_INTERNAL                    (NRF_ERROR_BASE_NUM + 3)  ///< Internal Error
+#define NRF_ERROR_NO_MEM                      (NRF_ERROR_BASE_NUM + 4)  ///< No Memory for operation
+#define NRF_ERROR_NOT_FOUND                   (NRF_ERROR_BASE_NUM + 5)  ///< Not found
+#define NRF_ERROR_NOT_SUPPORTED               (NRF_ERROR_BASE_NUM + 6)  ///< Not supported
+#define NRF_ERROR_INVALID_PARAM               (NRF_ERROR_BASE_NUM + 7)  ///< Invalid Parameter
+#define NRF_ERROR_INVALID_STATE               (NRF_ERROR_BASE_NUM + 8)  ///< Invalid state, operation disallowed in this state
+#define NRF_ERROR_INVALID_LENGTH              (NRF_ERROR_BASE_NUM + 9)  ///< Invalid Length
+#define NRF_ERROR_INVALID_FLAGS               (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags
+#define NRF_ERROR_INVALID_DATA                (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data
+#define NRF_ERROR_DATA_SIZE                   (NRF_ERROR_BASE_NUM + 12) ///< Invalid Data size
+#define NRF_ERROR_TIMEOUT                     (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out
+#define NRF_ERROR_NULL                        (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer
+#define NRF_ERROR_FORBIDDEN                   (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation
+#define NRF_ERROR_INVALID_ADDR                (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address
+#define NRF_ERROR_BUSY                        (NRF_ERROR_BASE_NUM + 17) ///< Busy
+#define NRF_ERROR_CONN_COUNT                  (NRF_ERROR_BASE_NUM + 18) ///< Maximum connection count exceeded.
+#define NRF_ERROR_RESOURCES                   (NRF_ERROR_BASE_NUM + 19) ///< Not enough resources for operation
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_sdm.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_sdm.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_sdm.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+ /**
+  @addtogroup nrf_sdm_api
+  @{
+  @defgroup nrf_sdm_error SoftDevice Manager Error Codes
+  @{
+
+  @brief Error definitions for the SDM API
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SDM_H__
+#define NRF_ERROR_SDM_H__
+
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN              (NRF_ERROR_SDM_BASE_NUM + 0)  ///< Unknown lfclk source.
+#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1)  ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts).
+#define NRF_ERROR_SDM_INCORRECT_CLENR0                  (NRF_ERROR_SDM_BASE_NUM + 2)  ///< Incorrect CLENR0 (can be caused by erronous SoftDevice flashing).
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_SDM_H__
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_soc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_soc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_error_soc.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+  @addtogroup nrf_soc_api
+  @{
+  @defgroup nrf_soc_error SoC Library Error Codes
+  @{
+
+  @brief Error definitions for the SoC library
+
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SOC_H__
+#define NRF_ERROR_SOC_H__
+
+#include "nrf_error.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Mutex Errors */
+#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN                 (NRF_ERROR_SOC_BASE_NUM + 0)  ///< Mutex already taken
+
+/* NVIC errors */
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE        (NRF_ERROR_SOC_BASE_NUM + 1)  ///< NVIC interrupt not available
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2)  ///< NVIC interrupt priority not allowed
+#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN              (NRF_ERROR_SOC_BASE_NUM + 3)  ///< NVIC should not return
+
+/* Power errors */
+#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN                  (NRF_ERROR_SOC_BASE_NUM + 4)  ///< Power mode unknown
+#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN         (NRF_ERROR_SOC_BASE_NUM + 5)  ///< Power POF threshold unknown
+#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN         (NRF_ERROR_SOC_BASE_NUM + 6)  ///< Power off should not return
+
+/* Rand errors */
+#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES              (NRF_ERROR_SOC_BASE_NUM + 7)  ///< RAND not enough values
+
+/* PPI errors */
+#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL                 (NRF_ERROR_SOC_BASE_NUM + 8)  ///< Invalid PPI Channel
+#define NRF_ERROR_SOC_PPI_INVALID_GROUP                   (NRF_ERROR_SOC_BASE_NUM + 9)  ///< Invalid PPI Group
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_SOC_H__
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_nvic.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_nvic.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_nvic.h
@@ -0,0 +1,485 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+ * @defgroup nrf_nvic_api SoftDevice NVIC API
+ * @{
+ *
+ * @note In order to use this module, the following code has to be added to a .c file:
+ *     \code
+ *     nrf_nvic_state_t nrf_nvic_state = {0};
+ *     \endcode
+ *
+ * @note Definitions and declarations starting with __ (double underscore) in this header file are
+ * not intended for direct use by the application.
+ *
+ * @brief APIs for the accessing NVIC when using a SoftDevice.
+ *
+ */
+
+#ifndef NRF_NVIC_H__
+#define NRF_NVIC_H__
+
+#include <stdint.h>
+#include "nrf.h"
+
+#include "nrf_error_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup NRF_NVIC_DEFINES Defines
+ * @{ */
+
+/**@defgroup NRF_NVIC_ISER_DEFINES SoftDevice NVIC internal definitions
+ * @{ */
+
+#define __NRF_NVIC_NVMC_IRQn (30) /**< The peripheral ID of the NVMC. IRQ numbers are used to identify peripherals, but the NVMC doesn't have an IRQ number in the MDK. */
+
+#ifdef NRF51
+  #define __NRF_NVIC_ISER_COUNT (1) /**< The number of ISER/ICER registers in the NVIC that are used. */
+
+  /**@brief Interrupts used by the SoftDevice. */
+  #define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \
+        (1U << POWER_CLOCK_IRQn) \
+      | (1U << RADIO_IRQn) \
+      | (1U << RTC0_IRQn) \
+      | (1U << TIMER0_IRQn) \
+      | (1U << RNG_IRQn) \
+      | (1U << ECB_IRQn) \
+      | (1U << CCM_AAR_IRQn) \
+      | (1U << TEMP_IRQn) \
+      | (1U << __NRF_NVIC_NVMC_IRQn) \
+      | (1U << (uint32_t)SWI4_IRQn) \
+      | (1U << (uint32_t)SWI5_IRQn) \
+    ))
+
+  /**@brief Interrupts available for to application. */
+  #define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0)
+#endif
+
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  #define __NRF_NVIC_ISER_COUNT (2) /**< The number of ISER/ICER registers in the NVIC that are used. */
+
+  /**@brief Interrupts used by the SoftDevice. */
+  #define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \
+        (1U << POWER_CLOCK_IRQn) \
+      | (1U << RADIO_IRQn) \
+      | (1U << RTC0_IRQn) \
+      | (1U << TIMER0_IRQn) \
+      | (1U << RNG_IRQn) \
+      | (1U << ECB_IRQn) \
+      | (1U << CCM_AAR_IRQn) \
+      | (1U << TEMP_IRQn) \
+      | (1U << __NRF_NVIC_NVMC_IRQn) \
+      | (1U << (uint32_t)SWI4_EGU4_IRQn) \
+      | (1U << (uint32_t)SWI5_EGU5_IRQn) \
+    ))
+  #define __NRF_NVIC_SD_IRQS_1 ((uint32_t)0)
+
+  /**@brief Interrupts available for to application. */
+  #define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0)
+  #define __NRF_NVIC_APP_IRQS_1 (~__NRF_NVIC_SD_IRQS_1)
+#endif
+/**@} */
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_VARIABLES Variables
+ * @{ */
+
+/**@brief Type representing the state struct for the SoftDevice NVIC module. */
+typedef struct
+{
+  uint32_t volatile __irq_masks[__NRF_NVIC_ISER_COUNT]; /**< IRQs enabled by the application in the NVIC. */
+  uint32_t volatile __cr_flag;                          /**< Non-zero if already in a critical region */
+} nrf_nvic_state_t;
+
+/**@brief Variable keeping the state for the SoftDevice NVIC module. This must be declared in an
+ * application source file. */
+extern nrf_nvic_state_t nrf_nvic_state;
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_INTERNAL_FUNCTIONS SoftDevice NVIC internal functions
+ * @{ */
+
+/**@brief Disables IRQ interrupts globally, including the SoftDevice's interrupts.
+ *
+ * @retval  The value of PRIMASK prior to disabling the interrupts.
+ */
+static inline int __sd_nvic_irq_disable(void)
+{
+  int pm = __get_PRIMASK();
+  __disable_irq();
+  return pm;
+}
+
+/**@brief Enables IRQ interrupts globally, including the SoftDevice's interrupts.
+ */
+static inline void __sd_nvic_irq_enable(void)
+{
+  __enable_irq();
+}
+
+/**@brief Checks if IRQn is available to application
+ * @param[in]  IRQn  irq to check
+ *
+ * @retval  1 (true) if the irq to check is available to the application
+ */
+static inline uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn)
+{
+  if (IRQn < 32)
+  {
+    return ((1UL<<IRQn) & __NRF_NVIC_APP_IRQS_0) != 0;
+  }
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  else if (IRQn < 64)
+  {
+    return ((1UL<<(IRQn-32)) & __NRF_NVIC_APP_IRQS_1) != 0;
+  }
+#endif
+  else
+  {
+    return 1;
+  }
+}
+
+/**@brief Checks if IRQn is available to application
+ * @param[in]  priority  priority to check
+ *
+ * @retval  1 (true) if the priority to check is available to the application
+ */
+static inline uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority)
+{
+  if (priority >= (1 << __NVIC_PRIO_BITS))
+  {
+    return 0;
+  }
+#ifdef NRF51
+  if (   priority == 0
+     || priority == 2
+     )
+  {
+    return 0;
+  }
+#endif
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  if (   priority == 0
+     || priority == 1
+     || priority == 4
+     || priority == 5
+     )
+  {
+    return 0;
+  }
+#endif
+  return 1;
+}
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_FUNCTIONS SoftDevice NVIC public functions
+ * @{ */
+
+/**@brief Enable External Interrupt.
+ * @note Corresponds to NVIC_EnableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was enabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application.
+ */
+static inline uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+  if (!__sd_nvic_is_app_accessible_priority(NVIC_GetPriority(IRQn)))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] |= (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F));
+  }
+  else
+  {
+    NVIC_EnableIRQ(IRQn);
+  }
+  return NRF_SUCCESS;
+}
+
+/**@brief  Disable External Interrupt.
+ * @note Corresponds to NVIC_DisableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was disabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ */
+static inline uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] &= ~(1UL << ((uint32_t)(IRQn) & 0x1F));
+  }
+  else
+  {
+    NVIC_DisableIRQ(IRQn);
+  }
+
+  return NRF_SUCCESS;
+}
+
+/**@brief  Get Pending Interrupt.
+ * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]   IRQn          See the NVIC_GetPendingIRQ documentation in CMSIS.
+ * @param[out]  p_pending_irq Return value from NVIC_GetPendingIRQ.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+static inline uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_pending_irq = NVIC_GetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+/**@brief  Set Pending Interrupt.
+ * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is set pending.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+static inline uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_SetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+/**@brief  Clear Pending Interrupt.
+ * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+static inline uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_ClearPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+/**@brief Set Interrupt Priority.
+ * @note Corresponds to NVIC_SetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ * @pre Priority is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn      See the NVIC_SetPriority documentation in CMSIS.
+ * @param[in] priority  A valid IRQ priority for use by the application.
+ *
+ * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application.
+ */
+static inline uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (!__sd_nvic_is_app_accessible_priority(priority))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  NVIC_SetPriority(IRQn, (uint32_t)priority);
+  return NRF_SUCCESS;
+}
+
+/**@brief Get Interrupt Priority.
+ * @note Corresponds to NVIC_GetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]  IRQn         See the NVIC_GetPriority documentation in CMSIS.
+ * @param[out] p_priority   Return value from NVIC_GetPriority.
+ *
+ * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application.
+ */
+static inline uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_priority = (NVIC_GetPriority(IRQn) & 0xFF);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+/**@brief System Reset.
+ * @note Corresponds to NVIC_SystemReset in CMSIS.
+ *
+ * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
+ */
+static inline uint32_t sd_nvic_SystemReset(void)
+{
+  NVIC_SystemReset();
+  return NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN;
+}
+
+/**@brief Enters critical region.
+ *
+ * @post Application interrupts will be disabled.
+ * @note sd_nvic_critical_region_enter() and ::sd_nvic_critical_region_exit() must be called in matching pairs inside each
+ * execution context
+ * @sa sd_nvic_critical_region_exit
+ *
+ * @param[out] p_is_nested_critical_region If 1, the application is now in a nested critical region.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+static inline uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region)
+{
+  int was_masked = __sd_nvic_irq_disable();
+  if (!nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__cr_flag = 1;
+    nrf_nvic_state.__irq_masks[0] = ( NVIC->ICER[0] & __NRF_NVIC_APP_IRQS_0 );
+    NVIC->ICER[0] = __NRF_NVIC_APP_IRQS_0;
+    #if (defined(NRF52) || defined(NRF52840_XXAA))
+    nrf_nvic_state.__irq_masks[1] = ( NVIC->ICER[1] & __NRF_NVIC_APP_IRQS_1 );
+    NVIC->ICER[1] = __NRF_NVIC_APP_IRQS_1;
+    #endif
+    *p_is_nested_critical_region = 0;
+  }
+  else
+  {
+    *p_is_nested_critical_region = 1;
+  }
+  if (!was_masked)
+  {
+    __sd_nvic_irq_enable();
+  }
+  return NRF_SUCCESS;
+}
+
+/**@brief Exit critical region.
+ *
+ * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
+ * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called.
+ *
+ * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+static inline uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region)
+{
+  if (nrf_nvic_state.__cr_flag && (is_nested_critical_region == 0))
+  {
+    int was_masked = __sd_nvic_irq_disable();
+    NVIC->ISER[0] = nrf_nvic_state.__irq_masks[0];
+    #if (defined(NRF52) || defined(NRF52840_XXAA))
+    NVIC->ISER[1] = nrf_nvic_state.__irq_masks[1];
+    #endif
+    nrf_nvic_state.__cr_flag = 0;
+    if (!was_masked)
+    {
+      __sd_nvic_irq_enable();
+    }
+  }
+
+  return NRF_SUCCESS;
+}
+/**@} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // NRF_NVIC_H__
+
+/**@} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sd_def.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sd_def.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sd_def.h
@@ -0,0 +1,28 @@
+/* Copyright (c) 2015 - 2018 Nordic Semiconductor ASA. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor ASA.
+ * The use, copying, transfer or disclosure of such information is prohibited except by
+ * express written agreement with Nordic Semiconductor ASA.
+ *
+ */
+
+#ifndef NRF_SD_DEF_H__
+#define NRF_SD_DEF_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SD_PPI_CHANNELS_USED            0xFFF0C000uL /**< PPI channels utilized by SotfDevice (not available to the application). */
+#define SD_PPI_GROUPS_USED              0x0000000CuL /**< PPI groups utilized by SoftDevice (not available to the application). */
+#define SD_TIMERS_USED                  0x00000001uL /**< Timers used by SoftDevice. */
+#define SD_SWI_USED                     0x0000003CuL /**< Software interrupts used by SoftDevice */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NRF_SD_DEF_H__ */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sdm.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sdm.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_sdm.h
@@ -0,0 +1,331 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+  @defgroup nrf_sdm_api SoftDevice Manager API
+  @{
+
+  @brief APIs for SoftDevice management.
+
+*/
+
+#ifndef NRF_SDM_H__
+#define NRF_SDM_H__
+
+#include "nrf_svc.h"
+#include "nrf.h"
+#include "nrf_soc.h"
+#include "nrf_error_sdm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup NRF_SDM_DEFINES Defines
+ * @{ */
+#ifdef NRFSOC_DOXYGEN
+/// Declared in nrf_mbr.h
+#define MBR_SIZE 0
+#warning test
+#endif
+
+/** @brief The major version for the SoftDevice binary distributed with this header file. */
+#define SD_MAJOR_VERSION  (3)
+
+/** @brief The minor version for the SoftDevice binary distributed with this header file. */
+#define SD_MINOR_VERSION  (0)
+
+/** @brief The bugfix version for the SoftDevice binary distributed with this header file. */
+#define SD_BUGFIX_VERSION (0)
+
+/** @brief The full version number for the SoftDevice binary this header file was distributed
+ *         with, as a decimal number in the form Mmmmbbb, where:
+ *           - M is major version (one or more digits)
+ *           - mmm is minor version (three digits)
+ *           - bbb is bugfix version (three digits). */
+#define SD_VERSION (SD_MAJOR_VERSION * 1000000 + SD_MINOR_VERSION * 1000 + SD_BUGFIX_VERSION)
+
+/** @brief SoftDevice Manager SVC Base number. */
+#define SDM_SVC_BASE 0x10
+
+/** @brief Invalid info field. Returned when an info field does not exist. */
+#define SDM_INFO_FIELD_INVALID (0)
+
+/** @brief Defines the SoftDevice Information Structure location (address) as an offset from
+the start of the softdevice (without MBR)*/
+#define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000)
+
+/** @brief Defines the absolute SoftDevice Information Structure location (address) when the
+ *         SoftDevice is installed just above the MBR (the usual case). */
+#define SOFTDEVICE_INFO_STRUCT_ADDRESS (SOFTDEVICE_INFO_STRUCT_OFFSET + MBR_SIZE)
+
+/** @brief Defines the offset for the SoftDevice Information Structure size value relative to the
+ *         SoftDevice base address. The size value is of type uint8_t. */
+#define SD_INFO_STRUCT_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET)
+
+/** @brief Defines the offset for the SoftDevice size value relative to the SoftDevice base address.
+ *         The size value is of type uint32_t. */
+#define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08)
+
+/** @brief Defines the offset for FWID value relative to the SoftDevice base address. The FWID value
+ *         is of type uint16_t.  */
+#define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C)
+
+/** @brief Defines the offset for the SoftDevice ID relative to the SoftDevice base address. The ID
+ *         is of type uint32_t. */
+#define SD_ID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x10)
+
+/** @brief Defines the offset for the SoftDevice version relative to the SoftDevice base address in
+ *         the same format as @ref SD_VERSION, stored as an uint32_t. */
+#define SD_VERSION_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x14)
+
+/** @brief Defines a macro for retreiving the actual SoftDevice Information Structure size value
+ *         from a given base address. Use @ref MBR_SIZE as the argument when the SoftDevice is
+ *         installed just above the MBR (the usual case). */
+#define SD_INFO_STRUCT_SIZE_GET(baseaddr) (*((uint8_t *) ((baseaddr) + SD_INFO_STRUCT_SIZE_OFFSET)))
+
+/** @brief Defines a macro for retreiving the actual SoftDevice size value from a given base
+ *         address. Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above
+ *         the MBR (the usual case). */
+#define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET)))
+
+/** @brief Defines a macro for retreiving the actual FWID value from a given base address. Use @ref
+ *         MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the usual
+ *         case). */
+#define SD_FWID_GET(baseaddr) (*((uint16_t *) ((baseaddr) + SD_FWID_OFFSET)))
+
+/** @brief Defines a macro for retreiving the actual SoftDevice ID from a given base address. Use
+ *         @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the
+ *         usual case). */
+#define SD_ID_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_ID_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
+        ? (*((uint32_t *) ((baseaddr) + SD_ID_OFFSET))) : SDM_INFO_FIELD_INVALID)
+
+/** @brief Defines a macro for retreiving the actual FWID value from a given base address. Use @ref
+ *         MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the usual
+ *         case). */
+#define SD_VERSION_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_VERSION_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
+        ? (*((uint32_t *) ((baseaddr) + SD_VERSION_OFFSET))) : SDM_INFO_FIELD_INVALID)
+
+/**@defgroup NRF_FAULT_ID_RANGES Fault ID ranges
+ * @{ */
+#define NRF_FAULT_ID_SD_RANGE_START     0x00000000            /**< SoftDevice ID range start. */
+#define NRF_FAULT_ID_APP_RANGE_START    0x00001000            /**< Application ID range start. */
+/**@} */
+
+/**@defgroup NRF_FAULT_IDS Fault ID types
+ * @{ */
+#define NRF_FAULT_ID_SD_ASSERT    (NRF_FAULT_ID_SD_RANGE_START + 1)           /**< SoftDevice assertion. The info parameter will be set to 0x00000000. */
+#define NRF_FAULT_ID_APP_MEMACC   (NRF_FAULT_ID_APP_RANGE_START + 1)          /**< Application invalid memory access (nRF52 only). The info parameter will contain 0x00000000, in case of SoftDevice RAM
+                                                                              access violation. In case of SoftDevice peripheral register violation the info parameter will contain the sub-region number of PREGION[0], on whose address range the unallowed
+                                                                              write access caused the memory access fault. */
+/**@} */
+
+/** @} */
+
+/** @addtogroup NRF_SDM_ENUMS Enumerations
+ * @{ */
+
+/**@brief nRF SoftDevice Manager API SVC numbers. */
+enum NRF_SD_SVCS
+{
+  SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */
+  SD_SOFTDEVICE_DISABLE,               /**< ::sd_softdevice_disable */
+  SD_SOFTDEVICE_IS_ENABLED,            /**< ::sd_softdevice_is_enabled */
+  SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, /**< ::sd_softdevice_vector_table_base_set */
+  SVC_SDM_LAST                         /**< Placeholder for last SDM SVC */
+};
+
+/** @} */
+
+/** @addtogroup NRF_SDM_DEFINES Defines
+ * @{ */
+
+/**@defgroup NRF_CLOCK_LF_XTAL_ACCURACY Clock accuracy
+ * @{ */
+
+#define NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM (0) /**< Default: 250 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_500_PPM (1) /**< 500 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_150_PPM (2) /**< 150 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_100_PPM (3) /**< 100 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_75_PPM  (4) /**< 75 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_50_PPM  (5) /**< 50 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_30_PPM  (6) /**< 30 ppm */
+#define NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM  (7) /**< 20 ppm */
+
+/** @} */
+
+/**@defgroup NRF_CLOCK_LF_SRC Possible lfclk oscillator sources
+ * @{ */
+
+#define NRF_CLOCK_LF_SRC_RC      (0)                        /**< LFCLK RC oscillator. */
+#define NRF_CLOCK_LF_SRC_XTAL    (1)                        /**< LFCLK crystal oscillator. */
+#define NRF_CLOCK_LF_SRC_SYNTH   (2)                        /**< LFCLK Synthesized from HFCLK. */
+
+/** @} */
+
+/** @} */
+
+/** @addtogroup NRF_SDM_TYPES Types
+ * @{ */
+
+/**@brief Type representing lfclk oscillator source. */
+typedef struct
+{
+  uint8_t source;        /**< LF oscillator clock source, see @ref NRF_CLOCK_LF_SRC. */
+  uint8_t rc_ctiv;      /**< Only for NRF_CLOCK_LF_SRC_RC: Calibration timer interval in 1/4 second
+                              units (nRF51: 1-64, nRF52: 1-32).
+                              @note To avoid excessive clock drift, 0.5 degrees Celsius is the
+                                    maximum temperature change allowed in one calibration timer
+                                    interval. The interval should be selected to ensure this.
+
+                              @note Must be 0 if source is not NRF_CLOCK_LF_SRC_RC.  */
+  uint8_t rc_temp_ctiv; /**<  Only for NRF_CLOCK_LF_SRC_RC: How often (in number of calibration
+                              intervals) the RC oscillator shall be calibrated if the temperature
+                              hasn't changed.
+                                  0: Always calibrate even if the temperature hasn't changed.
+                                  1: Only calibrate if the temperature has changed (nRF51 only).
+                                  2-33: Check the temperature and only calibrate if it has changed,
+                                        however calibration will take place every rc_temp_ctiv
+                                        intervals in any case.
+
+                              @note Must be 0 if source is not NRF_CLOCK_LF_SRC_RC.
+
+                              @note For nRF52, the application must ensure calibration at least once
+                                    every 8 seconds to ensure +/-250ppm clock stability. The
+                                    recommended configuration for NRF_CLOCK_LF_SRC_RC on nRF52 is
+                                    rc_ctiv=16 and rc_temp_ctiv=2. This will ensure calibration at
+                                    least once every 8 seconds and for temperature changes of 0.5
+                                    degrees Celsius every 4 seconds. See the Product Specification
+                                    for the nRF52 device being used for more information.*/
+  uint8_t xtal_accuracy; /**< External crystal clock accuracy used in the LL to compute timing windows.
+
+                              @note For the NRF_CLOCK_LF_SRC_RC clock source this parameter is ignored. */
+} nrf_clock_lf_cfg_t;
+
+/**@brief Fault Handler type.
+ *
+ * When certain unrecoverable errors occur within the application or SoftDevice the fault handler will be called back.
+ * The protocol stack will be in an undefined state when this happens and the only way to recover will be to
+ * perform a reset, using e.g. CMSIS NVIC_SystemReset().
+ *
+ * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the fault callback.
+ *
+ * @param[in] id Fault identifier. See @ref NRF_FAULT_IDS.
+ * @param[in] pc The program counter of the instruction that triggered the fault.
+ * @param[in] info Optional additional information regarding the fault. Refer to each Fault identifier for details.
+ *
+ * @note When id is set to NRF_FAULT_ID_APP_MEMACC, pc will contain the address of the instruction being executed at the time when
+ * the fault is detected by the CPU. The CPU program counter may have advanced up to 2 instructions (no branching) after the one that triggered the fault.
+ */
+typedef void (*nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info);
+
+/** @} */
+
+/** @addtogroup NRF_SDM_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Enables the SoftDevice and by extension the protocol stack.
+ *
+ * @note Some care must be taken if a low frequency clock source is already running when calling this function:
+ *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
+ *       clock source will be started.
+ *
+ * @note This function has no effect when returning with an error.
+ *
+ * @post If return code is ::NRF_SUCCESS
+ *       - SoC library and protocol stack APIs are made available.
+ *       - A portion of RAM will be unavailable (see relevant SDS documentation).
+ *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation).
+ *       - Interrupts will not arrive from protected peripherals or interrupts.
+ *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice.
+ *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation).
+ *       - Chosen low frequency clock source will be running.
+ *
+ * @param p_clock_lf_cfg Low frequency clock source and accuracy.
+                         If NULL the clock will be configured as an rc source with rc_ctiv = 16 and .rc_temp_ctiv = 2
+                         In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock.
+ * @param fault_handler Callback to be invoked in case of fault.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated.
+ * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level.
+ * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected.
+ */
+SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
+
+
+/**@brief Disables the SoftDevice and by extension the protocol stack.
+ *
+ * Idempotent function to disable the SoftDevice.
+ *
+ * @post SoC library and protocol stack APIs are made unavailable.
+ * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest).
+ * @post All peripherals used by the SoftDevice will be reset to default values.
+ * @post All of RAM become available.
+ * @post All interrupts are forwarded to the application.
+ * @post LFCLK source chosen in ::sd_softdevice_enable will be left running.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void));
+
+/**@brief Check if the SoftDevice is enabled.
+ *
+ * @param[out]  p_softdevice_enabled If the SoftDevice is enabled: 1 else 0.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled));
+
+/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the SoftDevice
+ *
+ * This function is only intended to be called when a bootloader is enabled.
+ *
+ * @param[in] address The base address of the interrupt vector table for forwarded interrupts.
+
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, uint32_t, sd_softdevice_vector_table_base_set(uint32_t address));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_SDM_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_soc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_soc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_soc.h
@@ -0,0 +1,906 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+ * @defgroup nrf_soc_api SoC Library API
+ * @{
+ *
+ * @brief APIs for the SoC library.
+ *
+ */
+
+#ifndef NRF_SOC_H__
+#define NRF_SOC_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "nrf_svc.h"
+#include "nrf.h"
+
+#include "nrf_error_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup NRF_SOC_DEFINES Defines
+ * @{ */
+
+/**@brief The number of the lowest SVC number reserved for the SoC library. */
+#define SOC_SVC_BASE               (0x20)                   /**< Base value for SVCs that are available when the SoftDevice is disabled. */
+#define SOC_SVC_BASE_NOT_AVAILABLE (0x2B)                   /**< Base value for SVCs that are not available when the SoftDevice is disabled. */
+
+/**@brief Guranteed time for application to process radio inactive notification. */
+#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US  (62)
+
+/**@brief The minimum allowed timeslot extension time. */
+#define NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US (200)
+
+#define SOC_ECB_KEY_LENGTH                (16)                       /**< ECB key length. */
+#define SOC_ECB_CLEARTEXT_LENGTH          (16)                       /**< ECB cleartext length. */
+#define SOC_ECB_CIPHERTEXT_LENGTH         (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */
+
+#ifdef NRF51
+#define SD_EVT_IRQn                       (SWI2_IRQn)        /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */
+#define SD_EVT_IRQHandler                 (SWI2_IRQHandler)  /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. */
+#define RADIO_NOTIFICATION_IRQn           (SWI1_IRQn)        /**< The radio notification IRQ number. */
+#define RADIO_NOTIFICATION_IRQHandler     (SWI1_IRQHandler)  /**< The radio notification IRQ handler. */
+#endif
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+#define SD_EVT_IRQn                       (SWI2_EGU2_IRQn)        /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */
+#define SD_EVT_IRQHandler                 (SWI2_EGU2_IRQHandler)  /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. */
+#define RADIO_NOTIFICATION_IRQn           (SWI1_EGU1_IRQn)        /**< The radio notification IRQ number. */
+#define RADIO_NOTIFICATION_IRQHandler     (SWI1_EGU1_IRQHandler)  /**< The radio notification IRQ handler. */
+#endif
+
+#define NRF_RADIO_LENGTH_MIN_US           (100)               /**< The shortest allowed radio timeslot, in microseconds. */
+#define NRF_RADIO_LENGTH_MAX_US           (100000)            /**< The longest allowed radio timeslot, in microseconds. */
+
+#define NRF_RADIO_DISTANCE_MAX_US         (128000000UL - 1UL) /**< The longest timeslot distance, in microseconds, allowed for the distance parameter (see @ref nrf_radio_request_normal_t) in the request. */
+
+#define NRF_RADIO_EARLIEST_TIMEOUT_MAX_US (128000000UL - 1UL) /**< The longest timeout, in microseconds, allowed when requesting the earliest possible timeslot. */
+
+#define NRF_RADIO_START_JITTER_US         (2)                 /**< The maximum jitter in @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START relative to the requested start time. */
+
+/**@} */
+
+/**@addtogroup NRF_SOC_ENUMS Enumerations
+ * @{ */
+
+/**@brief The SVC numbers used by the SVC functions in the SoC library. */
+enum NRF_SOC_SVCS
+{
+  SD_PPI_CHANNEL_ENABLE_GET = SOC_SVC_BASE,
+  SD_PPI_CHANNEL_ENABLE_SET,
+  SD_PPI_CHANNEL_ENABLE_CLR,
+  SD_PPI_CHANNEL_ASSIGN,
+  SD_PPI_GROUP_TASK_ENABLE,
+  SD_PPI_GROUP_TASK_DISABLE,
+  SD_PPI_GROUP_ASSIGN,
+  SD_PPI_GROUP_GET,
+  SD_FLASH_PAGE_ERASE,
+  SD_FLASH_WRITE,
+  SD_FLASH_PROTECT,
+  SD_MUTEX_NEW = SOC_SVC_BASE_NOT_AVAILABLE,
+  SD_MUTEX_ACQUIRE,
+  SD_MUTEX_RELEASE,
+  SD_RAND_APPLICATION_POOL_CAPACITY_GET,
+  SD_RAND_APPLICATION_BYTES_AVAILABLE_GET,
+  SD_RAND_APPLICATION_VECTOR_GET,
+  SD_POWER_MODE_SET,
+  SD_POWER_SYSTEM_OFF,
+  SD_POWER_RESET_REASON_GET,
+  SD_POWER_RESET_REASON_CLR,
+  SD_POWER_POF_ENABLE,
+  SD_POWER_POF_THRESHOLD_SET,
+  SD_POWER_RAMON_SET,
+  SD_POWER_RAMON_CLR,
+  SD_POWER_RAMON_GET,
+  SD_POWER_GPREGRET_SET,
+  SD_POWER_GPREGRET_CLR,
+  SD_POWER_GPREGRET_GET,
+  SD_POWER_DCDC_MODE_SET,
+  SD_APP_EVT_WAIT,
+  SD_CLOCK_HFCLK_REQUEST,
+  SD_CLOCK_HFCLK_RELEASE,
+  SD_CLOCK_HFCLK_IS_RUNNING,
+  SD_RADIO_NOTIFICATION_CFG_SET,
+  SD_ECB_BLOCK_ENCRYPT,
+  SD_ECB_BLOCKS_ENCRYPT,
+  SD_RADIO_SESSION_OPEN,
+  SD_RADIO_SESSION_CLOSE,
+  SD_RADIO_REQUEST,
+  SD_EVT_GET,
+  SD_TEMP_GET,
+  SVC_SOC_LAST
+};
+
+/**@brief Possible values of a ::nrf_mutex_t. */
+enum NRF_MUTEX_VALUES
+{
+  NRF_MUTEX_FREE,
+  NRF_MUTEX_TAKEN
+};
+
+/**@brief Power modes. */
+enum NRF_POWER_MODES
+{
+  NRF_POWER_MODE_CONSTLAT,  /**< Constant latency mode. See power management in the reference manual. */
+  NRF_POWER_MODE_LOWPWR     /**< Low power mode. See power management in the reference manual. */
+};
+
+
+/**@brief Power failure thresholds */
+enum NRF_POWER_THRESHOLDS
+{
+  NRF_POWER_THRESHOLD_V21,  /**< 2.1 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V23,  /**< 2.3 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V25,  /**< 2.5 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V27   /**< 2.7 Volts power failure threshold. */
+};
+
+
+/**@brief DC/DC converter modes. */
+enum NRF_POWER_DCDC_MODES
+{
+  NRF_POWER_DCDC_DISABLE,          /**< The DCDC is disabled. */
+  NRF_POWER_DCDC_ENABLE            /**< The DCDC is enabled.  */
+};
+
+/**@brief Radio notification distances. */
+enum NRF_RADIO_NOTIFICATION_DISTANCES
+{
+  NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_800US,    /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_1740US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_2680US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_3620US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_4560US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_5500US    /**< The distance from the active notification to start of radio activity. */
+};
+
+
+/**@brief Radio notification types. */
+enum NRF_RADIO_NOTIFICATION_TYPES
+{
+  NRF_RADIO_NOTIFICATION_TYPE_NONE = 0,        /**< The event does not have a radio notification signal. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE,   /**< Using interrupt for notification when the radio will be enabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH,     /**< Using interrupt for notification both when the radio will be enabled and disabled. */
+};
+
+/**@brief The Radio signal callback types. */
+enum NRF_RADIO_CALLBACK_SIGNAL_TYPE
+{
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_START,             /**< This signal indicates the start of the radio timeslot. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0,            /**< This signal indicates the NRF_TIMER0 interrupt. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO,             /**< This signal indicates the NRF_RADIO interrupt. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_FAILED,     /**< This signal indicates extend action failed. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_SUCCEEDED   /**< This signal indicates extend action succeeded. */
+};
+
+/**@brief The actions requested by the signal callback.
+ *
+ *  This code gives the SOC instructions about what action to take when the signal callback has
+ *  returned.
+ */
+enum NRF_RADIO_SIGNAL_CALLBACK_ACTION
+{
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_NONE,            /**< Return without action. */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND,          /**< Request an extension of the current timeslot (maximum execution time for this action is when the extension succeeded). */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_END,             /**< End the current radio timeslot. */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END  /**< Request a new radio timeslot and end the current timeslot. */
+};
+
+/**@brief Radio timeslot high frequency clock source configuration. */
+enum NRF_RADIO_HFCLK_CFG
+{
+  NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED, /**< The SoftDevice will guarantee that the high frequency clock source is the
+                                           external crystal for the whole duration of the timeslot. This should be the
+                                           preferred option for events that use the radio or require high timing accuracy. */
+  NRF_RADIO_HFCLK_CFG_NO_GUARANTEE    /**< This configuration allows for earlier and tighter scheduling of timeslots.
+                                           The RC oscillator may be the clock source in part or for the whole duration of the timeslot.
+                                           The RC oscillator's accuracy must therefore be taken into consideration.
+                                           @note If the application will use the radio peripheral in timeslots with this configuration,
+                                           it must make sure that the crystal is running and stable before starting the radio. */
+};
+
+/**@brief Radio timeslot priorities. */
+enum NRF_RADIO_PRIORITY
+{
+  NRF_RADIO_PRIORITY_HIGH,                          /**< High (equal priority as the normal connection priority of the SoftDevice stack(s)). */
+  NRF_RADIO_PRIORITY_NORMAL,                        /**< Normal (equal priority as the priority of secondary activites of the SoftDevice stack(s)). */
+};
+
+/**@brief Radio timeslot request type. */
+enum NRF_RADIO_REQUEST_TYPE
+{
+  NRF_RADIO_REQ_TYPE_EARLIEST,                      /**< Request radio timeslot as early as possible. This should always be used for the first request in a session. */
+  NRF_RADIO_REQ_TYPE_NORMAL                         /**< Normal radio timeslot request. */
+};
+
+/**@brief SoC Events. */
+enum NRF_SOC_EVTS
+{
+  NRF_EVT_HFCLKSTARTED,                         /**< Event indicating that the HFCLK has started. */
+  NRF_EVT_POWER_FAILURE_WARNING,                /**< Event indicating that a power failure warning has occurred. */
+  NRF_EVT_FLASH_OPERATION_SUCCESS,              /**< Event indicating that the ongoing flash operation has completed successfully. */
+  NRF_EVT_FLASH_OPERATION_ERROR,                /**< Event indicating that the ongoing flash operation has timed out with an error. */
+  NRF_EVT_RADIO_BLOCKED,                        /**< Event indicating that a radio timeslot was blocked. */
+  NRF_EVT_RADIO_CANCELED,                       /**< Event indicating that a radio timeslot was canceled by SoftDevice. */
+  NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN, /**< Event indicating that a radio timeslot signal callback handler return was invalid. */
+  NRF_EVT_RADIO_SESSION_IDLE,                   /**< Event indicating that a radio timeslot session is idle. */
+  NRF_EVT_RADIO_SESSION_CLOSED,                 /**< Event indicating that a radio timeslot session is closed. */
+  NRF_EVT_NUMBER_OF_EVTS
+};
+
+/**@} */
+
+
+/**@addtogroup NRF_SOC_STRUCTURES Structures
+ * @{ */
+
+/**@brief Represents a mutex for use with the nrf_mutex functions.
+ * @note Accessing the value directly is not safe, use the mutex functions!
+ */
+typedef volatile uint8_t nrf_mutex_t;
+
+/**@brief Parameters for a request for a timeslot as early as possible. */
+typedef struct
+{
+  uint8_t       hfclk;                              /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */
+  uint8_t       priority;                           /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */
+  uint32_t      length_us;                          /**< The radio timeslot length (in the range 100 to 100,000] microseconds). */
+  uint32_t      timeout_us;                         /**< Longest acceptable delay until the start of the requested timeslot (up to @ref NRF_RADIO_EARLIEST_TIMEOUT_MAX_US microseconds). */
+} nrf_radio_request_earliest_t;
+
+/**@brief Parameters for a normal radio timeslot request. */
+typedef struct
+{
+  uint8_t       hfclk;                              /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */
+  uint8_t       priority;                           /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */
+  uint32_t      distance_us;                        /**< Distance from the start of the previous radio timeslot (up to @ref NRF_RADIO_DISTANCE_MAX_US microseconds). */
+  uint32_t      length_us;                          /**< The radio timeslot length (in the range [100..100,000] microseconds). */
+} nrf_radio_request_normal_t;
+
+/**@brief Radio timeslot request parameters. */
+typedef struct
+{
+  uint8_t                         request_type;     /**< Type of request, see @ref NRF_RADIO_REQUEST_TYPE. */
+  union
+  {
+    nrf_radio_request_earliest_t  earliest;         /**< Parameters for requesting a radio timeslot as early as possible. */
+    nrf_radio_request_normal_t    normal;           /**< Parameters for requesting a normal radio timeslot. */
+  } params;                                         /**< Parameter union. */
+} nrf_radio_request_t;
+
+/**@brief Return parameters of the radio timeslot signal callback. */
+typedef struct
+{
+  uint8_t               callback_action;            /**< The action requested by the application when returning from the signal callback, see @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION. */
+  union
+  {
+    struct
+    {
+      nrf_radio_request_t * p_next;                 /**< The request parameters for the next radio timeslot. */
+    } request;                                      /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END. */
+    struct
+    {
+      uint32_t              length_us;              /**< Requested extension of the radio timeslot duration (microseconds) (for minimum time see @ref NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US). */
+    } extend;                                       /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND. */
+  } params;                                         /**< Parameter union. */
+} nrf_radio_signal_callback_return_param_t;
+
+/**@brief The radio timeslot signal callback type.
+ *
+ * @note In case of invalid return parameters, the radio timeslot will automatically end
+ *       immediately after returning from the signal callback and the
+ *       @ref NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN event will be sent.
+ * @note The returned struct pointer must remain valid after the signal callback
+ *       function returns. For instance, this means that it must not point to a stack variable.
+ *
+ * @param[in] signal_type Type of signal, see @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE.
+ *
+ * @return Pointer to structure containing action requested by the application.
+ */
+typedef nrf_radio_signal_callback_return_param_t * (*nrf_radio_signal_callback_t) (uint8_t signal_type);
+
+/**@brief AES ECB parameter typedefs */
+typedef uint8_t soc_ecb_key_t[SOC_ECB_KEY_LENGTH];                /**< Encryption key type. */
+typedef uint8_t soc_ecb_cleartext_t[SOC_ECB_CLEARTEXT_LENGTH];    /**< Cleartext data type. */
+typedef uint8_t soc_ecb_ciphertext_t[SOC_ECB_CIPHERTEXT_LENGTH];  /**< Ciphertext data type. */
+
+/**@brief AES ECB data structure */
+typedef struct
+{
+  soc_ecb_key_t        key;            /**< Encryption key. */
+  soc_ecb_cleartext_t  cleartext;      /**< Cleartext data. */
+  soc_ecb_ciphertext_t ciphertext;     /**< Ciphertext data. */
+} nrf_ecb_hal_data_t;
+
+/**@brief AES ECB block. Used to provide multiple blocks in a single call
+          to @ref sd_ecb_blocks_encrypt.*/
+typedef struct
+{
+  soc_ecb_key_t*        p_key;           /**< Pointer to the Encryption key. */
+  soc_ecb_cleartext_t*  p_cleartext;     /**< Pointer to the Cleartext data. */
+  soc_ecb_ciphertext_t* p_ciphertext;    /**< Pointer to the Ciphertext data. */
+} nrf_ecb_hal_data_block_t;
+
+/**@} */
+
+/**@addtogroup NRF_SOC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initialize a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to initialize.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex));
+
+/**@brief Attempt to acquire a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to acquire.
+ *
+ * @retval ::NRF_SUCCESS The mutex was successfully acquired.
+ * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired.
+ */
+SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex));
+
+/**@brief Release a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to release.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex));
+
+/**@brief Query the capacity of the application random pool.
+ *
+ * @param[out] p_pool_capacity The capacity of the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY_GET, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity));
+
+/**@brief Get number of random bytes available to the application.
+ *
+ * @param[out] p_bytes_available The number of bytes currently available in the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE_GET, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available));
+
+/**@brief Get random bytes from the application pool.
+ *
+ * @param[out]  p_buff  Pointer to unit8_t buffer for storing the bytes.
+ * @param[in]   length  Number of bytes to take from pool and place in p_buff.
+ *
+ * @retval ::NRF_SUCCESS The requested bytes were written to p_buff.
+ * @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available.
+*/
+SVCALL(SD_RAND_APPLICATION_VECTOR_GET, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length));
+
+/**@brief Gets the reset reason register.
+ *
+ * @param[out]  p_reset_reason  Contents of the NRF_POWER->RESETREAS register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason));
+
+/**@brief Clears the bits of the reset reason register.
+ *
+ * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk));
+
+/**@brief Sets the power mode when in CPU sleep.
+ *
+ * @param[in] power_mode The power mode to use when in CPU sleep, see @ref NRF_POWER_MODES. @sa sd_app_evt_wait
+ *
+ * @retval ::NRF_SUCCESS The power mode was set.
+ * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown.
+ */
+SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(uint8_t power_mode));
+
+/**@brief Puts the chip in System OFF mode.
+ *
+ * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN
+ */
+SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void));
+
+/**@brief Enables or disables the power-fail comparator.
+ *
+ * Enabling this will give a softdevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs.
+ * The event can be retrieved with sd_evt_get();
+ *
+ * @param[in] pof_enable    True if the power-fail comparator should be enabled, false if it should be disabled.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable));
+
+/**@brief Sets the power-fail threshold value.
+ *
+ * @param[in] threshold The power-fail threshold value to use, see @ref NRF_POWER_THRESHOLDS.
+ *
+ * @retval ::NRF_SUCCESS The power failure threshold was set.
+ * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown.
+ */
+SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(uint8_t threshold));
+
+/**@brief Sets bits in the NRF_POWER->RAMON register.
+ *
+ * @param[in] ramon Contains the bits needed to be set in the NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_SET, uint32_t, sd_power_ramon_set(uint32_t ramon));
+
+/**@brief Clears bits in the NRF_POWER->RAMON register.
+ *
+ * @param ramon Contains the bits needed to be cleared in the NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_CLR, uint32_t, sd_power_ramon_clr(uint32_t ramon));
+
+/**@brief Get contents of NRF_POWER->RAMON register, indicates power status of ram blocks.
+ *
+ * @param[out] p_ramon Content of NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_GET, uint32_t, sd_power_ramon_get(uint32_t * p_ramon));
+
+/**@brief Set bits in the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[in] gpregret_msk Bits to be set in the GPREGRET register.
+ *
+ * @note nRF51 does only have one general purpose retained register, so gpregret_id must be 0 on nRF51.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_id, uint32_t gpregret_msk));
+
+/**@brief Clear bits in the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[in] gpregret_msk Bits to be clear in the GPREGRET register.
+ *
+ * @note nRF51 does only have one general purpose retained register, so gpregret_id must be 0 on nRF51.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_id, uint32_t gpregret_msk));
+
+/**@brief Get contents of the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[out] p_gpregret Contents of the GPREGRET register.
+ *
+ * @note nRF51 does only have one general purpose retained register, so gpregret_id must be 0 on nRF51.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t gpregret_id, uint32_t *p_gpregret));
+
+/**@brief Sets the DCDC mode.
+ *
+ * Enable or disable the DCDC peripheral.
+ *
+ * @param[in] dcdc_mode The mode of the DCDC, see @ref NRF_POWER_DCDC_MODES.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid.
+ */
+SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(uint8_t dcdc_mode));
+
+/**@brief Request the high frequency crystal oscillator.
+ *
+ * Will start the high frequency crystal oscillator, the startup time of the crystal varies
+ * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_release
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void));
+
+/**@brief Releases the high frequency crystal oscillator.
+ *
+ * Will stop the high frequency crystal oscillator, this happens immediately.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_request
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void));
+
+/**@brief Checks if the high frequency crystal oscillator is running.
+ *
+ * @see sd_clock_hfclk_request
+ * @see sd_clock_hfclk_release
+ *
+ * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running));
+
+/**@brief Waits for an application event.
+ *
+ * An application event is either an application interrupt or a pended interrupt when the
+ * interrupt is disabled. When the interrupt is enabled it will be taken immediately since
+ * this function will wait in thread mode, then the execution will return in the application's
+ * main thread. When an interrupt is disabled and gets pended it will return to the application's
+ * thread main. The application must ensure that the pended flag is cleared using
+ * ::sd_nvic_ClearPendingIRQ in order to sleep using this function. This is only necessary for
+ * disabled interrupts, as the interrupt handler will clear the pending flag automatically for
+ * enabled interrupts.
+ *
+ * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M0
+ * System Control Register (SCR). @sa CMSIS_SCB
+ *
+ * @note If an application interrupt has happened since the last time sd_app_evt_wait was
+ *       called this function will return immediately and not go to sleep. This is to avoid race
+ *       conditions that can occur when a flag is updated in the interrupt handler and processed
+ *       in the main loop.
+ *
+ * @post An application interrupt has happened or a interrupt pending flag is set.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void));
+
+/**@brief Get PPI channel enable register contents.
+ *
+ * @param[out] p_channel_enable The contents of the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable));
+
+/**@brief Set PPI channel enable register.
+ *
+ * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk));
+
+/**@brief Clear PPI channel enable register.
+ *
+ * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk));
+
+/**@brief Assign endpoints to a PPI channel.
+ *
+ * @param[in] channel_num Number of the PPI channel to assign.
+ * @param[in] evt_endpoint Event endpoint of the PPI channel.
+ * @param[in] task_endpoint Task endpoint of the PPI channel.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint));
+
+/**@brief Task to enable a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num));
+
+/**@brief Task to disable a channel group.
+ *
+ * @param[in] group_num Number of the PPI group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num));
+
+/**@brief Assign PPI channels to a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ * @param[in] channel_msk Mask of the channels to assign to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk));
+
+/**@brief Gets the PPI channels of a channel group.
+ *
+ * @param[in]   group_num Number of the channel group.
+ * @param[out]  p_channel_msk Mask of the channels assigned to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk));
+
+/**@brief Configures the Radio Notification signal.
+ *
+ * @note
+ *      - The notification signal latency depends on the interrupt priority settings of SWI used
+ *        for notification signal.
+ *      - To ensure that the radio notification signal behaves in a consistent way, always
+ *        configure radio notifications when there is no protocol stack or other SoftDevice
+ *        activity in progress. It is recommended that the radio notification signal is
+ *        configured directly after the SoftDevice has been enabled.
+ *      - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice
+ *        will interrupt the application to do Radio Event preparation.
+ *      - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have
+ *        to shorten the connection events to have time for the Radio Notification signals.
+ *
+ * @param[in]  type      Type of notification signal, see @ref NRF_RADIO_NOTIFICATION_TYPES.
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio
+ *                       notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is
+ *                       recommended (but not required) to be used with
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE.
+ *
+ * @param[in]  distance  Distance between the notification signal and start of radio activity, see @ref NRF_RADIO_NOTIFICATION_DISTANCES.
+ *                       This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(uint8_t type, uint8_t distance));
+
+/**@brief Encrypts a block according to the specified parameters.
+ *
+ * 128-bit AES encryption.
+ *
+ * @note:
+ *    - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while
+ *      the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application
+ *      main or low interrupt level.
+ *
+ * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input
+ *                            parameters and one output parameter).
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data));
+
+/**@brief Encrypts multiple data blocks provided as an array of data block structures.
+ *
+ * @details: Performs 128-bit AES encryption on multiple data blocks
+ *
+ * @note:
+ *    - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while
+ *      the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application
+ *      main or low interrupt level.
+ *
+ * @param[in]     block_count     Count of blocks in the p_data_blocks array.
+ * @param[in,out] p_data_blocks   Pointer to the first entry in a contiguous array of
+ *                                @ref nrf_ecb_hal_data_block_t structures.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_ECB_BLOCKS_ENCRYPT, uint32_t, sd_ecb_blocks_encrypt(uint8_t block_count, nrf_ecb_hal_data_block_t * p_data_blocks));
+
+/**@brief Gets any pending events generated by the SoC API.
+ *
+ * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned.
+ *
+ * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending.
+ *
+ * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter.
+ * @retval ::NRF_ERROR_NOT_FOUND No pending events.
+ */
+SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id));
+
+/**@brief Get the temperature measured on the chip
+ *
+ * This function will block until the temperature measurement is done.
+ * It takes around 50us from call to return.
+ *
+ * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees celsius.
+ *
+ * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp
+ */
+SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp));
+
+/**@brief Flash Write
+*
+* Commands to write a buffer to flash
+*
+* If the SoftDevice is enabled:
+*  This call initiates the flash access command, and its completion will be communicated to the
+*  application with exactly one of the following events:
+*      - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+*      - @ref NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+*
+* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the
+ * write has been completed
+*
+* @note
+*      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+*        they will not interfere with the flash access. This means that all interrupts will be blocked
+*        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
+*        and the command parameters).
+*      - The data in the p_src buffer should not be modified before the @ref NRF_EVT_FLASH_OPERATION_SUCCESS
+*        or the @ref NRF_EVT_FLASH_OPERATION_ERROR have been received if the SoftDevice is enabled.
+*
+*
+* @param[in]  p_dst Pointer to start of flash location to be written.
+* @param[in]  p_src Pointer to buffer with data to be written.
+* @param[in]  size  Number of 32-bit words to write. Maximum size is 256 32-bit words for nRF51 and 1024 for nRF52.
+*
+* @retval ::NRF_ERROR_INVALID_ADDR   Tried to write to a non existing flash address, or p_dst or p_src was unaligned.
+* @retval ::NRF_ERROR_BUSY           The previous command has not yet completed.
+* @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or higher than the maximum allowed size.
+* @retval ::NRF_ERROR_FORBIDDEN      Tried to write to or read from protected location.
+* @retval ::NRF_SUCCESS              The command was accepted.
+*/
+SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * const p_dst, uint32_t const * const p_src, uint32_t size));
+
+
+/**@brief Flash Erase page
+*
+* Commands to erase a flash page
+* If the SoftDevice is enabled:
+*  This call initiates the flash access command, and its completion will be communicated to the
+*  application with exactly one of the following events:
+*      - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+*      - @ref NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+*
+* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the
+* erase has been completed
+*
+* @note
+*      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+*        they will not interfere with the flash access. This means that all interrupts will be blocked
+*        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
+*        and the command parameters).
+*
+*
+* @param[in]  page_number Pagenumber of the page to erase
+* @retval ::NRF_ERROR_INTERNAL      If a new session could not be opened due to an internal error.
+* @retval ::NRF_ERROR_INVALID_ADDR  Tried to erase to a non existing flash page.
+* @retval ::NRF_ERROR_BUSY          The previous command has not yet completed.
+* @retval ::NRF_ERROR_FORBIDDEN     Tried to erase a protected page.
+* @retval ::NRF_SUCCESS             The command was accepted.
+*/
+SVCALL(SD_FLASH_PAGE_ERASE, uint32_t, sd_flash_page_erase(uint32_t page_number));
+
+
+/**@brief Flash Protection set
+ *
+ * Commands to set the flash protection configuration registers.
+   On nRF51 this sets the PROTENSETx registers of the MPU peripheral.
+   On nRF52 this sets the CONFIGx registers of the BPROT peripheral.
+ *
+ * @note To read the values read them directly. They are only write-protected.
+ *
+ * @param[in]  block_cfg0 Value to be written to the configuration register.
+ * @param[in]  block_cfg1 Value to be written to the configuration register.
+ * @param[in]  block_cfg2 Value to be written to the configuration register (ignored on nRF51).
+ * @param[in]  block_cfg3 Value to be written to the configuration register (ignored on nRF51).
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN Tried to protect the SoftDevice.
+ * @retval ::NRF_SUCCESS Values successfully written to configuration registers.
+ */
+SVCALL(SD_FLASH_PROTECT, uint32_t, sd_flash_protect(uint32_t block_cfg0, uint32_t block_cfg1, uint32_t block_cfg2, uint32_t block_cfg3));
+
+/**@brief Opens a session for radio timeslot requests.
+ *
+ * @note Only one session can be open at a time.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) will be called when the radio timeslot
+ *       starts. From this point the NRF_RADIO and NRF_TIMER0 peripherals can be freely accessed
+ *       by the application.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0) is called whenever the NRF_TIMER0
+ *       interrupt occurs.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO) is called whenever the NRF_RADIO
+ *       interrupt occurs.
+ * @note p_radio_signal_callback() will be called at ARM interrupt priority level 0. This
+ *       implies that none of the sd_* API calls can be used from p_radio_signal_callback().
+ *
+ * @param[in] p_radio_signal_callback The signal callback.
+ *
+ * @retval ::NRF_ERROR_INVALID_ADDR p_radio_signal_callback is an invalid function pointer.
+ * @retval ::NRF_ERROR_BUSY If session cannot be opened.
+ * @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_SESSION_OPEN, uint32_t, sd_radio_session_open(nrf_radio_signal_callback_t p_radio_signal_callback));
+
+/**@brief Closes a session for radio timeslot requests.
+ *
+ * @note Any current radio timeslot will be finished before the session is closed.
+ * @note If a radio timeslot is scheduled when the session is closed, it will be canceled.
+ * @note The application cannot consider the session closed until the @ref NRF_EVT_RADIO_SESSION_CLOSED
+ *       event is received.
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN If session not opened.
+ * @retval ::NRF_ERROR_BUSY If session is currently being closed.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_SESSION_CLOSE, uint32_t, sd_radio_session_close(void));
+
+/**@brief Requests a radio timeslot.
+ *
+ * @note The request type is determined by p_request->request_type, and can be one of @ref NRF_RADIO_REQ_TYPE_EARLIEST
+ *       and @ref NRF_RADIO_REQ_TYPE_NORMAL. The first request in a session must always be of type @ref NRF_RADIO_REQ_TYPE_EARLIEST.
+ * @note For a normal request (@ref NRF_RADIO_REQ_TYPE_NORMAL), the start time of a radio timeslot is specified by
+ *       p_request->distance_us and is given relative to the start of the previous timeslot.
+ * @note A too small p_request->distance_us will lead to a @ref NRF_EVT_RADIO_BLOCKED event.
+ * @note Timeslots scheduled too close will lead to a @ref NRF_EVT_RADIO_BLOCKED event.
+ * @note See the SoftDevice Specification for more on radio timeslot scheduling, distances and lengths.
+ * @note If an opportunity for the first radio timeslot is not found before 100ms after the call to this
+ *       function, it is not scheduled, and instead a @ref NRF_EVT_RADIO_BLOCKED event is sent.
+ *       The application may then try to schedule the first radio timeslot again.
+ * @note Successful requests will result in nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START).
+ *       Unsuccessful requests will result in a @ref NRF_EVT_RADIO_BLOCKED event, see @ref NRF_SOC_EVTS.
+ * @note The jitter in the start time of the radio timeslots is +/- @ref NRF_RADIO_START_JITTER_US us.
+ * @note The nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) call has a latency relative to the
+ *       specified radio timeslot start, but this does not affect the actual start time of the timeslot.
+ * @note NRF_TIMER0 is reset at the start of the radio timeslot, and is clocked at 1MHz from the high frequency
+ *       (16 MHz) clock source. If p_request->hfclk_force_xtal is true, the high frequency clock is
+ *       guaranteed to be clocked from the external crystal.
+ * @note The SoftDevice will neither access the NRF_RADIO peripheral nor the NRF_TIMER0 peripheral
+ *       during the radio timeslot.
+ *
+ * @param[in] p_request Pointer to the request parameters.
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN If session not opened or the session is not IDLE.
+ * @retval ::NRF_ERROR_INVALID_ADDR If the p_request pointer is invalid.
+ * @retval ::NRF_ERROR_INVALID_PARAM If the parameters of p_request are not valid.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_REQUEST, uint32_t, sd_radio_request(nrf_radio_request_t * p_request ));
+
+/**@} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_SOC_H__
+
+/**@} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_svc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_svc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers/nrf_svc.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef NRF_SVC__
+#define NRF_SVC__
+
+#include "stdint.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef SVCALL_AS_NORMAL_FUNCTION
+#define SVCALL(number, return_type, signature) return_type signature
+#else
+
+#ifndef SVCALL
+#if defined (__CC_ARM)
+#define SVCALL(number, return_type, signature) return_type __svc(number) signature
+#elif defined (__GNUC__)
+#ifdef __cplusplus
+#define GCC_CAST_CPP (uint8_t)
+#else
+#define GCC_CAST_CPP
+#endif
+#define SVCALL(number, return_type, signature)          \
+  _Pragma("GCC diagnostic push")                        \
+  _Pragma("GCC diagnostic ignored \"-Wreturn-type\"")   \
+  __attribute__((naked))                                \
+  __attribute__((unused))                               \
+  static return_type signature                          \
+  {                                                     \
+    __asm(                                              \
+        "svc %0\n"                                      \
+        "bx r14" : : "I" (GCC_CAST_CPP number) : "r0"   \
+    );                                                  \
+  }                                                     \
+  _Pragma("GCC diagnostic pop")
+
+#elif defined (__ICCARM__)
+#define PRAGMA(x) _Pragma(#x)
+#define SVCALL(number, return_type, signature)          \
+PRAGMA(swi_number = (number))                           \
+ __swi return_type signature;
+#else
+#define SVCALL(number, return_type, signature) return_type signature
+#endif
+#endif  // SVCALL
+
+#endif  // SVCALL_AS_NORMAL_FUNCTION
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // NRF_SVC__
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gap.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gap.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gap.h
@@ -0,0 +1,1919 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GAP Generic Access Profile (GAP)
+  @{
+  @brief Definitions and prototypes for the GAP interface.
+ */
+
+#ifndef BLE_GAP_H__
+#define BLE_GAP_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup BLE_GAP_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GAP API SVC numbers.
+ */
+enum BLE_GAP_SVCS
+{
+  SD_BLE_GAP_ADDR_SET = BLE_GAP_SVC_BASE,       /**< Set own Bluetooth Address. */
+  SD_BLE_GAP_ADDR_GET,                          /**< Get own Bluetooth Address. */
+  SD_BLE_GAP_WHITELIST_SET,                     /**< Set active whitelist. */
+  SD_BLE_GAP_DEVICE_IDENTITIES_SET,             /**< Set device identity list. */
+  SD_BLE_GAP_PRIVACY_SET,                       /**< Set Privacy settings*/
+  SD_BLE_GAP_PRIVACY_GET,                       /**< Get Privacy settings*/
+  SD_BLE_GAP_ADV_DATA_SET,                      /**< Set Advertising Data. */
+  SD_BLE_GAP_ADV_START,                         /**< Start Advertising. */
+  SD_BLE_GAP_ADV_STOP,                          /**< Stop Advertising. */
+  SD_BLE_GAP_CONN_PARAM_UPDATE,                 /**< Connection Parameter Update. */
+  SD_BLE_GAP_DISCONNECT,                        /**< Disconnect. */
+  SD_BLE_GAP_TX_POWER_SET,                      /**< Set TX Power. */
+  SD_BLE_GAP_APPEARANCE_SET,                    /**< Set Appearance. */
+  SD_BLE_GAP_APPEARANCE_GET,                    /**< Get Appearance. */
+  SD_BLE_GAP_PPCP_SET,                          /**< Set PPCP. */
+  SD_BLE_GAP_PPCP_GET,                          /**< Get PPCP. */
+  SD_BLE_GAP_DEVICE_NAME_SET,                   /**< Set Device Name. */
+  SD_BLE_GAP_DEVICE_NAME_GET,                   /**< Get Device Name. */
+  SD_BLE_GAP_AUTHENTICATE,                      /**< Initiate Pairing/Bonding. */
+  SD_BLE_GAP_SEC_PARAMS_REPLY,                  /**< Reply with Security Parameters. */
+  SD_BLE_GAP_AUTH_KEY_REPLY,                    /**< Reply with an authentication key. */
+  SD_BLE_GAP_LESC_DHKEY_REPLY,                  /**< Reply with an LE Secure Connections DHKey. */
+  SD_BLE_GAP_KEYPRESS_NOTIFY,                   /**< Notify of a keypress during an authentication procedure. */
+  SD_BLE_GAP_LESC_OOB_DATA_GET,                 /**< Get the local LE Secure Connections OOB data. */
+  SD_BLE_GAP_LESC_OOB_DATA_SET,                 /**< Set the remote LE Secure Connections OOB data. */
+  SD_BLE_GAP_ENCRYPT,                           /**< Initiate encryption procedure. */
+  SD_BLE_GAP_SEC_INFO_REPLY,                    /**< Reply with Security Information. */
+  SD_BLE_GAP_CONN_SEC_GET,                      /**< Obtain connection security level. */
+  SD_BLE_GAP_RSSI_START,                        /**< Start reporting of changes in RSSI. */
+  SD_BLE_GAP_RSSI_STOP,                         /**< Stop reporting of changes in RSSI. */
+  SD_BLE_GAP_SCAN_START,                        /**< Start Scanning. */
+  SD_BLE_GAP_SCAN_STOP,                         /**< Stop Scanning. */
+  SD_BLE_GAP_CONNECT,                           /**< Connect. */
+  SD_BLE_GAP_CONNECT_CANCEL,                    /**< Cancel ongoing connection procedure. */
+  SD_BLE_GAP_RSSI_GET,                          /**< Get the last RSSI sample. */
+};
+
+/**@brief GAP Event IDs.
+ * IDs that uniquely identify an event coming from the stack to the application.
+ */
+enum BLE_GAP_EVTS
+{
+  BLE_GAP_EVT_CONNECTED  = BLE_GAP_EVT_BASE,    /**< Connection established.                         \n See @ref ble_gap_evt_connected_t.            */
+  BLE_GAP_EVT_DISCONNECTED,                     /**< Disconnected from peer.                         \n See @ref ble_gap_evt_disconnected_t.         */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE,                /**< Connection Parameters updated.                  \n See @ref ble_gap_evt_conn_param_update_t.    */
+  BLE_GAP_EVT_SEC_PARAMS_REQUEST,               /**< Request to provide security parameters.         \n Reply with @ref sd_ble_gap_sec_params_reply.  \n See @ref ble_gap_evt_sec_params_request_t. */
+  BLE_GAP_EVT_SEC_INFO_REQUEST,                 /**< Request to provide security information.        \n Reply with @ref sd_ble_gap_sec_info_reply.    \n See @ref ble_gap_evt_sec_info_request_t.   */
+  BLE_GAP_EVT_PASSKEY_DISPLAY,                  /**< Request to display a passkey to the user.       \n In LESC Numeric Comparison, reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_passkey_display_t. */
+  BLE_GAP_EVT_KEY_PRESSED,                      /**< Notification of a keypress on the remote device.\n See @ref ble_gap_evt_key_pressed_t           */
+  BLE_GAP_EVT_AUTH_KEY_REQUEST,                 /**< Request to provide an authentication key.       \n Reply with @ref sd_ble_gap_auth_key_reply.    \n See @ref ble_gap_evt_auth_key_request_t.   */
+  BLE_GAP_EVT_LESC_DHKEY_REQUEST,               /**< Request to calculate an LE Secure Connections DHKey. \n Reply with @ref sd_ble_gap_lesc_dhkey_reply.  \n See @ref ble_gap_evt_lesc_dhkey_request_t */
+  BLE_GAP_EVT_AUTH_STATUS,                      /**< Authentication procedure completed with status. \n See @ref ble_gap_evt_auth_status_t.          */
+  BLE_GAP_EVT_CONN_SEC_UPDATE,                  /**< Connection security updated.                    \n See @ref ble_gap_evt_conn_sec_update_t.      */
+  BLE_GAP_EVT_TIMEOUT,                          /**< Timeout expired.                                \n See @ref ble_gap_evt_timeout_t.              */
+  BLE_GAP_EVT_RSSI_CHANGED,                     /**< RSSI report.                                    \n See @ref ble_gap_evt_rssi_changed_t.         */
+  BLE_GAP_EVT_ADV_REPORT,                       /**< Advertising report.                             \n See @ref ble_gap_evt_adv_report_t.           */
+  BLE_GAP_EVT_SEC_REQUEST,                      /**< Security Request.                               \n See @ref ble_gap_evt_sec_request_t.          */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST,        /**< Connection Parameter Update Request.            \n Reply with @ref sd_ble_gap_conn_param_update. \n See @ref ble_gap_evt_conn_param_update_request_t. */
+  BLE_GAP_EVT_SCAN_REQ_REPORT,                  /**< Scan request report.                            \n See @ref ble_gap_evt_scan_req_report_t.      */
+};
+
+/**@brief GAP Option IDs.
+ * IDs that uniquely identify a GAP option.
+ */
+enum BLE_GAP_OPTS
+{
+  BLE_GAP_OPT_CH_MAP  = BLE_GAP_OPT_BASE,       /**< Channel Map. @ref ble_gap_opt_ch_map_t  */
+  BLE_GAP_OPT_LOCAL_CONN_LATENCY,               /**< Local connection latency. @ref ble_gap_opt_local_conn_latency_t */
+  BLE_GAP_OPT_PASSKEY,                          /**< Set passkey. @ref ble_gap_opt_passkey_t */
+  BLE_GAP_OPT_SCAN_REQ_REPORT,                  /**< Scan request report. @ref ble_gap_opt_scan_req_report_t */
+  BLE_GAP_OPT_COMPAT_MODE,                      /**< Compatibility mode. @ref ble_gap_opt_compat_mode_t */
+  BLE_GAP_OPT_AUTH_PAYLOAD_TIMEOUT,             /**< Set Authenticated payload timeout. @ref ble_gap_opt_auth_payload_timeout_t */
+  BLE_GAP_OPT_EXT_LEN,                          /**< Extended length packets. @ref ble_gap_opt_ext_len_t */
+};
+
+/** @} */
+
+/**@addtogroup BLE_GAP_DEFINES Defines
+ * @{ */
+
+/**@defgroup BLE_ERRORS_GAP SVC return values specific to GAP
+ * @{ */
+#define BLE_ERROR_GAP_UUID_LIST_MISMATCH            (NRF_GAP_ERR_BASE + 0x000)  /**< UUID list does not contain an integral number of UUIDs. */
+#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST   (NRF_GAP_ERR_BASE + 0x001)  /**< Use of Whitelist not permitted with discoverable advertising. */
+#define BLE_ERROR_GAP_INVALID_BLE_ADDR              (NRF_GAP_ERR_BASE + 0x002)  /**< The upper two bits of the address do not correspond to the specified address type. */
+#define BLE_ERROR_GAP_WHITELIST_IN_USE              (NRF_GAP_ERR_BASE + 0x003)  /**< Attempt to modify the whitelist while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE      (NRF_GAP_ERR_BASE + 0x004)  /**< Attempt to modify the device identity list while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE   (NRF_GAP_ERR_BASE + 0x005)  /**< The device identity list contains entries with duplicate identity addresses. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ROLES GAP Roles
+ * @note Not explicitly used in peripheral API, but will be relevant for central API.
+ * @{ */
+#define BLE_GAP_ROLE_INVALID     0x0            /**< Invalid Role. */
+#define BLE_GAP_ROLE_PERIPH      0x1            /**< Peripheral Role. */
+#define BLE_GAP_ROLE_CENTRAL     0x2            /**< Central Role. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources
+ * @{ */
+#define BLE_GAP_TIMEOUT_SRC_ADVERTISING                0x00 /**< Advertising timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SECURITY_REQUEST           0x01 /**< Security request timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SCAN                       0x02 /**< Scanning timeout. */
+#define BLE_GAP_TIMEOUT_SRC_CONN                       0x03 /**< Connection timeout. */
+#define BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD               0x04 /**< Authenticated payload timeout. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADDR_TYPES GAP Address types
+ * @{ */
+#define BLE_GAP_ADDR_TYPE_PUBLIC                        0x00 /**< Public address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC                 0x01 /**< Random static address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     0x02 /**< Random private resolvable address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Random private non-resolvable address. */
+/**@} */
+
+
+/**@brief The default interval in seconds at which a private address is refreshed.  */
+#define BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (900) /* 15 minutes. */
+/**@brief The maximum interval in seconds at which a private address can be refreshed.  */
+#define BLE_GAP_MAX_PRIVATE_ADDR_CYCLE_INTERVAL_S     (41400) /* 11 hours 30 minutes. */
+
+
+/** @brief BLE address length. */
+#define BLE_GAP_ADDR_LEN (6)
+
+
+/**@defgroup BLE_GAP_PRIVACY_MODES Privacy modes
+ * @{ */
+#define BLE_GAP_PRIVACY_MODE_OFF                       0x00 /**< Device will send and accept its identity address for its own address. */
+#define BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY            0x01 /**< Device will send and accept only private addresses for its own address. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format
+ * @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm
+ * @{ */
+#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
+#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
+#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
+#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
+#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data - 16-bit UUID. */
+#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
+#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
+#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
+#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL                0x1A /**< Advertising Interval. */
+#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS         0x1B /**< LE Bluetooth Device Address. */
+#define BLE_GAP_AD_TYPE_LE_ROLE                             0x1C /**< LE Role. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256            0x1D /**< Simple Pairing Hash C-256. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256      0x1E /**< Simple Pairing Randomizer R-256. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID             0x20 /**< Service Data - 32-bit UUID. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID            0x21 /**< Service Data - 128-bit UUID. */
+#define BLE_GAP_AD_TYPE_URI                                 0x24 /**< URI */
+#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA                 0x3D /**< 3D Information Data. */
+#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags
+ * @{ */
+#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE         (0x01)   /**< LE Limited Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE         (0x02)   /**< LE General Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED         (0x04)   /**< BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER         (0x08)   /**< Simultaneous LE and BR/EDR, Controller. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST               (0x10)   /**< Simultaneous LE and BR/EDR, Host. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE Limited Discoverable Mode, BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE General Discoverable Mode, BR/EDR not supported. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min
+ * @{ */
+#define BLE_GAP_ADV_INTERVAL_MIN        0x0020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */
+#define BLE_GAP_ADV_NONCON_INTERVAL_MIN 0x00A0 /**< Minimum Advertising interval in 625 us units for non connectable mode, i.e. 100 ms. */
+#define BLE_GAP_ADV_INTERVAL_MAX        0x4000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. */
+ /**@}  */
+
+
+/**@defgroup BLE_GAP_SCAN_INTERVALS GAP Scan interval max and min
+ * @{ */
+#define BLE_GAP_SCAN_INTERVAL_MIN       0x0004 /**< Minimum Scan interval in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_INTERVAL_MAX       0x4000 /**< Maximum Scan interval in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_WINDOW GAP Scan window max and min
+ * @{ */
+#define BLE_GAP_SCAN_WINDOW_MIN         0x0004 /**< Minimum Scan window in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_WINDOW_MAX         0x4000 /**< Maximum Scan window in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_TIMEOUT GAP Scan timeout max and min
+ * @{ */
+#define BLE_GAP_SCAN_TIMEOUT_MIN        0x0001 /**< Minimum Scan timeout in seconds. */
+#define BLE_GAP_SCAN_TIMEOUT_MAX        0xFFFF /**< Maximum Scan timeout in seconds. */
+ /** @}  */
+
+
+/**@brief Maximum size of advertising data in octets. */
+#define BLE_GAP_ADV_MAX_SIZE            (31)
+
+
+/**@defgroup BLE_GAP_ADV_TYPES GAP Advertising types
+ * @{ */
+#define BLE_GAP_ADV_TYPE_ADV_IND          0x00   /**< Connectable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND   0x01   /**< Connectable directed. */
+#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND     0x02   /**< Scannable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND  0x03   /**< Non connectable undirected. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies
+ * @{ */
+#define BLE_GAP_ADV_FP_ANY                0x00   /**< Allow scan requests and connect requests from any device. */
+#define BLE_GAP_ADV_FP_FILTER_SCANREQ     0x01   /**< Filter scan requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_CONNREQ     0x02   /**< Filter connect requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_BOTH        0x03   /**< Filter both scan and connect requests with whitelist. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values
+ * @{ */
+#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (180) /**< Maximum advertising time in limited discoverable mode (TGAP(lim_adv_timeout) = 180s). */
+#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0)   /**< Unlimited advertising in general discoverable mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_DISC_MODES GAP Discovery modes
+ * @{ */
+#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE  0x00   /**< Not discoverable discovery Mode. */
+#define BLE_GAP_DISC_MODE_LIMITED           0x01   /**< Limited Discovery Mode. */
+#define BLE_GAP_DISC_MODE_GENERAL           0x02   /**< General Discovery Mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_IO_CAPS GAP IO Capabilities
+ * @{ */
+#define BLE_GAP_IO_CAPS_DISPLAY_ONLY      0x00   /**< Display Only. */
+#define BLE_GAP_IO_CAPS_DISPLAY_YESNO     0x01   /**< Display and Yes/No entry. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY     0x02   /**< Keyboard Only. */
+#define BLE_GAP_IO_CAPS_NONE              0x03   /**< No I/O capabilities. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY  0x04   /**< Keyboard and Display. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types
+ * @{ */
+#define BLE_GAP_AUTH_KEY_TYPE_NONE        0x00   /**< No key (may be used to reject). */
+#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY     0x01   /**< 6-digit Passkey. */
+#define BLE_GAP_AUTH_KEY_TYPE_OOB         0x02   /**< Out Of Band data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_KP_NOT_TYPES GAP Keypress Notification Types
+ * @{ */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_START       0x00   /**< Passkey entry started. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_IN    0x01   /**< Passkey digit entered. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_OUT   0x02   /**< Passkey digit erased. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_CLEAR       0x03   /**< Passkey cleared. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_END         0x04   /**< Passkey entry completed. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS GAP Security status
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SUCCESS                0x00  /**< Procedure completed with success. */
+#define BLE_GAP_SEC_STATUS_TIMEOUT                0x01  /**< Procedure timed out. */
+#define BLE_GAP_SEC_STATUS_PDU_INVALID            0x02  /**< Invalid PDU received. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_BEGIN       0x03  /**< Reserved for Future Use range #1 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_END         0x80  /**< Reserved for Future Use range #1 end. */
+#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED   0x81  /**< Passkey entry failed (user cancelled or other). */
+#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE      0x82  /**< Out of Band Key not available. */
+#define BLE_GAP_SEC_STATUS_AUTH_REQ               0x83  /**< Authentication requirements not met. */
+#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE          0x84  /**< Confirm value failed. */
+#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP       0x85  /**< Pairing not supported.  */
+#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE           0x86  /**< Encryption key size. */
+#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED    0x87  /**< Unsupported SMP command. */
+#define BLE_GAP_SEC_STATUS_UNSPECIFIED            0x88  /**< Unspecified reason. */
+#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS      0x89  /**< Too little time elapsed since last attempt. */
+#define BLE_GAP_SEC_STATUS_INVALID_PARAMS         0x8A  /**< Invalid parameters. */
+#define BLE_GAP_SEC_STATUS_DHKEY_FAILURE          0x8B  /**< DHKey check failure. */
+#define BLE_GAP_SEC_STATUS_NUM_COMP_FAILURE       0x8C  /**< Numeric Comparison failure. */
+#define BLE_GAP_SEC_STATUS_BR_EDR_IN_PROG         0x8D  /**< BR/EDR pairing in progress. */
+#define BLE_GAP_SEC_STATUS_X_TRANS_KEY_DISALLOWED 0x8E  /**< BR/EDR Link Key cannot be used for LE keys. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_BEGIN       0x8F  /**< Reserved for Future Use range #2 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_END         0xFF  /**< Reserved for Future Use range #2 end. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL           0x00  /**< Local failure. */
+#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE          0x01  /**< Remote failure. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits
+ * @{ */
+#define BLE_GAP_CP_MIN_CONN_INTVL_NONE           0xFFFF  /**< No new minimum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MIN            0x0006  /**< Lowest minimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MAX            0x0C80  /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_NONE           0xFFFF  /**< No new maximum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MIN            0x0006  /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MAX            0x0C80  /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_SLAVE_LATENCY_MAX             0x01F3  /**< Highest slave latency permitted, in connection events. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE         0xFFFF  /**< No new supervision timeout specified in connect parameters. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN          0x000A  /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX          0x0C80  /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */
+/**@} */
+
+
+/**@brief GAP device name defines. */
+#define BLE_GAP_DEVNAME_DEFAULT                  "nRF5x" /**< Default device name value. */
+#define BLE_GAP_DEVNAME_DEFAULT_LEN              31      /**< Default number of octets in device name. */
+#define BLE_GAP_DEVNAME_MAX_LEN                  248     /**< Maximum number of octets in device name. */
+
+
+/**@brief Disable RSSI events for connections */
+#define BLE_GAP_RSSI_THRESHOLD_INVALID 0xFF
+
+
+/**@defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters
+ *
+ * See @ref ble_gap_conn_sec_mode_t.
+ * @{ */
+/**@brief Set sec_mode pointed to by ptr to have no access rights.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr)          do {(ptr)->sm = 0; (ptr)->lv = 0;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require no protection, open link.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)               do {(ptr)->sm = 1; (ptr)->lv = 1;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr)        do {(ptr)->sm = 1; (ptr)->lv = 2;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr)      do {(ptr)->sm = 1; (ptr)->lv = 3;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require LESC encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_LESC_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 4;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr)     do {(ptr)->sm = 2; (ptr)->lv = 1;} while (0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr)   do {(ptr)->sm = 2; (ptr)->lv = 2;} while (0)
+/**@} */
+
+
+/**@brief GAP Security Random Number Length. */
+#define BLE_GAP_SEC_RAND_LEN 8
+
+
+/**@brief GAP Security Key Length. */
+#define BLE_GAP_SEC_KEY_LEN 16
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key Length. */
+#define BLE_GAP_LESC_P256_PK_LEN 64
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman DHKey Length. */
+#define BLE_GAP_LESC_DHKEY_LEN   32
+
+
+/**@brief GAP Passkey Length. */
+#define BLE_GAP_PASSKEY_LEN 6
+
+
+/**@brief Maximum amount of addresses in the whitelist. */
+#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8)
+
+
+/**@brief Maximum amount of identities in the device identities list. */
+#define BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT (8)
+
+
+/**@defgroup GAP_SEC_MODES GAP Security Modes
+ * @{ */
+#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */
+/**@} */
+/** @} */
+
+
+/**@addtogroup BLE_GAP_STRUCTURES Structures
+ * @{ */
+
+/**@brief Bluetooth Low Energy address. */
+typedef struct
+{
+  uint8_t addr_id_peer : 1;       /**< Only valid for peer addresses.
+                                       Reference to peer in device identities list (as set with @ref sd_ble_gap_device_identities_set) when peer is using privacy. */
+  uint8_t addr_type    : 7;       /**< See @ref BLE_GAP_ADDR_TYPES. */
+  uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 48-bit address, LSB format. */
+} ble_gap_addr_t;
+
+
+/**@brief GAP connection parameters.
+ *
+ * @note  When ble_conn_params_t is received in an event, both min_conn_interval and
+ *        max_conn_interval will be equal to the connection interval set by the central.
+ *
+ * @note If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies:
+ *       conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval
+ *       that corresponds to the following Bluetooth Spec requirement:
+ *       The Supervision_Timeout in milliseconds shall be larger than
+ *       (1 + Conn_Latency) * Conn_Interval_Max * 2, where Conn_Interval_Max is given in milliseconds.
+ */
+typedef struct
+{
+  uint16_t min_conn_interval;         /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t max_conn_interval;         /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t slave_latency;             /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t conn_sup_timeout;          /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+} ble_gap_conn_params_t;
+
+
+/**@brief GAP connection security modes.
+ *
+ * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n
+ * Security Mode 1 Level 1: No security is needed (aka open link).\n
+ * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n
+ * Security Mode 1 Level 3: MITM protected encrypted link required.\n
+ * Security Mode 1 Level 4: LESC MITM protected encrypted link required.\n
+ * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n
+ * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n
+ */
+typedef struct
+{
+  uint8_t sm : 4;                     /**< Security Mode (1 or 2), 0 for no permissions at all. */
+  uint8_t lv : 4;                     /**< Level (1, 2, 3 or 4), 0 for no permissions at all. */
+
+} ble_gap_conn_sec_mode_t;
+
+
+/**@brief GAP connection security status.*/
+typedef struct
+{
+  ble_gap_conn_sec_mode_t sec_mode;           /**< Currently active security mode for this connection.*/
+  uint8_t                 encr_key_size;      /**< Length of currently active encryption key, 7 to 16 octets (only applicable for bonding procedures). */
+} ble_gap_conn_sec_t;
+
+
+/**
+ * @brief Device name and its properties
+ * @note If @ref max_len is more than @ref BLE_GAP_DEVNAME_DEFAULT_LEN and vloc is set to @ref BLE_GATTS_VLOC_STACK, the attribute table size must be increased to have room for the longer device name (see @ref ble_gatts_enable_params_t).
+ */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t  write_perm;   /**< Write permissions. */
+  uint8_t                  vloc:2;       /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 *p_value;      /**< Pointer to where the value (device name) is stored or will be stored.*/
+  uint16_t                 current_len;  /**< Current length in bytes of the memory pointed to by p_value.*/
+  uint16_t                 max_len;      /**< Maximum length in bytes of the memory pointed to by p_value.*/
+} ble_gap_device_name_t;
+
+
+/**
+ * @brief BLE GAP initialization parameters.
+ */
+typedef struct
+{
+  uint8_t                      periph_conn_count;  /**< Number of connections acting as a peripheral  */
+  uint8_t                      central_conn_count; /**< Number of connections acting as a central */
+  uint8_t                      central_sec_count;  /**< Number of SMP instances for all connections acting as a central. */
+  ble_gap_device_name_t const *p_device_name;      /**< Pointer to device name instance. If NULL, @ref sd_ble_enable() will set the device name to @ref BLE_GAP_DEVNAME_DEFAULT. */
+} ble_gap_enable_params_t;
+
+
+/**@brief Identity Resolving Key. */
+typedef struct
+{
+  uint8_t irk[BLE_GAP_SEC_KEY_LEN];   /**< Array containing IRK. */
+} ble_gap_irk_t;
+
+
+/**@brief Channel mask for RF channels used in advertising. */
+typedef struct
+{
+  uint8_t ch_37_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 37 */
+  uint8_t ch_38_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 38 */
+  uint8_t ch_39_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 39 */
+} ble_gap_adv_ch_mask_t;
+
+
+/**@brief GAP advertising parameters. */
+typedef struct
+{
+  uint8_t               type;                 /**< See @ref BLE_GAP_ADV_TYPES. */
+  ble_gap_addr_t const *p_peer_addr;          /**< Address of a known peer.
+                                                   - When privacy is enabled and the local device use @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE addresses, the device identity list is searched for a matching
+                                                     entry. If the local IRK for that device identity is set, the local IRK for that device will be used to generate the advertiser address field in the advertise packet.
+                                                   - If type is @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this must be set to the targeted initiator. If the initiator is in the device identity list,
+                                                     the peer IRK for that device will be used to generate the initiator address field in the ADV_DIRECT_IND packet. */
+  uint8_t               fp;                   /**< Filter Policy, see @ref BLE_GAP_ADV_FILTER_POLICIES. */
+  uint16_t              interval;             /**< Advertising interval between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s), see @ref BLE_GAP_ADV_INTERVALS.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for high duty cycle directed advertising.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, set @ref BLE_GAP_ADV_INTERVAL_MIN <= interval <= @ref BLE_GAP_ADV_INTERVAL_MAX for low duty cycle advertising.*/
+  uint16_t              timeout;              /**< Advertising timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. See also @ref BLE_GAP_ADV_TIMEOUT_VALUES. If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for High duty cycle directed advertising. */
+  ble_gap_adv_ch_mask_t channel_mask;         /**< Advertising channel mask. See @ref ble_gap_adv_ch_mask_t. */
+} ble_gap_adv_params_t;
+
+
+/**@brief GAP scanning parameters. */
+typedef struct
+{
+  uint8_t  active         : 1;  /**< If 1, perform active scanning (scan requests). */
+  uint8_t  use_whitelist  : 1;  /**< If 1, filter advertisers using current active whitelist. */
+  uint8_t  adv_dir_report : 1;  /**< If 1, also report directed advertisements where the initiator field is set to a private resolvable address,
+                                     even if the address did not resolve to an entry in the device identity list. A report will be generated
+                                     even if the peer is not in the whitelist. */
+  uint16_t interval;            /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+  uint16_t window;              /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+  uint16_t timeout;             /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
+} ble_gap_scan_params_t;
+
+
+/**@brief Device Privacy.
+ *
+ *        The privacy feature provides a way for the device to avoid being tracked over a period of time.
+ *        The privacy feature, when enabled, hides the local device identity and replaces it with a private address
+ *        that is automatically refreshed at a specified interval.
+ *
+ *        If a device still wants to be recognized by other peers, it needs to share it's Identity Resolving Key (IRK).
+ *        With this key, a device can generate a random private address that can only be recognized by peers in possession of that key,
+ *        and devices can establish connections without revealing their real identities.
+ *
+ * @note  If the device IRK is updated, the new IRK becomes the one to be distributed in all
+ *        bonding procedures performed after @ref sd_ble_gap_privacy_set returns.
+ *        The IRK distributed during bonding procedure is the device IRK that is active when @ref sd_ble_gap_sec_params_reply is called.
+ */
+typedef struct
+{
+  uint8_t        privacy_mode;         /**< Privacy mode, see @ref BLE_GAP_PRIVACY_MODES. Default is @ref BLE_GAP_PRIVACY_MODE_OFF. */
+  uint8_t        private_addr_type;    /**< The private address type must be either @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. */
+  uint16_t       private_addr_cycle_s; /**< Private address cycle interval in seconds. Providing an address cycle value of 0 will use the default value defined by @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S. */
+  ble_gap_irk_t *p_device_irk;         /**< When used as input, pointer to IRK structure that will be used as the default IRK. If NULL, the device default IRK will be used.
+                                            When used as output, pointer to IRK structure where the current default IRK will be written to. If NULL, this argument is ignored.
+                                            By default, the default IRK is used to generate random private resolvable addresses for the local device unless instructed otherwise. */
+} ble_gap_privacy_params_t;
+
+
+/** @brief Keys that can be exchanged during a bonding procedure. */
+typedef struct
+{
+  uint8_t enc     : 1;                        /**< Long Term Key and Master Identification. */
+  uint8_t id      : 1;                        /**< Identity Resolving Key and Identity Address Information. */
+  uint8_t sign    : 1;                        /**< Connection Signature Resolving Key. */
+  uint8_t link    : 1;                        /**< Derive the Link Key from the LTK. */
+} ble_gap_sec_kdist_t;
+
+
+/**@brief GAP security parameters. */
+typedef struct
+{
+  uint8_t               bond      : 1;             /**< Perform bonding. */
+  uint8_t               mitm      : 1;             /**< Enable Man In The Middle protection. */
+  uint8_t               lesc      : 1;             /**< Enable LE Secure Connection pairing. */
+  uint8_t               keypress  : 1;             /**< Enable generation of keypress notifications. */
+  uint8_t               io_caps   : 3;             /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */
+  uint8_t               oob       : 1;             /**< Out Of Band data available. */
+  uint8_t               min_key_size;              /**< Minimum encryption key size in octets between 7 and 16. If 0 then not applicable in this instance. */
+  uint8_t               max_key_size;              /**< Maximum encryption key size in octets between min_key_size and 16. */
+  ble_gap_sec_kdist_t   kdist_own;                 /**< Key distribution bitmap: keys that the local device will distribute. */
+  ble_gap_sec_kdist_t   kdist_peer;                /**< Key distribution bitmap: keys that the remote device will distribute. */
+} ble_gap_sec_params_t;
+
+
+/**@brief GAP Encryption Information. */
+typedef struct
+{
+  uint8_t   ltk[BLE_GAP_SEC_KEY_LEN];   /**< Long Term Key. */
+  uint8_t   lesc : 1;                   /**< Key generated using LE Secure Connections. */
+  uint8_t   auth : 1;                   /**< Authenticated Key. */
+  uint8_t   ltk_len : 6;                /**< LTK length in octets. */
+} ble_gap_enc_info_t;
+
+
+/**@brief GAP Master Identification. */
+typedef struct
+{
+  uint16_t  ediv;                       /**< Encrypted Diversifier. */
+  uint8_t   rand[BLE_GAP_SEC_RAND_LEN]; /**< Random Number. */
+} ble_gap_master_id_t;
+
+
+/**@brief GAP Signing Information. */
+typedef struct
+{
+  uint8_t   csrk[BLE_GAP_SEC_KEY_LEN];        /**< Connection Signature Resolving Key. */
+} ble_gap_sign_info_t;
+
+
+/**@brief GAP LE Secure Connections P-256 Public Key. */
+typedef struct
+{
+  uint8_t   pk[BLE_GAP_LESC_P256_PK_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key. Stored in the standard SMP protocol format: {X,Y} both in little-endian. */
+} ble_gap_lesc_p256_pk_t;
+
+
+/**@brief GAP LE Secure Connections DHKey. */
+typedef struct
+{
+  uint8_t   key[BLE_GAP_LESC_DHKEY_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman Key. Stored in little-endian. */
+} ble_gap_lesc_dhkey_t;
+
+
+/**@brief GAP LE Secure Connections OOB data. */
+typedef struct
+{
+  ble_gap_addr_t  addr;                          /**< Bluetooth address of the device. */
+  uint8_t         r[BLE_GAP_SEC_KEY_LEN];        /**< Random Number. */
+  uint8_t         c[BLE_GAP_SEC_KEY_LEN];        /**< Confirm Value. */
+} ble_gap_lesc_oob_data_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONNECTED. */
+typedef struct
+{
+  ble_gap_addr_t        peer_addr;              /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  uint8_t               role;                   /**< BLE role for this connection, see @ref BLE_GAP_ROLES */
+  ble_gap_conn_params_t conn_params;            /**< GAP Connection Parameters. */
+} ble_gap_evt_connected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_DISCONNECTED. */
+typedef struct
+{
+  uint8_t reason;                               /**< HCI error code, see @ref BLE_HCI_STATUS_CODES. */
+} ble_gap_evt_disconnected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. */
+typedef struct
+{
+  ble_gap_sec_params_t peer_params;             /**< Initiator Security Parameters. */
+} ble_gap_evt_sec_params_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_INFO_REQUEST. */
+typedef struct
+{
+  ble_gap_addr_t      peer_addr;                     /**< Bluetooth address of the peer device. */
+  ble_gap_master_id_t master_id;                     /**< Master Identification for LTK lookup. */
+  uint8_t             enc_info  : 1;                 /**< If 1, Encryption Information required. */
+  uint8_t             id_info   : 1;                 /**< If 1, Identity Information required. */
+  uint8_t             sign_info : 1;                 /**< If 1, Signing Information required. */
+} ble_gap_evt_sec_info_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_PASSKEY_DISPLAY. */
+typedef struct
+{
+  uint8_t passkey[BLE_GAP_PASSKEY_LEN];         /**< 6-digit passkey in ASCII ('0'-'9' digits only). */
+  uint8_t match_request : 1;                    /**< If 1 requires the application to report the match using @ref sd_ble_gap_auth_key_reply
+                                                     with either @ref BLE_GAP_AUTH_KEY_TYPE_NONE if there is no match or
+                                                     @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY if there is a match. */
+} ble_gap_evt_passkey_display_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_KEY_PRESSED. */
+typedef struct
+{
+  uint8_t kp_not;         /**< Keypress notification type, see @ref BLE_GAP_KP_NOT_TYPES. */
+} ble_gap_evt_key_pressed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_KEY_REQUEST. */
+typedef struct
+{
+  uint8_t key_type;                             /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */
+} ble_gap_evt_auth_key_request_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST. */
+typedef struct
+{
+  ble_gap_lesc_p256_pk_t *p_pk_peer;  /**< LE Secure Connections remote P-256 Public Key. This will point to the application-supplied memory
+                                           inside the keyset during the call to @ref sd_ble_gap_sec_params_reply. */
+  uint8_t oobd_req       :1;          /**< LESC OOB data required. A call to @ref sd_ble_gap_lesc_oob_data_set is required to complete the procedure. */
+} ble_gap_evt_lesc_dhkey_request_t;
+
+
+/**@brief Security levels supported.
+ * @note See Bluetooth Specification Version 4.2 Volume 3, Part C, Chapter 10, Section 10.2.1.
+*/
+typedef struct
+{
+  uint8_t lv1 : 1;                              /**< If 1: Level 1 is supported. */
+  uint8_t lv2 : 1;                              /**< If 1: Level 2 is supported. */
+  uint8_t lv3 : 1;                              /**< If 1: Level 3 is supported. */
+  uint8_t lv4 : 1;                              /**< If 1: Level 4 is supported. */
+} ble_gap_sec_levels_t;
+
+
+/**@brief Encryption Key. */
+typedef struct
+{
+  ble_gap_enc_info_t    enc_info;             /**< Encryption Information. */
+  ble_gap_master_id_t   master_id;            /**< Master Identification. */
+} ble_gap_enc_key_t;
+
+
+/**@brief Identity Key. */
+typedef struct
+{
+  ble_gap_irk_t         id_info;              /**< Identity Resolving Key. */
+  ble_gap_addr_t        id_addr_info;         /**< Identity Address. */
+} ble_gap_id_key_t;
+
+
+/**@brief Security Keys. */
+typedef struct
+{
+  ble_gap_enc_key_t      *p_enc_key;           /**< Encryption Key, or NULL. */
+  ble_gap_id_key_t       *p_id_key;            /**< Identity Key, or NULL. */
+  ble_gap_sign_info_t    *p_sign_key;          /**< Signing Key, or NULL. */
+  ble_gap_lesc_p256_pk_t *p_pk;                /**< LE Secure Connections P-256 Public Key. When in debug mode the application must use the value defined
+                                                    in the Core Bluetooth Specification v4.2 Vol.3, Part H, Section 2.3.5.6.1 */
+} ble_gap_sec_keys_t;
+
+
+/**@brief Security key set for both local and peer keys. */
+typedef struct
+{
+  ble_gap_sec_keys_t            keys_own;     /**< Keys distributed by the local device. For LE Secure Connections the encryption key will be generated locally and will always be stored if bonding. */
+  ble_gap_sec_keys_t            keys_peer;    /**< Keys distributed by the remote device. For LE Secure Connections, p_enc_key must always be NULL. */
+} ble_gap_sec_keyset_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_STATUS. */
+typedef struct
+{
+  uint8_t               auth_status;            /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */
+  uint8_t               error_src : 2;          /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */
+  uint8_t               bonded : 1;             /**< Procedure resulted in a bond. */
+  ble_gap_sec_levels_t  sm1_levels;             /**< Levels supported in Security Mode 1. */
+  ble_gap_sec_levels_t  sm2_levels;             /**< Levels supported in Security Mode 2. */
+  ble_gap_sec_kdist_t   kdist_own;              /**< Bitmap stating which keys were exchanged (distributed) by the local device. If bonding with LE Secure Connections, the enc bit will be always set. */
+  ble_gap_sec_kdist_t   kdist_peer;             /**< Bitmap stating which keys were exchanged (distributed) by the remote device. If bonding with LE Secure Connections, the enc bit will never be set. */
+} ble_gap_evt_auth_status_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_SEC_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_sec_t conn_sec;                  /**< Connection security level. */
+} ble_gap_evt_conn_sec_update_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t src;                                  /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */
+} ble_gap_evt_timeout_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_RSSI_CHANGED. */
+typedef struct
+{
+  int8_t  rssi;                               /**< Received Signal Strength Indication in dBm. */
+} ble_gap_evt_rssi_changed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_ADV_REPORT. */
+typedef struct
+{
+  ble_gap_addr_t peer_addr;                     /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  ble_gap_addr_t direct_addr;                   /**< Set when the scanner is unable to resolve the private resolvable address of the initiator
+                                                     field of a directed advertisement packet and the scanner has been enabled to report this in @ref ble_gap_scan_params_t::adv_dir_report. */
+  int8_t         rssi;                          /**< Received Signal Strength Indication in dBm. */
+  uint8_t        scan_rsp : 1;                  /**< If 1, the report corresponds to a scan response and the type field may be ignored. */
+  uint8_t        type     : 2;                  /**< See @ref BLE_GAP_ADV_TYPES. Only valid if the scan_rsp field is 0. */
+  uint8_t        dlen     : 5;                  /**< Advertising or scan response data length. */
+  uint8_t        data[BLE_GAP_ADV_MAX_SIZE];    /**< Advertising or scan response data. */
+} ble_gap_evt_adv_report_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_REQUEST. */
+typedef struct
+{
+  uint8_t    bond       : 1;                       /**< Perform bonding. */
+  uint8_t    mitm       : 1;                       /**< Man In The Middle protection requested. */
+  uint8_t    lesc       : 1;                       /**< LE Secure Connections requested. */
+  uint8_t    keypress   : 1;                       /**< Generation of keypress notifications requested. */
+} ble_gap_evt_sec_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SCAN_REQ_REPORT. */
+typedef struct
+{
+  int8_t                  rssi;              /**< Received Signal Strength Indication in dBm. */
+  ble_gap_addr_t          peer_addr;         /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                  and the address is the device's identity address. */
+} ble_gap_evt_scan_req_report_t;
+
+
+/**@brief GAP event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                     /**< Connection Handle on which event occurred. */
+  union                                                     /**< union alternative identified by evt_id in enclosing struct. */
+  {
+    ble_gap_evt_connected_t                   connected;                    /**< Connected Event Parameters. */
+    ble_gap_evt_disconnected_t                disconnected;                 /**< Disconnected Event Parameters. */
+    ble_gap_evt_conn_param_update_t           conn_param_update;            /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_sec_params_request_t          sec_params_request;           /**< Security Parameters Request Event Parameters. */
+    ble_gap_evt_sec_info_request_t            sec_info_request;             /**< Security Information Request Event Parameters. */
+    ble_gap_evt_passkey_display_t             passkey_display;              /**< Passkey Display Event Parameters. */
+    ble_gap_evt_key_pressed_t                 key_pressed;                  /**< Key Pressed Event Parameters. */
+    ble_gap_evt_auth_key_request_t            auth_key_request;             /**< Authentication Key Request Event Parameters. */
+    ble_gap_evt_lesc_dhkey_request_t          lesc_dhkey_request;           /**< LE Secure Connections DHKey calculation request. */
+    ble_gap_evt_auth_status_t                 auth_status;                  /**< Authentication Status Event Parameters. */
+    ble_gap_evt_conn_sec_update_t             conn_sec_update;              /**< Connection Security Update Event Parameters. */
+    ble_gap_evt_timeout_t                     timeout;                      /**< Timeout Event Parameters. */
+    ble_gap_evt_rssi_changed_t                rssi_changed;                 /**< RSSI Event parameters. */
+    ble_gap_evt_adv_report_t                  adv_report;                   /**< Advertising Report Event Parameters. */
+    ble_gap_evt_sec_request_t                 sec_request;                  /**< Security Request Event Parameters. */
+    ble_gap_evt_conn_param_update_request_t   conn_param_update_request;    /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_scan_req_report_t             scan_req_report;              /**< Scan Request Report parameters. */
+  } params;                                                                 /**< Event Parameters. */
+} ble_gap_evt_t;
+
+
+/**@brief Channel Map option.
+ *        Used with @ref sd_ble_opt_get to get the current channel map
+ *        or @ref sd_ble_opt_set to set a new channel map. When setting the
+ *        channel map, it applies to all current and future connections. When getting the
+ *        current channel map, it applies to a single connection and the connection handle
+ *        must be supplied.
+ *
+ * @note  Setting the channel map may take some time, depending on connection parameters.
+ *        The time taken may be different for each connection and the get operation will
+ *        return the previous channel map until the new one has taken effect.
+ *
+ * @note  After setting the channel map, by spec it can not be set again until at least 1 s has passed.
+ *        See Bluetooth Specification Version 4.1 Volume 2, Part E, Section 7.3.46.
+ *
+ * @retval ::NRF_SUCCESS Get or set successful.
+ * @retval ::NRF_ERROR_BUSY Channel map was set again before enough time had passed.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied for get.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Returned by sd_ble_opt_set in peripheral-only SoftDevices.
+ *
+ */
+typedef struct
+{
+  uint16_t conn_handle;                   /**< Connection Handle (only applicable for get) */
+  uint8_t ch_map[5];                      /**< Channel Map (37-bit). */
+} ble_gap_opt_ch_map_t;
+
+
+/**@brief Local connection latency option.
+ *
+ *        Local connection latency is a feature which enables the slave to improve
+ *        current consumption by ignoring the slave latency set by the peer. The
+ *        local connection latency can only be set to a multiple of the slave latency,
+ *        and cannot be longer than half of the supervision timeout.
+ *
+ *        Used with @ref sd_ble_opt_set to set the local connection latency. The
+ *        @ref sd_ble_opt_get is not supported for this option, but the actual
+ *        local connection latency (unless set to NULL) is set as a return parameter
+ *        when setting the option.
+ *
+ * @note  The latency set will be truncated down to the closest slave latency event
+ *        multiple, or the nearest multiple before half of the supervision timeout.
+ *
+ * @note  The local connection latency is disabled by default, and needs to be enabled for new
+ *        connections and whenever the connection is updated.
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   requested_latency;                 /**< Requested local connection latency. */
+  uint16_t * p_actual_latency;                  /**< Pointer to storage for the actual local connection latency (can be set to NULL to skip return value). */
+} ble_gap_opt_local_conn_latency_t;
+
+
+/**@brief Passkey Option.
+ *
+ *        Structure containing the passkey to be used during pairing. This can be used with @ref
+ *        sd_ble_opt_set to make the SoftDevice use a pre-programmed passkey for authentication
+ *        instead of generating a random one.
+ *
+ * @note  Repeated pairing attempts using the same pre-programmed passkey makes pairing vulnerable to MITM attacks.
+ *
+ * @note  @ref sd_ble_opt_get is not supported for this option.
+ *
+ */
+typedef struct
+{
+  uint8_t * p_passkey;                          /**< Pointer to 6-digit ASCII string (digit 0..9 only, no NULL termination) passkey to be used during pairing. If this is NULL, the SoftDevice will generate a random passkey if required.*/
+} ble_gap_opt_passkey_t;
+
+
+/**@brief Scan request report option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to make the SoftDevice send
+ *        @ref BLE_GAP_EVT_SCAN_REQ_REPORT events.
+ *
+ *  @note   Due to the limited space reserved for scan request report events,
+ *          not all received scan requests will be reported.
+ *
+ *  @note   If whitelisting is used, only whitelisted requests are reported.
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_STATE When advertising is ongoing while the option is set.
+ */
+typedef struct
+{
+   uint8_t enable : 1;                           /**< Enable scan request reports. */
+} ble_gap_opt_scan_req_report_t;
+
+
+/**@brief Compatibility mode option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to enable and disable
+ *        compatibility modes. Compatibility modes are disabled by default.
+ *
+ *  @note  Compatibility mode 1 enables interoperability with devices that do not support
+ *         a value of 0 for the WinOffset parameter in the Link Layer CONNECT_REQ packet.
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_STATE When connection creation is ongoing while mode 1 is set.
+ */
+typedef struct
+{
+   uint8_t mode_1_enable : 1;                           /**< Enable compatibility mode 1.*/
+} ble_gap_opt_compat_mode_t;
+
+/**@brief Data length extension option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to enable longer data packets.
+ *
+ * @note  An rxtx_max_pdu_payload_size of 0 will result in the default minimum payload size of 27.
+ * @note  Not supported by SoftDevices for nRF51 Series devices.
+ * @note  The parameters for a connection are applied when a connection complete
+ *        event is generated for the host.
+ *
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_PARAM If the payload size is not 0 or a valid link layer PDU payload size.
+ *  @retval ::NRF_ERROR_NOT_SUPPORTED If called on a SoftDevice designed for nRF51 (e.g. s130).
+ */
+typedef struct
+{
+  uint8_t  rxtx_max_pdu_payload_size;      /**< Max PDU payload size (in octets). */
+} ble_gap_opt_ext_len_t;
+
+
+
+/**@brief Authenticated payload timeout option.
+ *
+ * This can be used with @ref sd_ble_opt_set to change the Authenticated payload timeout to a value other than the default of 8 minutes.
+ *
+ * @note The authenticated payload timeout event ::BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD will be generated
+ * if auth_payload_timeout time has elapsed without receiving a packet with a valid MIC on an encrypted
+ * link.
+ *
+ * @note  The LE ping procedure will be initiated before the timer expires to give the peer a chance
+ * to reset the timer. In addition the stack will try to prioritize running of LE ping over other
+ * activities to increase chances of finishing LE ping before timer expires. To avoid side-effects
+ * on other activities, it is recommended to use high timeout values.
+ * Recommended timeout > 2*(connInterval * (6 + connSlaveLatency)).
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. auth_payload_timeout was outside of allowed range.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   auth_payload_timeout;              /**< Requested timeout in 10 ms unit. Maximum is 48 000 (=480 000 ms =8 min). Minimum is 1 (=10ms). */
+} ble_gap_opt_auth_payload_timeout_t;
+
+
+/**@brief Option structure for GAP options. */
+typedef union
+{
+  ble_gap_opt_ch_map_t                  ch_map;                    /**< Parameters for the Channel Map option. */
+  ble_gap_opt_local_conn_latency_t      local_conn_latency;        /**< Parameters for the Local connection latency option */
+  ble_gap_opt_passkey_t                 passkey;                   /**< Parameters for the Passkey option.*/
+  ble_gap_opt_scan_req_report_t         scan_req_report;           /**< Parameters for the scan request report option.*/
+  ble_gap_opt_compat_mode_t             compat_mode;               /**< Parameters for the compatibility mode option.*/
+  ble_gap_opt_ext_len_t                 ext_len;                   /**< Parameters for the extended length option. */
+  ble_gap_opt_auth_payload_timeout_t    auth_payload_timeout;      /**< Parameters for the authenticated payload timeout option.*/
+} ble_gap_opt_t;
+/**@} */
+
+
+/**@addtogroup BLE_GAP_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Set the local Bluetooth identity address.
+ *
+ * The local Bluetooth identity address is the address that identifies this device to other peers.
+ * The address type must be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ * The identity address cannot be changed while roles are running.
+ *
+ * @note This address will be distributed to the peer during bonding.
+ * If the address changes, the address stored in the peer device will not be valid and the ability to
+ * reconnect using the old address will be lost.
+ *
+ * @note By default the SoftDevice will set an address of type @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being
+ * enabled. The address is a random number populated during the IC manufacturing process and remains unchanged
+ * for the lifetime of each IC.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @endmscs
+ *
+ * @param[in] p_addr Pointer to address structure.
+ *
+ * @retval ::NRF_SUCCESS Address successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_STATE The identity address cannot be changed while the roles are running.
+ */
+SVCALL(SD_BLE_GAP_ADDR_SET, uint32_t, sd_ble_gap_addr_set(ble_gap_addr_t const *p_addr));
+
+
+/**@brief Get local Bluetooth identity address.
+ *
+ * @note This will always return the identity address irrespective of the privacy settings,
+ * i.e. the address type will always be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ *
+ * @param[out] p_addr Pointer to address structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Address successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_ADDR_GET, uint32_t, sd_ble_gap_addr_get(ble_gap_addr_t *p_addr));
+
+
+/**@brief Set the active whitelist in the SoftDevice.
+ *
+ * @note Only one whitelist can be used at a time and the whitelist is shared between the BLE roles.
+ *       The whitelist cannot be set if a BLE role is using the whitelist.
+ *
+ * @note If an address is resolved using the information in the device identity list, then the whitelist
+ *       filter policy applies to the peer identity address and not the resolvable address sent on air.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @endmscs
+ *
+ * @param[in] pp_wl_addrs Pointer to a whitelist of peer addresses, if NULL the whitelist will be cleared.
+ * @param[in] len         Length of the whitelist, maximum @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT.
+ *
+ * @retval ::NRF_SUCCESS The whitelist is successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The whitelist (or one of its entries) provided is invalid.
+ * @retval ::BLE_ERROR_GAP_WHITELIST_IN_USE The whitelist is in use by a BLE role and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given whitelist size is invalid (zero or too large); this can only return when
+ *                               pp_wl_addrs is not NULL.
+ */
+//lint -save -esym(18, sd_ble_gap_whitelist_set)
+SVCALL(SD_BLE_GAP_WHITELIST_SET, uint32_t, sd_ble_gap_whitelist_set(ble_gap_addr_t const * const * pp_wl_addrs, uint8_t len));
+//lint -restore
+
+/**@brief Set device identity list.
+ *
+ * @note Only one device identity list can be used at a time and the list is shared between the BLE roles.
+ *       The device identity list cannot be set if a BLE role is using the list.
+ *
+ * @param[in] pp_id_keys     Pointer to an array of peer identity addresses and peer IRKs, if NULL the device identity list will be cleared.
+ * @param[in] pp_local_irks  Pointer to an array of local IRKs. Each entry in the array maps to the entry in pp_id_keys at the same index.
+ *                           To fill in the list with the currently set device IRK for all peers, set to NULL.
+ * @param[in] len            Length of the device identity list, maximum @ref BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The device identity list successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The device identity list (or one of its entries) provided is invalid.
+                                    This code may be returned if the local IRK list also has an invalid entry.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE The device identity list is in use and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE The device identity list contains multiple entries with the same identity address.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given device identity list size invalid (zero or too large); this can
+ *                               only return when pp_id_keys is not NULL.
+ */
+//lint -save -esym(18, sd_ble_gap_device_identities_set)
+SVCALL(SD_BLE_GAP_DEVICE_IDENTITIES_SET, uint32_t, sd_ble_gap_device_identities_set(ble_gap_id_key_t const * const * pp_id_keys, ble_gap_irk_t const * const * pp_local_irks, uint8_t len));
+//lint -restore
+
+/**@brief Set privacy settings.
+ *
+ * @note Privacy settings cannot be set while BLE roles are running.
+ *
+ * @param[in] p_privacy_params Privacy settings.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer to privacy settings is NULL or invalid.
+                                    Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ * @retval ::NRF_ERROR_INVALID_PARAM Out of range parameters are provided.
+ * @retval ::NRF_ERROR_INVALID_STATE Privacy settings cannot be changed while BLE roles using privacy are enabled.
+  */
+SVCALL(SD_BLE_GAP_PRIVACY_SET, uint32_t, sd_ble_gap_privacy_set(ble_gap_privacy_params_t const *p_privacy_params));
+
+
+/**@brief Get privacy settings.
+ *
+ * @note The privacy settings returned include the current device irk as well.
+ *
+ * @param[in] p_privacy_params Privacy settings.
+ *
+ * @retval ::NRF_SUCCESS            Privacy settings read.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer given for returning the privacy settings may be NULL or invalid.
+                                    Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ */
+SVCALL(SD_BLE_GAP_PRIVACY_GET, uint32_t, sd_ble_gap_privacy_get(ble_gap_privacy_params_t *p_privacy_params));
+
+
+/**@brief Set, clear or update advertising and scan response data.
+ *
+ * @note The format of the advertising data will be checked by this call to ensure interoperability.
+ *       Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and
+ *       duplicating the local name in the advertising data and scan response data.
+ *
+ * @note To clear the advertising data and set it to a 0-length packet, simply provide a valid pointer (p_data/p_sr_data) with its corresponding
+ *        length (dlen/srdlen) set to 0.
+ *
+ * @note The call will fail if p_data and p_sr_data are both NULL since this would have no effect.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_data    Raw data to be placed in advertising packet. If NULL, no changes are made to the current advertising packet data.
+ * @param[in] dlen      Data length for p_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_data is NULL, can be 0 if p_data is not NULL.
+ * @param[in] p_sr_data Raw data to be placed in scan response packet. If NULL, no changes are made to the current scan response packet data.
+ * @param[in] srdlen    Data length for p_sr_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_sr_data is NULL, can be 0 if p_data is not NULL.
+ *
+ * @retval ::NRF_SUCCESS Advertising data successfully updated or cleared.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, both p_data and p_sr_data cannot be NULL.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied.
+ * @retval ::NRF_ERROR_INVALID_DATA Invalid data type(s) supplied, check the advertising data format specification.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported data type.
+ * @retval ::BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied.
+ */
+SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const *p_data, uint8_t dlen, uint8_t const *p_sr_data, uint8_t srdlen));
+
+
+/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @note An application can start an advertising procedure for broadcasting purposes while a connection
+ *       is active. After a @ref BLE_GAP_EVT_CONNECTED event is received, this function may therefore
+ *       be called to start a broadcast advertising procedure. The advertising procedure
+ *       cannot however be connectable (it must be of type @ref BLE_GAP_ADV_TYPE_ADV_SCAN_IND or
+ *       @ref BLE_GAP_ADV_TYPE_ADV_NONCONN_IND). @note Only one advertiser may be active at any time.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONNECTED, Generated after connection has been established through connectable advertising.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Advertisement has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_adv_params Pointer to advertising parameters structure.
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has started advertising.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached; connectable advertiser cannot be started.
+ * @retval ::NRF_ERROR_NO_MEM The configured memory pools (see @ref ble_conn_bw_counts_t) are not large enough for the
+ *                            bandwidth selected for this connection.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check the accepted ranges and limits.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Bluetooth address supplied.
+ * @retval ::BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Observer) and try again
+ */
+SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(ble_gap_adv_params_t const *p_adv_params));
+
+
+/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has stopped advertising.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in advertising state).
+ */
+SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(void));
+
+
+/**@brief Update connection parameters.
+ *
+ * @details In the central role this will initiate a Link Layer connection parameter update procedure,
+ *          otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for
+ *          the central to perform the procedure. In both cases, and regardless of success or failure, the application
+ *          will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event.
+ *
+ * @details This function can be used as a central both to reply to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST or to start the procedure unrequested.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_PARAM_UPDATE, Result of the connection parameter update procedure.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CPU_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_conn_params  Pointer to desired connection parameters. If NULL is provided on a peripheral role,
+ *                           the parameters in the PPCP characteristic of the GAP service will be used instead.
+ *                           If NULL is provided on a central role and in response to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST, the peripheral request will be rejected
+ *
+ * @retval ::NRF_SUCCESS The Connection Update procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, process pending events and wait for pending procedures to complete and retry.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Disconnect (GAP Link Termination).
+ *
+ * @details This call initiates the disconnection procedure, and its completion will be communicated to the application
+ *          with a @ref BLE_GAP_EVT_DISCONNECTED event.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_DISCONNECTED, Generated when disconnection procedure is complete.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are @ref BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION and @ref BLE_HCI_CONN_INTERVAL_UNACCEPTABLE).
+ *
+ * @retval ::NRF_SUCCESS The disconnection procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress).
+ */
+SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
+
+
+/**@brief Set the radio's transmit power.
+ *
+ * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, 3, and 4 dBm).
+ *
+ * @note The +3dBm setting is only available on nRF52 series ICs.
+ * @note The -30dBm setting is only available on nRF51 series ICs.
+ * @note The -40dBm setting is only available on nRF52 series ICs.
+ *
+ * @retval ::NRF_SUCCESS Successfully changed the transmit power.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
+
+
+/**@brief Set GAP Appearance value.
+ *
+ * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS  Appearance value set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance));
+
+
+/**@brief Get GAP Appearance value.
+ *
+ * @param[out] p_appearance Pointer to appearance (16-bit) to be filled in, see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS Appearance value retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t *p_appearance));
+
+
+/**@brief Set GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Get GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t *p_conn_params));
+
+
+/**@brief Set GAP device name.
+ *
+ * @param[in] p_write_perm Write permissions for the Device Name characteristic, see @ref ble_gap_conn_sec_mode_t.
+ * @param[in] p_dev_name Pointer to a UTF-8 encoded, <b>non NULL-terminated</b> string.
+ * @param[in] len Length of the UTF-8, <b>non NULL-terminated</b> string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *
+ * @note If the device name is located in application flash memory (see @ref ble_gap_device_name_t), it cannot be changed. Then @ref NRF_ERROR_FORBIDDEN will be returned.
+ *
+ * @retval ::NRF_SUCCESS GAP device name and permissions set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_FORBIDDEN Device name is not writable.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const *p_write_perm, uint8_t const *p_dev_name, uint16_t len));
+
+
+/**@brief Get GAP device name.
+ *
+ * @note          If the device name is longer than the size of the supplied buffer,
+ *                p_len will return the complete device name length,
+ *                and not the number of bytes actually returned in p_dev_name.
+ *                The application may use this information to allocate a suitable buffer size.
+ *
+ * @param[out]    p_dev_name Pointer to an empty buffer where the UTF-8 <b>non NULL-terminated</b> string will be placed. Set to NULL to obtain the complete device name length.
+ * @param[in,out] p_len      Length of the buffer pointed by p_dev_name, complete device name length on output.
+ *
+ * @retval ::NRF_SUCCESS GAP device name retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_len));
+
+
+/**@brief Initiate the GAP Authentication procedure.
+ *
+ * @details In the central role, this function will send an SMP Pairing Request (or an SMP Pairing Failed if rejected),
+ *          otherwise in the peripheral role, an SMP Security Request will be sent.
+ *
+ * @events
+ * @event{Depending on the security parameters set and the packet exchanges with the peer\, the following events may be generated:}
+ * @event{@ref BLE_GAP_EVT_SEC_PARAMS_REQUEST}
+ * @event{@ref BLE_GAP_EVT_SEC_INFO_REQUEST}
+ * @event{@ref BLE_GAP_EVT_PASSKEY_DISPLAY}
+ * @event{@ref BLE_GAP_EVT_KEY_PRESSED}
+ * @event{@ref BLE_GAP_EVT_AUTH_KEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_LESC_DHKEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE}
+ * @event{@ref BLE_GAP_EVT_AUTH_STATUS}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing or bonding procedure.
+ *                         In the peripheral role, only the bond, mitm, lesc and keypress fields of this structure are used.
+ *                         In the central role, this pointer may be NULL to reject a Security Request.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ * @retval ::NRF_ERROR_TIMEOUT A SMP timeout has occurred, and further SMP operations on this link is prohibited.
+ */
+SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const *p_sec_params));
+
+
+/**@brief Reply with GAP security parameters.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_CONFIRM_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_KS_TOO_SMALL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_APP_ERROR_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_REMOTE_PAIRING_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_TIMEOUT_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS.
+ * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure. In the central role this must be set to NULL, as the parameters have
+ *                         already been provided during a previous call to @ref sd_ble_gap_authenticate.
+ * @param[in,out] p_sec_keyset Pointer to a @ref ble_gap_sec_keyset_t security keyset structure. Any keys generated and/or distributed as a result of the ongoing security procedure
+ *                         will be stored into the memory referenced by the pointers inside this structure. The keys will be stored and available to the application
+ *                         upon reception of a @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *                         Note that the SoftDevice expects the application to provide memory for storing the
+ *                         peer's keys. So it must be ensured that the relevant pointers inside this structure are not NULL. The pointers to the local key
+ *                         can, however, be NULL, in which case, the local key data will not be available to the application upon reception of the
+ *                         @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security parameter from the application.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ */
+SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const *p_sec_params, ble_gap_sec_keyset_t const *p_sec_keyset));
+
+
+/**@brief Reply with an authentication key.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST or a @ref BLE_GAP_EVT_PASSKEY_DISPLAY, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES.
+ * @param[in] p_key If key type is @ref BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination)
+ *                     or NULL when confirming LE Secure Connections Numeric Comparison.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in Little Endian format.
+ *
+ * @retval ::NRF_SUCCESS Authentication key successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const *p_key));
+
+/**@brief Reply with an LE Secure connections DHKey.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_dhkey LE Secure Connections DHKey.
+ *
+ * @retval ::NRF_SUCCESS DHKey successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_DHKEY_REPLY, uint32_t, sd_ble_gap_lesc_dhkey_reply(uint16_t conn_handle, ble_gap_lesc_dhkey_t const *p_dhkey));
+
+/**@brief Notify the peer of a local keypress.
+ *
+ * @details This function can only be used when an authentication procedure using LE Secure Connection is in progress. Calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] kp_not See @ref BLE_GAP_KP_NOT_TYPES.
+ *
+ * @retval ::NRF_SUCCESS Keypress notification successfully queued for transmission.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either not entering a passkey or keypresses have not been enabled by both peers.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GAP_KEYPRESS_NOTIFY, uint32_t, sd_ble_gap_keypress_notify(uint16_t conn_handle, uint8_t kp_not));
+
+/**@brief Generate a set of OOB data to send to a peer out of band.
+ *
+ * @note The @ref ble_gap_addr_t included in the OOB data returned will be the currently active one (or, if a connection has already been established,
+ *       the one used during connection setup). The application may manually overwrite it with an updated value.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle. Can be BLE_CONN_HANDLE_INVALID if a BLE connection has not been established yet.
+ * @param[in] p_pk_own LE Secure Connections local P-256 Public Key.
+ * @param[out] p_oobd_own The OOB data to be sent out of band to a peer.
+ *
+ * @retval ::NRF_SUCCESS OOB data successfully generated.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_GET, uint32_t, sd_ble_gap_lesc_oob_data_get(uint16_t conn_handle, ble_gap_lesc_p256_pk_t const *p_pk_own, ble_gap_lesc_oob_data_t *p_oobd_own));
+
+/**@brief Provide the OOB data sent/received out of band.
+ *
+ * @note At least one of the 2 pointers provided must be different from NULL.
+ * @note An authentication procedure with OOB selected as an algorithm must be in progress when calling this function.
+ * @note A @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST event with the oobd_req set to 1 must have been received prior to calling this function.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_oobd_own The OOB data sent out of band to a peer or NULL if none sent.
+ * @param[in] p_oobd_peer The OOB data received out of band from a peer or NULL if none received.
+ *
+ * @retval ::NRF_SUCCESS OOB data accepted.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_SET, uint32_t, sd_ble_gap_lesc_oob_data_set(uint16_t conn_handle, ble_gap_lesc_oob_data_t const *p_oobd_own, ble_gap_lesc_oob_data_t const *p_oobd_peer));
+
+/**@brief Initiate GAP Encryption procedure.
+ *
+ * @details In the central role, this function will initiate the encryption procedure using the encryption information provided.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE, The connection security has been updated.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_master_id Pointer to a @ref ble_gap_master_id_t master identification structure.
+ * @param[in] p_enc_info  Pointer to a @ref ble_gap_enc_info_t encryption information structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::BLE_ERROR_INVALID_ROLE Operation is not supported in the Peripheral role.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, wait for pending procedures to complete and retry.
+ */
+SVCALL(SD_BLE_GAP_ENCRYPT, uint32_t, sd_ble_gap_encrypt(uint16_t conn_handle, ble_gap_master_id_t const *p_master_id, ble_gap_enc_info_t const *p_enc_info));
+
+
+/**@brief Reply with GAP security information.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ * @note    Data signing is not yet supported, and p_sign_info must therefore be NULL.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_ENC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available.
+ * @param[in] p_id_info Pointer to a @ref ble_gap_irk_t identity information structure. May be NULL to signal none is available.
+ * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security information.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const *p_enc_info, ble_gap_irk_t const *p_id_info, ble_gap_sign_info_t const *p_sign_info));
+
+
+/**@brief Get the current connection security.
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_conn_sec  Pointer to a @ref ble_gap_conn_sec_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Current connection security successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t *p_conn_sec));
+
+
+/**@brief Start reporting the received signal strength to the application.
+ *
+ * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_RSSI_CHANGED, New RSSI data available. How often the event is generated is
+                                         dependent on the settings of the <code>threshold_dbm</code>
+                                         and <code>skip_count</code> input parameters.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle        Connection handle.
+ * @param[in] threshold_dbm      Minimum change in dBm before triggering the @ref BLE_GAP_EVT_RSSI_CHANGED event. Events are disabled if threshold_dbm equals @ref BLE_GAP_RSSI_THRESHOLD_INVALID.
+ * @param[in] skip_count         Number of RSSI samples with a change of threshold_dbm or more before sending a new @ref BLE_GAP_EVT_RSSI_CHANGED event.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully activated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Disconnection in progress. Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle, uint8_t threshold_dbm, uint8_t skip_count));
+
+
+/**@brief Stop reporting the received signal strength.
+ *
+ * @note An RSSI change detected before the call but not yet received by the application
+ * may be reported after @ref sd_ble_gap_rssi_stop has been called.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully deactivated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle));
+
+
+/**@brief Get the received signal strength for the last connection event.
+ *
+ * @ref sd_ble_gap_rssi_start must be called to start reporting RSSI before using this function. @ref NRF_ERROR_NOT_FOUND
+ * will be returned until RSSI was sampled for the first time after calling @ref sd_ble_gap_rssi_start.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @endmscs
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_rssi      Pointer to the location where the RSSI measurement shall be stored.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully read the RSSI.
+ * @retval ::NRF_ERROR_NOT_FOUND           No sample is available.
+ * @retval ::NRF_ERROR_INVALID_ADDR        Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE       RSSI reporting is not ongoing, or disconnection in progress.
+ */
+SVCALL(SD_BLE_GAP_RSSI_GET, uint32_t, sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi));
+
+
+/**@brief Start scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_ADV_REPORT, An advertising or scan response packet has been received.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Scanner has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_SCAN_START, uint32_t, sd_ble_gap_scan_start(ble_gap_scan_params_t const *p_scan_params));
+
+
+/**@brief Stop scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully stopped scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in scanning state).
+ */
+SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void));
+
+
+/**@brief Create a connection (GAP Link Establishment).
+ *
+ * @note If a scanning procedure is currently in progress it will be automatically stopped when calling this function.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] p_peer_addr   Pointer to peer address. If the use_whitelist bit is set in @ref ble_gap_scan_params_t, then this is ignored.
+ *                          If @ref ble_gap_addr_t::addr_id_peer is set then p_peer_addr must be present in the device identity list
+ *                          see @ref sd_ble_gap_device_identities_set.
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ * @param[in] p_conn_params Pointer to desired connection parameters.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated connection procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid parameter(s) pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+                                     - Invalid parameter(s) in p_scan_params or p_conn_params.
+                                     - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set.
+                                     - Peer address was not present in the device identity list, see @ref sd_ble_gap_device_identities_set.
+ * @retval ::NRF_ERROR_INVALID_STATE The SoftDevice is in an invalid state to perform this operation. This may be due to an
+ *                                   existing locally initiated connect procedure, which must complete before initiating again.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Peer address.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached.
+ * @retval ::NRF_ERROR_NO_MEM The configured memory pool (see @ref ble_conn_bw_counts_t) is not large enough for the
+ *                            bandwidth selected for this connection.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry. If another connection is being established
+ *                          wait for the corresponding @ref BLE_GAP_EVT_CONNECTED event before calling again.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_CONNECT, uint32_t, sd_ble_gap_connect(ble_gap_addr_t const *p_peer_addr, ble_gap_scan_params_t const *p_scan_params, ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Cancel a connection establishment.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully cancelled an ongoing connection procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ */
+SVCALL(SD_BLE_GAP_CONNECT_CANCEL, uint32_t, sd_ble_gap_connect_cancel(void));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GAP_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gattc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gattc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/ble_gattc.h
@@ -0,0 +1,674 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+  @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client
+  @{
+  @brief  Definitions and prototypes for the GATT Client interface.
+ */
+
+#ifndef BLE_GATTC_H__
+#define BLE_GATTC_H__
+
+#include "ble_gatt.h"
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** @addtogroup BLE_GATTC_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GATTC API SVC numbers. */
+enum BLE_GATTC_SVCS
+{
+  SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */
+  SD_BLE_GATTC_RELATIONSHIPS_DISCOVER,                         /**< Relationship Discovery. */
+  SD_BLE_GATTC_CHARACTERISTICS_DISCOVER,                       /**< Characteristic Discovery. */
+  SD_BLE_GATTC_DESCRIPTORS_DISCOVER,                           /**< Characteristic Descriptor Discovery. */
+  SD_BLE_GATTC_ATTR_INFO_DISCOVER,                             /**< Attribute Information Discovery. */
+  SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ,                        /**< Read Characteristic Value by UUID. */
+  SD_BLE_GATTC_READ,                                           /**< Generic read. */
+  SD_BLE_GATTC_CHAR_VALUES_READ,                               /**< Read multiple Characteristic Values. */
+  SD_BLE_GATTC_WRITE,                                          /**< Generic write. */
+  SD_BLE_GATTC_HV_CONFIRM,                                     /**< Handle Value Confirmation. */
+  SD_BLE_GATTC_EXCHANGE_MTU_REQUEST,                           /**< Exchange MTU Request. */
+};
+
+/**
+ * @brief GATT Client Event IDs.
+ */
+enum BLE_GATTC_EVTS
+{
+  BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE,  /**< Primary Service Discovery Response event.      \n See @ref ble_gattc_evt_prim_srvc_disc_rsp_t.          */
+  BLE_GATTC_EVT_REL_DISC_RSP,                             /**< Relationship Discovery Response event.         \n See @ref ble_gattc_evt_rel_disc_rsp_t.                */
+  BLE_GATTC_EVT_CHAR_DISC_RSP,                            /**< Characteristic Discovery Response event.       \n See @ref ble_gattc_evt_char_disc_rsp_t.               */
+  BLE_GATTC_EVT_DESC_DISC_RSP,                            /**< Descriptor Discovery Response event.           \n See @ref ble_gattc_evt_desc_disc_rsp_t.               */
+  BLE_GATTC_EVT_ATTR_INFO_DISC_RSP,                       /**< Attribute Information Response event.          \n See @ref ble_gattc_evt_attr_info_disc_rsp_t. */
+  BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP,                /**< Read By UUID Response event.                   \n See @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t.   */
+  BLE_GATTC_EVT_READ_RSP,                                 /**< Read Response event.                           \n See @ref ble_gattc_evt_read_rsp_t.                    */
+  BLE_GATTC_EVT_CHAR_VALS_READ_RSP,                       /**< Read multiple Response event.                  \n See @ref ble_gattc_evt_char_vals_read_rsp_t.          */
+  BLE_GATTC_EVT_WRITE_RSP,                                /**< Write Response event.                          \n See @ref ble_gattc_evt_write_rsp_t.                   */
+  BLE_GATTC_EVT_HVX,                                      /**< Handle Value Notification or Indication event. \n Confirm indication with @ref sd_ble_gattc_hv_confirm.  \n See @ref ble_gattc_evt_hvx_t. */
+  BLE_GATTC_EVT_EXCHANGE_MTU_RSP,                         /**< Exchange MTU Response event.                   \n See @ref ble_gattc_evt_exchange_mtu_rsp_t.            */
+  BLE_GATTC_EVT_TIMEOUT                                   /**< Timeout event.                                 \n See @ref ble_gattc_evt_timeout_t.                     */
+};
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC
+ * @{ */
+#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED    (NRF_GATTC_ERR_BASE + 0x000) /**< Procedure not Permitted. */
+/** @} */
+
+/** @defgroup BLE_GATTC_ATTR_INFO_FORMAT Attribute Information Formats
+ * @{ */
+#define BLE_GATTC_ATTR_INFO_FORMAT_16BIT    1 /**< 16-bit Attribute Information Format. */
+#define BLE_GATTC_ATTR_INFO_FORMAT_128BIT   2 /**< 128-bit Attribute Information Format. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_STRUCTURES Structures
+ * @{ */
+
+/**@brief Operation Handle Range. */
+typedef struct
+{
+  uint16_t          start_handle; /**< Start Handle. */
+  uint16_t          end_handle;   /**< End Handle. */
+} ble_gattc_handle_range_t;
+
+
+/**@brief GATT service. */
+typedef struct
+{
+  ble_uuid_t               uuid;          /**< Service UUID. */
+  ble_gattc_handle_range_t handle_range;  /**< Service Handle Range. */
+} ble_gattc_service_t;
+
+
+/**@brief  GATT include. */
+typedef struct
+{
+  uint16_t            handle;           /**< Include Handle. */
+  ble_gattc_service_t included_srvc;    /**< Handle of the included service. */
+} ble_gattc_include_t;
+
+
+/**@brief GATT characteristic. */
+typedef struct
+{
+  ble_uuid_t              uuid;                 /**< Characteristic UUID. */
+  ble_gatt_char_props_t   char_props;           /**< Characteristic Properties. */
+  uint8_t                 char_ext_props : 1;   /**< Extended properties present. */
+  uint16_t                handle_decl;          /**< Handle of the Characteristic Declaration. */
+  uint16_t                handle_value;         /**< Handle of the Characteristic Value. */
+} ble_gattc_char_t;
+
+
+/**@brief GATT descriptor. */
+typedef struct
+{
+  uint16_t          handle;         /**< Descriptor Handle. */
+  ble_uuid_t        uuid;           /**< Descriptor UUID. */
+} ble_gattc_desc_t;
+
+
+/**@brief Write Parameters. */
+typedef struct
+{
+  uint8_t        write_op;             /**< Write Operation to be performed, see @ref BLE_GATT_WRITE_OPS. */
+  uint8_t        flags;                /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */
+  uint16_t       handle;               /**< Handle to the attribute to be written. */
+  uint16_t       offset;               /**< Offset in bytes. @note For WRITE_CMD and WRITE_REQ, offset must be 0. */
+  uint16_t       len;                  /**< Length of data in bytes. */
+  uint8_t const *p_value;              /**< Pointer to the value data. */
+} ble_gattc_write_params_t;
+
+/**@brief Attribute Information for 16-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid_t     uuid;                 /**< 16-bit Attribute UUID. */
+} ble_gattc_attr_info16_t;
+
+/**@brief Attribute Information for 128-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid128_t  uuid;                 /**< 128-bit Attribute UUID. */
+} ble_gattc_attr_info128_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Service count. */
+  ble_gattc_service_t services[1];      /**< Service data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_prim_srvc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_REL_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Include count. */
+  ble_gattc_include_t includes[1];      /**< Include data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_rel_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Characteristic count. */
+  ble_gattc_char_t    chars[1];       /**< Characteristic data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_DESC_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Descriptor count. */
+  ble_gattc_desc_t    descs[1];       /**< Descriptor data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_desc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP. */
+typedef struct
+{
+  uint16_t                     count;            /**< Attribute count. */
+  uint8_t                      format;           /**< Attribute information format, see @ref BLE_GATTC_ATTR_INFO_FORMAT. */
+  union {
+    ble_gattc_attr_info16_t  attr_info16[1];     /**< Attribute information for 16-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+    ble_gattc_attr_info128_t attr_info128[1];    /**< Attribute information for 128-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+  } info;                                        /**< Attribute information union. */
+} ble_gattc_evt_attr_info_disc_rsp_t;
+
+/**@brief GATT read by UUID handle value pair. */
+typedef struct
+{
+  uint16_t            handle;          /**< Attribute Handle. */
+  uint8_t            *p_value;         /**< Pointer to the Attribute Value, length is available in @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t::value_len. */
+} ble_gattc_handle_value_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */
+typedef struct
+{
+  uint16_t                  count;            /**< Handle-Value Pair Count. */
+  uint16_t                  value_len;        /**< Length of the value in Handle-Value(s) list. */
+  uint8_t                   handle_value[1];  /**< Handle-Value(s) list. To iterate through the list use @ref sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter.
+                                                   @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                   See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_val_by_uuid_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_READ_RSP. */
+typedef struct
+{
+  uint16_t            handle;         /**< Attribute Handle. */
+  uint16_t            offset;         /**< Offset of the attribute data. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */
+typedef struct
+{
+  uint16_t            len;            /**< Concatenated Attribute values length. */
+  uint8_t             values[1];      /**< Attribute values. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_vals_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_RSP. */
+typedef struct
+{
+  uint16_t            handle;           /**< Attribute Handle. */
+  uint8_t             write_op;         /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */
+  uint16_t            offset;           /**< Data offset. */
+  uint16_t            len;              /**< Data length. */
+  uint8_t             data[1];          /**< Data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_write_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_HVX. */
+typedef struct
+{
+  uint16_t            handle;         /**< Handle to which the HVx operation applies. */
+  uint8_t             type;           /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_hvx_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. */
+typedef struct
+{
+  uint16_t          server_rx_mtu;            /**< Server RX MTU size. */
+} ble_gattc_evt_exchange_mtu_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gattc_evt_timeout_t;
+
+/**@brief GATTC event structure. */
+typedef struct
+{
+  uint16_t            conn_handle;                /**< Connection Handle on which event occured. */
+  uint16_t            gatt_status;                /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint16_t            error_handle;               /**< In case of error: The handle causing the error. In all other cases @ref BLE_GATT_HANDLE_INVALID. */
+  union
+  {
+    ble_gattc_evt_prim_srvc_disc_rsp_t          prim_srvc_disc_rsp;         /**< Primary Service Discovery Response Event Parameters. */
+    ble_gattc_evt_rel_disc_rsp_t                rel_disc_rsp;               /**< Relationship Discovery Response Event Parameters. */
+    ble_gattc_evt_char_disc_rsp_t               char_disc_rsp;              /**< Characteristic Discovery Response Event Parameters. */
+    ble_gattc_evt_desc_disc_rsp_t               desc_disc_rsp;              /**< Descriptor Discovery Response Event Parameters. */
+    ble_gattc_evt_char_val_by_uuid_read_rsp_t   char_val_by_uuid_read_rsp;  /**< Characteristic Value Read by UUID Response Event Parameters. */
+    ble_gattc_evt_read_rsp_t                    read_rsp;                   /**< Read Response Event Parameters. */
+    ble_gattc_evt_char_vals_read_rsp_t          char_vals_read_rsp;         /**< Characteristic Values Read Response Event Parameters. */
+    ble_gattc_evt_write_rsp_t                   write_rsp;                  /**< Write Response Event Parameters. */
+    ble_gattc_evt_hvx_t                         hvx;                        /**< Handle Value Notification/Indication Event Parameters. */
+    ble_gattc_evt_exchange_mtu_rsp_t            exchange_mtu_rsp;           /**< Exchange MTU Response Event Parameters. */
+    ble_gattc_evt_timeout_t                     timeout;                    /**< Timeout Event Parameters. */
+    ble_gattc_evt_attr_info_disc_rsp_t          attr_info_disc_rsp;         /**< Attribute Information Discovery Event Parameters. */
+  } params;                                                                 /**< Event Parameters. @note Only valid if @ref gatt_status == @ref BLE_GATT_STATUS_SUCCESS. */
+} ble_gattc_evt_t;
+/** @} */
+
+/** @addtogroup BLE_GATTC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initiate or continue a GATT Primary Service Discovery procedure.
+ *
+ * @details This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle.
+ *          If the last service has not been reached, this function must be called again with an updated start handle value to continue the search.
+ *
+ * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_PRIM_SRVC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] start_handle Handle to start searching from.
+ * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const *p_srvc_uuid));
+
+
+/**@brief Initiate or continue a GATT Relationship Discovery procedure.
+ *
+ * @details This function initiates or resumes the Find Included Services sub-procedure. If the last included service has not been reached,
+ *          this must be called again with an updated handle range to continue the search.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_REL_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_REL_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic discovery procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_CHAR_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_DESC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_DESC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure.
+ *
+ * @details This function initiates or resumes a Read using Characteristic UUID procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_UUID_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_uuid Pointer to a Characteristic value UUID to read.
+ * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const *p_uuid, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure.
+ *
+ * @details This function initiates or resumes a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor
+ *          to be read is longer than ATT_MTU - 1, this function must be called multiple times with appropriate offset to read the
+ *          complete value.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_READ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute to be read.
+ * @param[in] offset Offset into the attribute value to be read.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read (Long) procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset));
+
+
+/**@brief Initiate a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @details This function initiates a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_MULT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read.
+ * @param[in] handle_count The number of handles in p_handles.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const *p_handles, uint16_t handle_count));
+
+
+/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure.
+ *
+ * @details This function can perform all write procedures described in GATT.
+ *
+ * @note    It is important to note that a write without response will <b>consume an application buffer</b>, and will therefore
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. A write (with response) on the other hand will use the
+ *          standard client internal buffer and thus will only generate a @ref BLE_GATTC_EVT_WRITE_RSP event as soon as the write response
+ *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_packet_count_get for more details.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_WRITE_RSP, Generated when using write request or queued writes.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_LONG_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_RELIABLE_WRITE_MSC}
+ * @mmsc{@ref BLE_COMMON_APP_BUFF_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_write_params A pointer to a write parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Write procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress.
+ * @retval ::BLE_ERROR_NO_TX_PACKETS No available application packets for this connection.
+ */
+SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const *p_write_params));
+
+
+/**@brief Send a Handle Value Confirmation to the GATT Server.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_HVI_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute in the indication.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no Indication pending to be confirmed.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle.
+ */
+SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle));
+
+/**@brief Discovers information about a range of attributes on a GATT server.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, Generated when information about a range of attributes has been received.}
+ * @endevents
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range The range of handles to request information about.
+ *
+ * @retval ::NRF_SUCCESS Successfully started an attribute information discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state
+ * @retval ::NRF_ERROR_INVALID_ADDR  Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_ATTR_INFO_DISCOVER, uint32_t, sd_ble_gattc_attr_info_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * p_handle_range));
+
+/**@brief Start an ATT_MTU exchange by sending an Exchange MTU Request to the server.
+ *
+ * @details The SoftDevice sets ATT_MTU to the minimum of:
+ *          - The Client RX MTU value, and
+ *          - The Server RX MTU value from @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP.
+ *
+ *          However, the SoftDevice never sets ATT_MTU lower than @ref GATT_MTU_SIZE_DEFAULT.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP}
+ * @event{@ref BLE_EVT_DATA_LENGTH_CHANGED, Generated if a data length update procedure is performed after the ATT_MTU exchange.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_MTU_EXCHANGE}
+ * @endmscs
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] client_rx_mtu  Client RX MTU size.
+ *                           - The minimum value is @ref GATT_MTU_SIZE_DEFAULT.
+ *                           - The maximum value is @ref ble_gatt_enable_params_t::att_mtu.
+ *                           - The value must be equal to Server RX MTU size given in @ref sd_ble_gatts_exchange_mtu_reply
+ *                             if an ATT_MTU exchange has already been performed in the other direction.
+ *
+ * @retval ::NRF_SUCCESS Successfully sent request to the server.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state or an ATT_MTU exchange was already requested once.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid Client RX MTU size supplied.
+ * @retval ::NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, uint32_t, sd_ble_gattc_exchange_mtu_request(uint16_t conn_handle, uint16_t client_rx_mtu));
+
+/**@brief Iterate through Handle-Value(s) list in @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *
+ * @param[in] p_gattc_evt  Pointer to event buffer containing @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *                         @note If the buffer contains different event, behavior is undefined.
+ * @param[in,out] p_iter   Iterator, points to @ref ble_gattc_handle_value_t structure that will be filled in with
+ *                         the next Handle-Value pair in each iteration. If the function returns other than
+ *                         @ref NRF_SUCCESS, it will not be changed.
+ *                         - To start iteration, initialize the structure to zero.
+ *                         - To continue, pass the value from previous iteration.
+ *
+ * \code
+ * ble_gattc_handle_value_t iter;
+ * memset(&iter, 0, sizeof(ble_gattc_handle_value_t));
+ * while (sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(&ble_evt.evt.gattc_evt, &iter) == NRF_SUCCESS)
+ * {
+ *   app_handle = iter.handle;
+ *   memcpy(app_value, iter.p_value, ble_evt.evt.gattc_evt.params.char_val_by_uuid_read_rsp.value_len);
+ * }
+ * \endcode
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the next Handle-Value pair.
+ * @retval ::NRF_ERROR_NOT_FOUND No more Handle-Value pairs available in the list.
+ */
+
+#ifndef __STATIC_INLINE
+#define __STATIC_INLINE static inline
+#endif
+#if (__LINT__ != 1)
+__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter);
+#endif // #ifdef (__LINT__ != 1)
+
+
+#ifndef SUPPRESS_INLINE_IMPLEMENTATION
+
+__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter)
+{
+  uint32_t value_len = p_gattc_evt->params.char_val_by_uuid_read_rsp.value_len;
+  uint8_t *p_first = p_gattc_evt->params.char_val_by_uuid_read_rsp.handle_value;
+  uint8_t *p_next = p_iter->p_value ? p_iter->p_value + value_len : p_first;
+
+  if ((p_next - p_first) / (sizeof(uint16_t) + value_len) < p_gattc_evt->params.char_val_by_uuid_read_rsp.count)
+  {
+    p_iter->handle = (uint16_t)p_next[1] << 8 | p_next[0];
+    p_iter->p_value = p_next + sizeof(uint16_t);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_NOT_FOUND;
+  }
+}
+
+#endif // #ifndef SUPPRESS_INLINE_IMPLEMENTATION
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_GATTC_H__ */
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/nrf_nvic.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/nrf_nvic.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/nrf_nvic.h
@@ -0,0 +1,546 @@
+/*
+ * Copyright (c) Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright notice, this
+ *   list of conditions and the following disclaimer in the documentation and/or
+ *   other materials provided with the distribution.
+ *
+ *   3. Neither the name of Nordic Semiconductor ASA nor the names of other
+ *   contributors to this software may be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ *   4. This software must only be used in a processor manufactured by Nordic
+ *   Semiconductor ASA, or in a processor manufactured by a third party that
+ *   is used in combination with a processor manufactured by Nordic Semiconductor.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/**
+ * @defgroup nrf_nvic_api SoftDevice NVIC API
+ * @{
+ *
+ * @note In order to use this module, the following code has to be added to a .c file:
+ *     \code
+ *     nrf_nvic_state_t nrf_nvic_state = {0};
+ *     \endcode
+ *
+ * @note Definitions and declarations starting with __ (double underscore) in this header file are
+ * not intended for direct use by the application.
+ *
+ * @brief APIs for the accessing NVIC when using a SoftDevice.
+ *
+ */
+
+#ifndef NRF_NVIC_H__
+#define NRF_NVIC_H__
+
+#include <stdint.h>
+#include "nrf.h"
+
+#include "nrf_error_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**@addtogroup NRF_NVIC_DEFINES Defines
+ * @{ */
+
+/**@defgroup NRF_NVIC_ISER_DEFINES SoftDevice NVIC internal definitions
+ * @{ */
+
+#define __NRF_NVIC_NVMC_IRQn (30) /**< The peripheral ID of the NVMC. IRQ numbers are used to identify peripherals, but the NVMC doesn't have an IRQ number in the MDK. */
+
+#ifdef NRF51
+  #define __NRF_NVIC_ISER_COUNT (1) /**< The number of ISER/ICER registers in the NVIC that are used. */
+
+  /**@brief Interrupts used by the SoftDevice. */
+  #define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \
+        (1U << POWER_CLOCK_IRQn) \
+      | (1U << RADIO_IRQn) \
+      | (1U << RTC0_IRQn) \
+      | (1U << TIMER0_IRQn) \
+      | (1U << RNG_IRQn) \
+      | (1U << ECB_IRQn) \
+      | (1U << CCM_AAR_IRQn) \
+      | (1U << TEMP_IRQn) \
+      | (1U << __NRF_NVIC_NVMC_IRQn) \
+      | (1U << (uint32_t)SWI4_IRQn) \
+      | (1U << (uint32_t)SWI5_IRQn) \
+    ))
+
+  /**@brief Interrupts available for to application. */
+  #define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0)
+#endif
+
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  #define __NRF_NVIC_ISER_COUNT (2) /**< The number of ISER/ICER registers in the NVIC that are used. */
+
+  /**@brief Interrupts used by the SoftDevice. */
+  #define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \
+        (1U << POWER_CLOCK_IRQn) \
+      | (1U << RADIO_IRQn) \
+      | (1U << RTC0_IRQn) \
+      | (1U << TIMER0_IRQn) \
+      | (1U << RNG_IRQn) \
+      | (1U << ECB_IRQn) \
+      | (1U << CCM_AAR_IRQn) \
+      | (1U << TEMP_IRQn) \
+      | (1U << __NRF_NVIC_NVMC_IRQn) \
+      | (1U << (uint32_t)SWI4_EGU4_IRQn) \
+      | (1U << (uint32_t)SWI5_EGU5_IRQn) \
+    ))
+  #define __NRF_NVIC_SD_IRQS_1 ((uint32_t)0)
+
+  /**@brief Interrupts available for to application. */
+  #define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0)
+  #define __NRF_NVIC_APP_IRQS_1 (~__NRF_NVIC_SD_IRQS_1)
+#endif
+/**@} */
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_VARIABLES Variables
+ * @{ */
+
+/**@brief Type representing the state struct for the SoftDevice NVIC module. */
+typedef struct
+{
+  uint32_t volatile __irq_masks[__NRF_NVIC_ISER_COUNT]; /**< IRQs enabled by the application in the NVIC. */
+  uint32_t volatile __cr_flag;                          /**< Non-zero if already in a critical region */
+} nrf_nvic_state_t;
+
+/**@brief Variable keeping the state for the SoftDevice NVIC module. This must be declared in an
+ * application source file. */
+extern nrf_nvic_state_t nrf_nvic_state;
+
+
+/**@} */
+
+#if (__LINT__ != 1)
+
+/**@addtogroup NRF_NVIC_INTERNAL_FUNCTIONS SoftDevice NVIC internal functions
+ * @{ */
+
+/**@brief Disables IRQ interrupts globally, including the SoftDevice's interrupts.
+ *
+ * @retval  The value of PRIMASK prior to disabling the interrupts.
+ */
+__STATIC_INLINE int __sd_nvic_irq_disable(void);
+
+
+/**@brief Enables IRQ interrupts globally, including the SoftDevice's interrupts.
+ */
+__STATIC_INLINE void __sd_nvic_irq_enable(void);
+
+
+/**@brief Checks if IRQn is available to application
+ * @param[in]  IRQn  irq to check
+ *
+ * @retval  1 (true) if the irq to check is available to the application
+ */
+__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn);
+
+
+/**@brief Checks if IRQn is available to application
+ * @param[in]  priority  priority to check
+ *
+ * @retval  1 (true) if the priority to check is available to the application
+ */
+__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority);
+
+
+/**@} */
+
+
+/**@addtogroup NRF_NVIC_FUNCTIONS SoftDevice NVIC public functions
+ * @{ */
+
+/**@brief Enable External Interrupt.
+ * @note Corresponds to NVIC_EnableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was enabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn);
+
+
+/**@brief  Disable External Interrupt.
+ * @note Corresponds to NVIC_DisableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was disabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn);
+
+
+/**@brief  Get Pending Interrupt.
+ * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]   IRQn          See the NVIC_GetPendingIRQ documentation in CMSIS.
+ * @param[out]  p_pending_irq Return value from NVIC_GetPendingIRQ.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq);
+
+
+/**@brief  Set Pending Interrupt.
+ * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is set pending.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn);
+
+
+/**@brief  Clear Pending Interrupt.
+ * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn);
+
+
+/**@brief Set Interrupt Priority.
+ * @note Corresponds to NVIC_SetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ * @pre Priority is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn      See the NVIC_SetPriority documentation in CMSIS.
+ * @param[in] priority  A valid IRQ priority for use by the application.
+ *
+ * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority);
+
+
+/**@brief Get Interrupt Priority.
+ * @note Corresponds to NVIC_GetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]  IRQn         See the NVIC_GetPriority documentation in CMSIS.
+ * @param[out] p_priority   Return value from NVIC_GetPriority.
+ *
+ * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority);
+
+
+/**@brief System Reset.
+ * @note Corresponds to NVIC_SystemReset in CMSIS.
+ *
+ * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
+ */
+__STATIC_INLINE uint32_t sd_nvic_SystemReset(void);
+
+
+/**@brief Enters critical region.
+ *
+ * @post Application interrupts will be disabled.
+ * @note sd_nvic_critical_region_enter() and ::sd_nvic_critical_region_exit() must be called in matching pairs inside each
+ * execution context
+ * @sa sd_nvic_critical_region_exit
+ *
+ * @param[out] p_is_nested_critical_region If 1, the application is now in a nested critical region.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region);
+
+
+/**@brief Exit critical region.
+ *
+ * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
+ * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called.
+ *
+ * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region);
+
+#endif //#if (__LINT__ != 1)
+
+/**@} */
+
+#ifndef SUPPRESS_INLINE_IMPLEMENTATION
+
+__STATIC_INLINE int __sd_nvic_irq_disable(void)
+{
+  int pm = __get_PRIMASK();
+  __disable_irq();
+  return pm;
+}
+
+__STATIC_INLINE void __sd_nvic_irq_enable(void)
+{
+  __enable_irq();
+}
+
+
+__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn)
+{
+  if (IRQn < 32)
+  {
+    return ((1UL<<IRQn) & __NRF_NVIC_APP_IRQS_0) != 0;
+  }
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  else if (IRQn < 64)
+  {
+    return ((1UL<<(IRQn-32)) & __NRF_NVIC_APP_IRQS_1) != 0;
+  }
+#endif
+  else
+  {
+    return 1;
+  }
+}
+
+
+__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority)
+{
+  if (priority >= (1 << __NVIC_PRIO_BITS))
+  {
+    return 0;
+  }
+#ifdef NRF51
+  if (   priority == 0
+     || priority == 2
+     )
+  {
+    return 0;
+  }
+#endif
+#if (defined(NRF52) || defined(NRF52840_XXAA))
+  if (   priority == 0
+     || priority == 1
+     || priority == 4
+     || priority == 5
+     )
+  {
+    return 0;
+  }
+#endif
+  return 1;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+  if (!__sd_nvic_is_app_accessible_priority(NVIC_GetPriority(IRQn)))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] |= (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F));
+  }
+  else
+  {
+    NVIC_EnableIRQ(IRQn);
+  }
+  return NRF_SUCCESS;
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] &= ~(1UL << ((uint32_t)(IRQn) & 0x1F));
+  }
+  else
+  {
+    NVIC_DisableIRQ(IRQn);
+  }
+
+  return NRF_SUCCESS;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_pending_irq = NVIC_GetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_SetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_ClearPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (!__sd_nvic_is_app_accessible_priority(priority))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  NVIC_SetPriority(IRQn, (uint32_t)priority);
+  return NRF_SUCCESS;
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_priority = (NVIC_GetPriority(IRQn) & 0xFF);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_SystemReset(void)
+{
+  NVIC_SystemReset();
+  return NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN;
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region)
+{
+  int was_masked = __sd_nvic_irq_disable();
+  if (!nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__cr_flag = 1;
+    nrf_nvic_state.__irq_masks[0] = ( NVIC->ICER[0] & __NRF_NVIC_APP_IRQS_0 );
+    NVIC->ICER[0] = __NRF_NVIC_APP_IRQS_0;
+    #if (defined(NRF52) || defined(NRF52840_XXAA))
+    nrf_nvic_state.__irq_masks[1] = ( NVIC->ICER[1] & __NRF_NVIC_APP_IRQS_1 );
+    NVIC->ICER[1] = __NRF_NVIC_APP_IRQS_1;
+    #endif
+    *p_is_nested_critical_region = 0;
+  }
+  else
+  {
+    *p_is_nested_critical_region = 1;
+  }
+  if (!was_masked)
+  {
+    __sd_nvic_irq_enable();
+  }
+  return NRF_SUCCESS;
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region)
+{
+  if (nrf_nvic_state.__cr_flag && (is_nested_critical_region == 0))
+  {
+    int was_masked = __sd_nvic_irq_disable();
+    NVIC->ISER[0] = nrf_nvic_state.__irq_masks[0];
+    #if (defined(NRF52) || defined(NRF52840_XXAA))
+    NVIC->ISER[1] = nrf_nvic_state.__irq_masks[1];
+    #endif
+    nrf_nvic_state.__cr_flag = 0;
+    if (!was_masked)
+    {
+      __sd_nvic_irq_enable();
+    }
+  }
+
+  return NRF_SUCCESS;
+}
+
+#endif // #ifdef SUPPRESS_INLINE_IMPLEMENTATION
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // NRF_NVIC_H__
+
+/**@} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/test.rb nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/test.rb
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/headers_replacement/test.rb
@@ -0,0 +1,2 @@
+a = 'xxx const * const*'
+puts a.gsub('const','')
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex
@@ -0,0 +1,7694 @@
+:020000040000FA
+:1000000000040020E508000079050000C508000094
+:10001000830500008D05000097050000000000002A
+:1000200000000000000000000000000009090000BE
+:10003000A105000000000000AB050000B5050000B0
+:10004000BF050000C9050000D3050000DD05000064
+:10005000E7050000F1050000FB05000005060000B3
+:100060000F06000019060000230600002D06000000
+:1000700037060000410600004B0600005506000050
+:100080005F06000069060000730600007D060000A0
+:1000900087060000910600009B060000A5060000F0
+:1000A000AF060000B9060000C3060000CD06000040
+:1000B000D7060000E1060000EB060000F506000090
+:1000C000FF06000009070000130700001D070000DD
+:1000D00027070000310700003B070000450700002C
+:1000E0004F07000059070000630700006D0700007C
+:1000F00077070000810700008B07000095070000CC
+:100100009F0700001FB500F003F88DE80F001FBD2A
+:1001100000F0DEBB1FB56FF00100009040100390AF
+:10012000029001904FF010208069000B420900F00E
+:100130001F045DF822300120A04083434DF8223097
+:10014000684600F044F91FBDF0B54FF6FF734FF459
+:10015000B4751A466E1E11E0A94201D3344600E080
+:100160000C46091B30F8027B641E3B441A44F9D14B
+:100170009CB204EB134394B204EB12420029EBD17E
+:1001800098B200EB134002EB124140EA0140F0BD8F
+:10019000DD4992B00446D1E90001CDE91001FF220A
+:1001A0004021684600F03AFB94E80F008DE80F000C
+:1001B000684610A902E004C841F8042D8842FAD12B
+:1001C00010216846FFF7C0FF1090AA208DF8440068
+:1001D000FFF7A0FF00F0F2F84FF01024A069102202
+:1001E0006946803000F001F9A069082210A900F0EA
+:1001F000FCF800F0D7F84FF080510A6949690068AF
+:100200004A43824201D8102070470020704710B541
+:10021000D0E900214FF0805002EB8103026944696C
+:100220006243934209D84FF01022536903EB8103D4
+:100230000169406941438B4201D9092010BD5069D1
+:10024000401C01D0002010BD0F2010BD70B501680A
+:100250000446AE4D4FF01020062951D2DFE801F0E0
+:10026000320318283B1DD4E90265646829463046EC
+:1002700000F0CDF82A462146304600F0B6F8AA0034
+:100280002146304600F09EFA002800D0032070BDC1
+:1002900000F050FB4FF4805007E0201DFFF7ABFF4C
+:1002A0000028F4D100F046FB60682860002070BD93
+:1002B000241D94E80700920000F084FA0028F6D08C
+:1002C0000E2070BD8069401C12D0201DFFF79FFFDB
+:1002D0000028F6D109E08069401C09D0201DFFF7F5
+:1002E0008AFF0028EDD1606820B12046FFF750FF5B
+:1002F000042070BDFFF70EFF00F060F800F052F828
+:10030000072070BD10B50C46182802D001200860E7
+:1003100010BD2068FFF79AFF206010BD4FF0102439
+:10032000A069401C05D0A569A66980353079AA2846
+:1003300008D06069401C2DD060690068401C29D03D
+:1003400060692CE010212846FFF7FEFE31688142EB
+:100350001CD1A16901F18002C03105E030B108CAA9
+:1003600051F8040D984201D1012000E000208A429A
+:10037000F4D158B1286810B1042803D0FEE728460C
+:1003800000F057F861496868086008E000F016F866
+:1003900000F008F84FF480500168491C01D000F0CB
+:1003A000A3FAFEE7BFF34F8F59480168594A01F499
+:1003B000E06111430160BFF34F8FFEE74FF0102063
+:1003C0008169491C02D0806900F0ADB87047524A7B
+:1003D00001681160121D416811604F4A8168103236
+:1003E0001160111DC068086070472DE9F041174683
+:1003F0000D460646002406E03046296800F0A6F8BF
+:10040000641C2D1D361DBC42F6D3BDE8F08170B5CD
+:100410000C4605464FF4806608E0284600F083F855
+:10042000B44205D3A4F5806405F58055002CF4D1C1
+:1004300070BD4168044609B1012500E000254FF078
+:1004400010267069A268920000F0BCF9C8B120467D
+:1004500000F01AF89DB17669A56864684FF4002031
+:1004600084420AD2854208D229463046FFF7CFFFA0
+:100470002A4621463046FFF7B8FFFFF79FFFFFF7F8
+:1004800091FFFFF747FEF8E72DE9FF414FF01024F9
+:10049000616980680D0B01EB800000F6FF70010BB5
+:1004A00000200090019002900246039068460123CC
+:1004B0000BE0560902F01F0C50F8267003FA0CFCF2
+:1004C00047EA0C0740F82670521CAA42F1D30AE012
+:1004D0004A0901F01F0650F8225003FA06F6354388
+:1004E00040F82250491C8029F2D3A169090B4A091E
+:1004F00001F01F0150F822408B409C4340F82240FD
+:10050000FFF765FFBDE8FF815809000000000020EB
+:100510000CED00E00400FA050006004014480168F4
+:100520000029FCD07047134A0221116010490B6862
+:10053000002BFCD00F4B1B1D186008680028FCD056
+:100540000020106008680028FCD07047094B10B5E7
+:1005500001221A60064A1468002CFCD00160106861
+:100560000028FCD00020186010680028FCD010BDC6
+:1005700000E4014004E5014008208F49096809585A
+:10058000084710208C4909680958084714208A49EF
+:100590000968095808471820874909680958084711
+:1005A0003020854909680958084738208249096878
+:1005B000095808473C2080490968095808474020E5
+:1005C0007D4909680958084744207B49096809584A
+:1005D0000847482078490968095808474C20764957
+:1005E000096809580847502073490968095808479D
+:1005F0005420714909680958084758206E4909680C
+:10060000095808475C206C49096809580847602068
+:100610006949096809580847642067490968095801
+:100620000847682064490968095808476C206249EE
+:1006300009680958084770205F4909680958084740
+:1006400074205D4909680958084778205A490968A3
+:10065000095808477C2058490968095808478020EC
+:1006600055490968095808478420534909680958B9
+:100670000847882050490968095808478C204E4986
+:1006800009680958084790204B49096809580847E4
+:10069000942049490968095808479820464909683B
+:1006A000095808479C204449096809580847A02070
+:1006B0004149096809580847A4203F490968095871
+:1006C0000847A8203C49096809580847AC203A491E
+:1006D000096809580847B020374909680958084788
+:1006E000B4203549096809580847B82032490968D3
+:1006F00009580847BC203049096809580847C020F4
+:100700002D49096809580847C4202B490968095828
+:100710000847C8202849096809580847CC202649B5
+:10072000096809580847D02023490968095808472B
+:10073000D4202149096809580847D8201E4909686A
+:1007400009580847DC201C49096809580847E02077
+:100750001949096809580847E420174909680958E0
+:100760000847E8201449096809580847EC2012494D
+:10077000096809580847F0200F49096809580847CF
+:10078000F4200D49096809580847F8200A49096802
+:1007900009580847FC2008490968095808475FF4C8
+:1007A0008070054909680958084700000348044952
+:1007B000024A034B70470000000000206809000057
+:1007C0006809000040EA010310B59B070FD1042A15
+:1007D0000DD310C808C9121F9C42F8D020BA19BA0C
+:1007E000884201D9012010BD4FF0FF3010BD1AB171
+:1007F000D30703D0521C07E0002010BD10F8013BC6
+:1008000011F8014B1B1B07D110F8013B11F8014BEC
+:100810001B1B01D1921EF1D1184610BD02F0FF033F
+:1008200043EA032242EA024200F005B870477047EB
+:1008300070474FF000020429C0F0128010F0030C42
+:1008400000F01B80CCF1040CBCF1020F18BF00F8C3
+:10085000012BA8BF20F8022BA1EB0C0100F00DB872
+:100860005FEAC17C24BF00F8012B00F8012B48BFD0
+:1008700000F8012B70474FF0000200B51346944674
+:100880009646203922BFA0E80C50A0E80C50B1F1E8
+:100890002001BFF4F7AF090728BFA0E80C5048BFFC
+:1008A0000CC05DF804EB890028BF40F8042B08BF9A
+:1008B000704748BF20F8022B11F0804F18BF00F896
+:1008C000012B7047014B1B68DB68184700000020B4
+:1008D00009480A497047FFF7FBFFFFF713FC00BD0B
+:1008E00020BFFDE7064B1847064A1060016881F3F8
+:1008F0000888406800470000680900006809000097
+:100900001D030000000000201EF0040F0CBFEFF3D9
+:100910000881EFF30981886902380078182803D12B
+:1009200000E00000074A1047074A12682C3212689C
+:100930001047000000B5054B1B68054A9B589847B7
+:1009400000BD000005030000000000205409000065
+:1009500004000000001000000000000000FFFFFF86
+:040960000090D00330
+:1010000048120020D1E001006D9F000041E0010086
+:101010006D9F00006D9F00006D9F000000000000AC
+:1010200000000000000000000000000029E10100B5
+:101030006D9F0000000000006D9F00006D9F00008C
+:1010400091E1010097E101006D9F00006D9F00009C
+:101050006D9F00006D9F00006D9F00006D9F000060
+:101060009DE101006D9F00006D9F0000A3E1010064
+:101070006D9F0000A9E10100AFE10100B5E10100B1
+:101080006D9F00006D9F00006D9F00006D9F000030
+:101090006D9F00006D9F00006D9F00006D9F000020
+:1010A000BBE10100C1E101006D9F00006D9F0000E8
+:1010B0006D9F00006D9F00006D9F00006D9F000000
+:1010C000C7E101006D9F00006D9F00006D9F000053
+:1010D0006D9F00006D9F00006D9F00006D9F0000E0
+:1010E0006D9F00006D9F00006D9F00006D9F0000D0
+:1010F0006D9F00006D9F00006D9F00006D9F0000C0
+:101100006D9F00006D9F000000F002F81CF0CDFF05
+:101110000AA090E8000C82448344AAF10107DA4552
+:1011200001D11CF0C2FFAFF2090EBAE80F0013F0B4
+:10113000010F18BFFB1A43F001031847BCD501008B
+:10114000DCD501000A4410F8014B14F00F0508BF6C
+:1011500010F8015B240908BF10F8014B6D1E05D083
+:1011600010F8013B6D1E01F8013BF9D1641E03D05C
+:10117000641E01F8015BFBD19142E4D3704700008B
+:101180000023002400250026103A28BF78C1FBD890
+:10119000520728BF30C148BF0B6070471FB500F031
+:1011A0003DF88DE80F001FBD1EF0040F0CBFEFF3DC
+:1011B0000880EFF30980014A10470000BF9D00003E
+:1011C0008269034981614FF00100104470470000BB
+:1011D000D511000001B41EB400B511F043F901B4FB
+:1011E0000198864601BC01B01EBD0000F0B4404627
+:1011F000494652465B460FB402A0013001B506488D
+:10120000004700BF01BC86460FBC80468946924617
+:101210009B46F0BC70470000091100001CF042BF63
+:1012200070B51C4C054608202070A01C00F065F825
+:101230005920A08029462046BDE8704007F01CB820
+:1012400010B507F024F813490020891E087010BD5E
+:1012500070B50C460F49891E097829B1A0F16001CB
+:10126000532906D3012011E0602802D043F2010087
+:101270000CE020CC084E94E80E0006EB8000A0F5B0
+:101280008050241FD0F8806E2846B047206070BD83
+:10129000012070470A00002014E2010010B5044646
+:1012A0000021012000F03FF80021182000F03BF859
+:1012B00000210B2000F037F80421192000F033F84A
+:1012C00004210D2000F02FF804210E2000F02BF84F
+:1012D00004210F2000F027F80421C84300F023F870
+:1012E0000721162000F01FF80721152000F01BF839
+:1012F0002046FFF795FF002010BD8C21018070472C
+:10130000FFF79EBF10487047104A10B514680F4B86
+:101310000F4A08331A60FFF79BFF0C48001D04605A
+:1013200010BD704770474907090E002806DA00F023
+:101330000F0000F1E02080F8141D704700F1E0205C
+:1013400080F800147047000003F9004310050240C4
+:101350000100000130B5F74D044610280AD0112CC9
+:1013600006D02846122C817806D0132C08D0FFDF37
+:10137000AC7030BDFFDFFBE71129F9D0FFDFF7E7E5
+:101380001129F5D0FFDFF3E770B50FF05AFA0446E4
+:1013900010F030FE201AC4B206200DF02DFC0546D8
+:1013A00006200DF031FC2E1A07200DF025FC054615
+:1013B00007200DF029FCDF49281A321888781228F6
+:1013C0000DD000231A4413280BD0002002440878C3
+:1013D000022808D000201044201AC0B270BD01239A
+:1013E000F0E70120F2E70120F5E7D24800B50079E7
+:1013F000D049420897B051F8050F89880CD01722C0
+:101400008DF80020CDF80200ADF806100BA9684653
+:101410000AF02BFF17B000BD4022F1E702210DF0CA
+:1014200040BC2DE9F04196B01D4690460E46074659
+:10143000FFF7F4FF04000BD02078222804D3A07F0C
+:10144000C0F34010A84206D1082016B0BDE8F081D4
+:1014500043F20200F9E745208DF80000ADF8027074
+:101460003DB101208DF804008DF805608DF80680EF
+:1014700002E000208DF804000BA968460AF0F5FE92
+:10148000A07F65F34510A0770020DEE730B5044665
+:10149000A1F120000D460A284AD2DFE800F0050736
+:1014A0000C1C2328353A3F44FFDF42E020782028F7
+:1014B0003FD1FFDF3DE09F480178032939D0807894
+:1014C000132836D02078242833D0252831D023285B
+:1014D0002FD0FFDF2DE0207822282AD0232828D8FB
+:1014E000FFDF26E02078222823D0FFDF21E02078CC
+:1014F00022281ED024281CD026281AD0272818D00D
+:10150000292816D0FFDF14E02078252811D0FFDF2E
+:101510000FE0207825280CD0FFDF0AE0207825286E
+:1015200007D0FFDF05E02078282802D0FFDF00E0A9
+:10153000FFDF257030BD30B50B8840F67B444FF699
+:10154000FF72022801D0934204D09D1FA54224D2ED
+:10155000022802D04D88954203D04D88AD1FA54288
+:101560001BD24C88A34218D88B88B3F5FA7F14D2CB
+:10157000022802D0C888904205D0C88840F6774536
+:101580000A38A84209D2C888904208D0944206D0AE
+:101590005B1C6343B3EB800F01DB072030BD0020F1
+:1015A00030BD70B514460D46064611F0C9F960B954
+:1015B0000DB1A54201D90C2070BD002409E000BF87
+:1015C00056F8240011F0BCF908B1102070BD641C5D
+:1015D000E4B2AC42F4D3002070BDF0B50024059D08
+:1015E00010B1A94203D851E009B90020F0BD09208B
+:1015F000F0BD055D8DB107197E78112E3FD00FDC4F
+:101600000A2E3CD2DFE806F03B1624242A2A2C2C92
+:101610003333025D72BB641CE4B28C42F9D3E4E75D
+:101620001D2E2CDAA6F11206042E28D2DFE806F0D1
+:1016300027271018022DDAD1BD781D70072D01D291
+:101640006D0701D40A20F0BD157845F0010515E0BD
+:10165000EE43F60707E0012D07D010E00620F0BDAD
+:101660002E07A6F18056002EF5D06046F0BD157805
+:10167000AE0701D50B20F0BD45F002051570055DE4
+:10168000641C2C44E4B28C4202D9B0E74FF4485CAD
+:101690008C42AED3A9E710B50278540809D00122D4
+:1016A00043F20223012C07D0022C0DD0032C13D1BE
+:1016B0000FE00020087005E080790324B4EB901F50
+:1016C0000AD10A70002010BD8079B2EB901F03D1BF
+:1016D000F7E780798009F4D0184610BD154A917B50
+:1016E00039B1D17B022908D0032908D043F2022066
+:1016F00070470146101D01F03FBB032100E00121AE
+:1017000001700020704738B50C460546694601F067
+:1017100033FB00280DD19DF80010207861F34700BD
+:10172000207055F8010FC4F80100A888A4F805003E
+:10173000002038BDB401002038B51378C0B10228AC
+:1017400016D0F6A46D46246800944C7905EB9414E9
+:10175000247864F34703137003280ED003F0FE00CF
+:1017600010700868C2F801008888A2F8050038BD2A
+:1017700023F0FE0313700228EED1D8B240F001002E
+:10178000EEE730B50C46097897B0222902D208203E
+:1017900017B030BD28218DF80010ADF80200132AD3
+:1017A00003D03B2A01D00720F2E78DF804200BA9D3
+:1017B00068460AF05AFD050003D121212046FFF7B3
+:1017C00065FE2846E4E700B597B023218DF80010A8
+:1017D000ADF802001088ADF804005088ADF806009E
+:1017E000D088ADF80A009088ADF808000020ADF868
+:1017F0000C00ADF80E000BA968460AF036FD09E6AC
+:101800002DE9FF470220C64E8DF804000027708A9C
+:10181000ADF80600B84643F202094DE001A80DF00C
+:10182000AAF9050006D0708AA8B3A6F81280ADF810
+:1018300006803FE0039CA07F01072DD504F1240022
+:101840000090A28EBDF80800214604F1360301F095
+:10185000A2FF050005D04D452BD0112D3DD0FFDF57
+:101860003BE0A07F20F00800A077E07F810861F3D3
+:101870000000C10861F34100E07794F8210000F016
+:101880001F0084F820002078282827D1292120460D
+:10189000FFF7FCFD22E015E040070BD5BDF808007E
+:1018A000214604F10E02FFF78EFF05000DD04D45D5
+:1018B00010D100257F1CFFB202200DF09DF9401CC5
+:1018C000B842ABD8052D12D008E0A07F20F004006C
+:1018D000A07703E0112D00D0FFDF0025BDF8060042
+:1018E0007082052D05D0284604B0BDE8F087A6F823
+:1018F00012800020F8E72DE9F047040000D1FFDF57
+:101900002078874E20F00F00801C20F0F00070300F
+:10191000207060680178091F1429E6D2DFE801F021
+:10192000F00A0B4FEF0B0CEFEF36F00B0BF074F0EF
+:101930000B0BF0F0FFDFD8E787883846FFF76EFD26
+:10194000050000D1FFDF6078212140F008006070C1
+:10195000707C40F0040070742846FFF797FD38460D
+:1019600007F0C2FA384603F092FF384605F01DF83A
+:101970003946022010F0A1FFA87F20F01000A877C0
+:10198000FFF73EFF0028B0D0FFDFAEE7858828468E
+:10199000FFF744FD00B9FFDF60688078012800D0C0
+:1019A000FFDF60688179284607F00EFC00289CD094
+:1019B000617841F0080161706168C88095E78688A8
+:1019C0003046FFF72BFD050000D1FFDF6078314680
+:1019D00040F0080060706068C088288160680089F5
+:1019E000688160684089A881022010F066FF0020AD
+:1019F000A875A87F00F0030002289CD1FFF700FF24
+:101A0000002898D0FFDF70E780783C2803D00025BD
+:101A100002280AD000E00125002720B13C2802D08E
+:101A2000022800D0FFDF17B1A3E00127F5E76078B7
+:101A3000002D40F008006070707C40F00800707469
+:101A40006BD165680221B5F80480AD1C4746384665
+:101A50000DF01EF90446032138460DF019F98246AF
+:101A6000052138460DF014F98146042138460DF061
+:101A70000FF9074604B9FFDFBAF1000F00D1FFDF0D
+:101A8000B9F1000F00D1FFDF07B9FFDF22212046A7
+:101A9000FFF7FCFC2879012833D00227A07F06211C
+:101AA00067F30100A077288B2081688B6081A88B69
+:101AB000A08105F1120001F096F920B36879800742
+:101AC00000D5FFDF6979E07D61F34700E075D5F867
+:101AD0000600A0616889A083062105F10C0001F0D1
+:101AE00082F9F8B130794108607861F3470060709D
+:101AF000D6F80500C4F80200B6F809001BE045E07E
+:101B000049E00127CAE7E07D20F0FE00801CE07577
+:101B1000D5F81200A061E88ADDE71DE00302FF01AD
+:101B2000B4010020607820F0FE00801C6070E8683E
+:101B3000C4F80200288AE080FE48007884F8220079
+:101B4000A07F00F00301404607F0C0F9012F03D049
+:101B5000022F0ED0FFDFC8E63078032800D0FFDF69
+:101B60000021084610F0A9FEBDE8F047012001F071
+:101B7000DDB8B078132800D0FFDF0021072010F077
+:101B80009CFEBDE8F0471120FFF7E4BB2046BDE80E
+:101B9000F04702F0D3B8607840F008006070A4E627
+:101BA0002DE9F04705460078914600270209DFF845
+:101BB00088A30C463E46012A75D000214FF6FF70DF
+:101BC000022A71D0072A0AD00A2A6ED0FFDF00BF8E
+:101BD000A9F800600CB127806680002085E6D5F862
+:101BE00004C004F1080204F118089CF80060361FD4
+:101BF000142E5AD2DFE806F09859594559590A5916
+:101C0000593C5A5959C263FA59594DE811270926C6
+:101C1000002C7CD0BCF80480A4F80480686880792B
+:101C200020729AF81110404621F004018AF8111030
+:101C300004210DF048F8052140460DF044F800213C
+:101C400040460DF040F8012140460DF03CF80321DC
+:101C500040460DF038F8022140460DF034F80621D8
+:101C600040460DF030F8072140460DF02CF8AFE764
+:101C700001270926F4B3BCF80400A08068688079C5
+:101C80000FE012271026BCF80400214601F08CF862
+:101C90009EE71C2709266CB3BCF80200A080686888
+:101CA0000079207294E7B5E0DFE004E11B27092604
+:101CB00004B30420207268684088A08088E79CF8FC
+:101CC00002003C2826D0102718260CF1020C8CB1FB
+:101CD000BCF80200A080BCF818006082BCF81800B4
+:101CE0002082BCF81A00A082BCF81C00E0829CF89C
+:101CF000050000E00BE00CF10601FFF71DFD9CF86C
+:101D0000040010B10120E07309E00220FBE7A9F80C
+:101D1000006062E71B270926002CF8D021729AF890
+:101D2000111021F00801B2E01D273726002CEED05B
+:101D3000A08069680879491DFFF7FEFC686890F883
+:101D40002B00A0756868C0780428E07D13D020F0CF
+:101D50000100E07569681F22C97861F34200E075EF
+:101D60006968C97A61F3C700E075696840460C315B
+:101D70001CF09AF82CE740F00100EAE71D2737260F
+:101D8000002CC4D0A0806968481D0B790146184614
+:101D9000FFF7D2FC696804F10F0201F10C00CB7A65
+:101DA00001461846FFF7C8FC6868807CA075686823
+:101DB000C178E07D61F3420020F0F900E0751F2159
+:101DC00040461CF00AF903E720271026002C9ED07D
+:101DD000A080686804F10902407A20726968CB1C0F
+:101DE00088781946FFF7A8FCF2E6FFE704271026DB
+:101DF000002C8CD0BCF80200A0806868808820810C
+:101E00006868C088608168680089A08168684089C6
+:101E1000E081DDE6287A012803D0022814D0FFDF14
+:101E2000D6E61F271026002CABD06888A0806889D2
+:101E30002081A8896081E889A081288AE0819AF8B8
+:101E4000111021F0200122E012271026688800F0EE
+:101E5000ABFF002C95D0687800F00700032889D1EB
+:101E60009AF8111021F0020111E02A7A062A29D2EB
+:101E7000DFE802F00310102121211B270926002C86
+:101E8000A5D0A08021729AF8111021F001018AF8E2
+:101E900011109DE61B270926002C98D0A080287AD7
+:101EA000012806D0032020729AF8111021F01001A9
+:101EB000EDE70220F7E74A4621462846BDE8F0470D
+:101EC00002F0B7B8FFDF83E610B51B4896B0807804
+:101ED000132802D0082016B010BD22208DF8000073
+:101EE0000BA968460AF0C1F904460021072010F04A
+:101EF000E4FC2046EFE700B50F4897B08078122841
+:101F000001D008207BE41E208DF8000000208DF811
+:101F100002008DF803000BA968460AF0A6F9002814
+:101F2000F0D10021072010F0C8FC1120FFF712FAB1
+:101F3000002064E410000020B401002000B5F9483E
+:101F400097B00078012814D01B208DF800000020E5
+:101F50008DF802000BA968460AF087F9002807D11E
+:101F60000021084610F0A9FC012000F0DFFE00204F
+:101F700045E4082043E42DE9F041EA4C002740B154
+:101F800002281DD0072842D0082800D0FFDFBDE876
+:101F9000F081FFF7D3FF0028F9D106F0B4F800284C
+:101FA000F5D0017821F00F01891C21F0F0012031DA
+:101FB0000170077206F087F8607C40F001001DE0B8
+:101FC0008EB23046FFF72AFA050000D1FFDF2878ED
+:101FD0002128DCD006F097F890B1017821F00F01AC
+:101FE000891C21F0F001103101700221017246803C
+:101FF000AF7506F068F8607C40F002006074C6E7D8
+:1020000029463046BDE8F0411322FFF7BABBA57858
+:10201000122D03D0132D04D0FFDFB8E7FFF76BFFBD
+:1020200001E0FFF751FF0028B1D106F06CF800285D
+:10203000ADD0017821F00F01891C21F0F001203191
+:102040000170122D07D00221017206F03CF8607C6D
+:1020500040F01000D2E70121F6E72DE9F0411446E7
+:102060000D00074600D1FFDF2878012803D00228A1
+:1020700021D0FFDF8BE73846FFF7D0F9060000D10B
+:10208000FFDF0220B075207820F00F00801C20F0C8
+:10209000F00010302070607840F008006070286810
+:1020A000A0606868E060288920829E48417C41F0F9
+:1020B000200141746BE73846FFF7B0F9060000D104
+:1020C000FFDF69884FF6FF70814209D1AA888242FA
+:1020D00006D131463846BDE8F0411322FFF751BB27
+:1020E000814201D1A88898B1207820F00F00801C8F
+:1020F00020F0F00010302070607840F00800607030
+:102100002868A0606868E06028892082002006E0D6
+:10211000782300223946022010F032FB0120B075EE
+:1021200035E730B5054697B00C46084610F008FC78
+:1021300080BB00200121203D072D6ED2DFE805F095
+:1021400004264145515D67000021082010F08EFBF8
+:1021500010B1112017B030BD24208DF80000D4F844
+:102160000200CDF80200A0798DF806000BA96846A0
+:102170000AF07BF8050056D10823002211461846C4
+:1021800010F0FEFA08284ED0FFDF4CE0606810F037
+:1021900019FC08B11020DDE748208DF800002088E8
+:1021A000ADF802006088ADF804000BA968460AF09B
+:1021B0005CF8050037D1606880B3BDF8301001804D
+:1021C00031E0206802F0D6F909E049220AE000BFB8
+:1021D0008DF802100CE000BF8DF8020008E0054603
+:1021E00021E042228DF800202278D207F4D0EFE7D8
+:1021F0000BA968460AF039F8F1E738208DF800009D
+:102200002088ADF802006088ADF80400F0E720787F
+:1022100028B1A0F11B01E12902D3072503E01B200F
+:10222000414900250870284694E730B5054697B027
+:102230000C46084610F0A8FB08B110208AE7202DB4
+:1022400007D0212D25D0222D23D0232D21D00720CA
+:1022500080E72088FFF7E2F820B10078222804D236
+:10226000082077E743F2020074E725208DF800008C
+:102270002088ADF802000BA9684609F0F6FF002897
+:10228000DCD1DDF83210C4F802109DF83610A171CF
+:1022900060E706205EE72348001D70472149087467
+:1022A00070472048007C00F00100704738B51421C9
+:1022B0001C481BF070FE012000F038FD1120FFF7D4
+:1022C00049F81949FB20174C0870611D684605F054
+:1022D000E2FF9DF80010207961F3470020F0010033
+:1022E00020710020A0734FF46170A0810220E07380
+:1022F000FFF77BF800B1FFDF00F08EFE01F0D9FCA4
+:1023000038BD10B50C463E2120461BF044FEA07F90
+:1023100020F00300A077202020700020A07584F812
+:10232000230010BDB40100201000002070477CB5D0
+:10233000054610F005FB08B110207CBDFE4C211DA8
+:1023400060680090A06801902846FFF7DCF900283B
+:10235000F3D1FFF74AF80028EFD000996160BDF88B
+:10236000041021819DF80610A1727CBD10B50446B1
+:1023700010F00AFB08B11020D3E7EF492246087994
+:10238000491D4008FFF7D8F90020CAE72DE9F047BA
+:102390009CB00D4604004FF0000812D00822FFF751
+:1023A00000F900281CD1002609E000BF54F82600DF
+:1023B00004A9FFF770F9002812D1761CF6B2AE42DC
+:1023C000F4D32F460A2006AD0DF1440A8DF818000B
+:1023D00026465146284609F048FF20B143F2032023
+:1023E0001CB0BDE8F0874046DFF84C8388F8030056
+:1023F0002EB300244FF00B091DE000BF56F8240057
+:1024000005A9FFF748F900B1FFDF9DF81400A87097
+:1024100056F8240050F8011FC5F803108088A5F86D
+:10242000070085F800905146284609F01EFF00B1CC
+:10243000FFDF641CE4B2BC42E0D388F803700020E4
+:10244000CEE72DE9F0479EB01546894604001ED020
+:102450000F4608222946FFF7A4F8002811D10026CC
+:1024600013E000BF54F8260005A9103000F084FCEA
+:10247000002806D13FB157F8260010F061FA10B1DC
+:1024800010201EB0ADE7761CF6B2AE42EAD30026AD
+:10249000A5F101081CE000BF06F1010A0AF0FF07E0
+:1024A00012E000BF54F82600017C4A0854F82710B7
+:1024B0000B7CB2EB530F05D10622113011311BF00A
+:1024C000C7FCC0B17F1CFFB2AF42EBD30AF0FF06DE
+:1024D0004645E1DBC8462F46342007AD0DF14809DB
+:1024E0008DF81C0026464946284609F0BEFE28B154
+:1024F00043F20420C5E743F20520C2E796B3002467
+:102500002CE000BF56F82400A91C103000F034FC69
+:1025100000B1FFDF56F82400102250F8111FC5F853
+:1025200003108088A5F8070056F8241005F109006B
+:102530001BF0BAFCB8F1000F15D058F82410102287
+:1025400005F119001BF0B0FC3220287049462846DE
+:1025500009F08BFE00B1FFDF641CE4B2BC42D1D3B2
+:10256000012206E004E005F1190001F0F7FFEBE7B6
+:1025700000224946284600F02AFC002081E770B579
+:1025800096B0044610F0DCF918B9606810F023FA30
+:1025900010B1102016B070BD60884AF2B8118842A0
+:1025A00005D82078644D6E4618B1012804D0072064
+:1025B000F0E7FEF71AFF1AE06078022804D003283B
+:1025C00002D043F20220E5E7E87317208DF80000FF
+:1025D000E97B0020CDF80200ADF80600022932D0D8
+:1025E00003292DD0FFDF0BA9684609F03EFE002825
+:1025F000D0D1606801F0A5FF207870B101208DF87E
+:102600000200F01C01F0AAFF4B208DF800000BA97E
+:10261000684609F02AFE00B1FFDF6088A8B1A881F2
+:1026200080B2ADF8020030208DF800000BA968469A
+:1026300009F01BFE00B1FFDF2078A8730020A9E796
+:102640008DF80700CFE74020FAE74FF46170E6E726
+:1026500010B5044610F098F920B9606838B110F050
+:10266000B1F908B110205CE6606801F077FF3248EC
+:1026700081896180C17B6170807B2070002050E681
+:102680002DE9F0419CB0054600208DF864008DF8DE
+:1026900060008DF830008DF868001E4614468846AC
+:1026A000284610F098F918B9204610F094F910B1A6
+:1026B00010201CB06BE455EA040018D01F270CABA7
+:1026C00019AA414628460097FEF787FF0028F0D157
+:1026D0001AAB18AA314620460097FEF77EFF002865
+:1026E000E7D19DF86000C00703D00A20E1E707208A
+:1026F000DFE701AF7DB11A208DF804008DF8068068
+:1027000042462946F81C1BF0CFFB0DA901A809F091
+:10271000ACFD0028CDD194B120208DF804008DF8B7
+:10272000066032462146F81C1BF0BEFB0DA901A82D
+:1027300009F09BFD002801E0B4010020B9D1FF4958
+:102740009DF8300048700020B3E72DE9F0439BB0BE
+:102750004FF00008FAA104468DF83480D1E9000159
+:10276000CDE91901204610F0EBF890B92078012846
+:1027700003D1606810F0E4F858B9F04D4FF001094A
+:10278000A87B50B1E87B022807D1606810F023F9DC
+:1027900018B110201BB0BDE8F0832878012801D0C3
+:1027A0000820F7E707200CF02FFA18B9207848B175
+:1027B000012807D0FEF7E8FD30B1687C10F00C0F5F
+:1027C00008D103E01220E5E71320E3E7C10701D1B8
+:1027D000800701D51120DDE7608943F6E172A0F1A1
+:1027E00020019142217807D301297CD100287AD198
+:1027F000A189002977D10FE0022901D0032901D155
+:10280000A02870D3012907D06978C90704D0A1890D
+:10281000002968D0B42966D8217831B1012908D0BF
+:10282000022904D003295ED10AE0002609E002262D
+:1028300007E008B9A08908B1042609E0012607E0ED
+:102840000326A87B50B1E87B022807D1606828B135
+:102850000DA96068FEF71FFF00289BD1207A30B1D8
+:10286000012806D0022806D003286DD105E00027F4
+:1028700004E0012702E0022700E003270EB1022E48
+:102880000ED16FB1E87870B36878800702D043F258
+:1028900001207FE7022E03D1022F55D0032F53D002
+:1028A00018208DF838006089ADF83A006089ADF8DD
+:1028B0003C008DF83E600DF13F00FEF70FFF00B1C8
+:1028C000FFDF9DF834008DF840002078012806D005
+:1028D000A87B68B1E87B02280AD1606840B16068D3
+:1028E00050F8011F00E02FE0CDF84110808802E091
+:1028F0004046CDF84180ADF845008DF84870A07B8A
+:10290000C0F34002014662F35F01C0F3800041EA78
+:10291000800019A9085C8DF84700A8B169460EA887
+:1029200009F0A3FC0028B4D11B208DF838008DF8E5
+:102930003A9069460EA809F098FC0028A9D19DF8A4
+:1029400001001B2819D101E0072023E7052E09D239
+:10295000DFE806F0030305050300032000E0022082
+:1029600000F0E4F9012E0AD0A08940B100228300D2
+:10297000114610460FF004FF08B103200AE70020BB
+:1029800008E72DE9FC4107460D460326084610F0EE
+:1029900022F8002864D13846FEF740FD040005D037
+:1029A0002078222805D20820BDE8FC8143F20200ED
+:1029B000FAE7A07F00F0030C2DB129466046FEF730
+:1029C000BAFD0600F0D15D48BCF1010F05D0BCF1A5
+:1029D000020F17D0FFDF3046E6E7A27D2946012A25
+:1029E00002D0407C800701D51120DDE729B9684677
+:1029F00000F01FFC0028D7D16946384606F067FB77
+:102A00000646E8E7A17D022914D1407C800611D456
+:102A100025B1A07F40070BD4002100E001213846FA
+:102A200006F09DFB0600D6D1A075002DD3D002E0A4
+:102A30001126D0E7A5B12A4621463846FEF7C3FE47
+:102A400006461128C7D1A07F4107C4D4296844F89D
+:102A50000E1F6968616040F0040020740026BAE728
+:102A60001020A1E770B50C460546FEF7D7FC010023
+:102A700005D022462846BDE87040FEF782BE43F2EC
+:102A8000020070BD00B597B03F218DF800108DF8A1
+:102A900002000BA9684609F0E8FB17B000BD01234E
+:102AA000FEF7BFBC00231A461946FEF7BABC30B584
+:102AB00097B004460FF044FF10B1102017B030BD9E
+:102AC000204600F047F90028F8D11C4DA8781128BD
+:102AD00001D00820F2E7FEF757FC20B1687CC00661
+:102AE00003D51120EAE71320E8E72078800701D515
+:102AF000E87848B31D208DF800002078022200F00D
+:102B000001008DF802006088ADF80400A088ADF8DF
+:102B100006002078C0F3400102EA500001438DF81E
+:102B2000091002A8FEF7DAFD00B1FFDF0BA9684625
+:102B300009F09BFB0028C1D11E2006E0B401002053
+:102B4000070605040302010017E08DF800000120CC
+:102B50008DF8020000208DF803000BA9684609F0EB
+:102B600084FB0028AAD1E08800F010F90400A5D168
+:102B70001220FEF7EFFB2046A0E707209EE7F0B506
+:102B800097B015460C4607460FF025FF38B920468A
+:102B90000FF0D6FE18B928460FF0D2FE10B1102063
+:102BA00017B0F0BD974E707C10F0180F01D14007A0
+:102BB00001D51120F4E7204600F0CCF80028EFD131
+:102BC00029460220FEF7B7FC0028E9D1B078112889
+:102BD00003D0122801D00820E2E72078C0F340019A
+:102BE000394311D0800700D577B906200CF00CF8D6
+:102BF00040B12078800701D5F07828B1B07812284C
+:102C000004D007E01220CBE70720C9E7FFF773F9EC
+:102C10000028C5D1FEF7B8FB022801D21320BFE778
+:102C200021208DF800006088ADF80200A088ADF882
+:102C300004002078C0F340008DF80600207880075B
+:102C400016D43878420808D0012A18D043F202215D
+:102C5000022A18D0032A18D115E0C00700D002209C
+:102C60008DF8070057F8010F0290B888ADF80C00F6
+:102C70000DF10E00FEF732FD58B1032090E7C007BA
+:102C800005D00320ECE7C00701D0084688E7012003
+:102C9000E6E72888ADF810006888ADF81200A8882B
+:102CA000ADF81400E888ADF816000020ADF8180063
+:102CB000ADF81A000BA9684609F0D7FA00288BD1A5
+:102CC000E08800F063F8040086D11320FEF742FB91
+:102CD000204665E730B5054697B00C4608460FF02C
+:102CE00053FE08B11020E9E62846FEF797FB38B1FD
+:102CF0000178222902D3807F800604D40820DDE6F3
+:102D000043F20200DAE613208DF80000ADF802501D
+:102D10000BA9684609F0A9FA0028E4D19DF9321000
+:102D20007F2901D02170C9E60520C7E630B5354DB1
+:102D3000040008D0012C04D0022C06D0032C04D0AF
+:102D4000FFDF2C7030BDFFDFFBE728780128F8D0CB
+:102D5000FFDFF6E7418843F6FD730A1F9A4209D266
+:102D60008088042806D3B0F5804F03D8884201D864
+:102D700000207047072070470278520804D0012ACB
+:102D800002D043F202207047FEF785BC10B548B16F
+:102D900083000022114607200FF0F2FC072801D023
+:102DA000032060E400205EE470B50C0006460DD000
+:102DB000FEF734FB050000D1FFDFA68028892081C3
+:102DC000288960816889A081A889E08170BD10B5DB
+:102DD00002F0010282703122027009F046FA0028E6
+:102DE00000D0FFDF3FE410B500231A4603E0845C07
+:102DF0002343521CD2B28A42F9D30BB1002032E4F1
+:102E0000012030E4B40100204FF0E0224FF40041F3
+:102E10000020C2F880112049087020499002086003
+:102E2000704730B51C4D04462878A04218BF002CCE
+:102E300002D0002818BFFFDF2878A04208BF30BDAD
+:102E40002C701749154A0020ECB1164DDFF858C018
+:102E5000131F012C0DD0022C1CBFFFDF30BD0860FA
+:102E600003200860CCF800504FF400001060186098
+:102E700030BD086002200860CCF800504FF0407070
+:102E80001060186030BD086008604FF0607010601E
+:102E900030BD00B5FFDF00BD1A00002008F501407D
+:102EA00000F500401C03002014F50040094810B54F
+:102EB00004680A49084808600EF0FDF908480460F3
+:102EC00010BD0849002008604FF0E0210220C1F841
+:102ED0008002704710050240010000011805024001
+:102EE00014050240FC1F004010B50D2000F06FF8E3
+:102EF000C4B26FF0040000F06AF8C0B2844200D09F
+:102F0000FFDF3A490120086010BD70B50D2000F0C8
+:102F100048F8374C0020C4F800010125C4F80453D8
+:102F20000D2000F049F825604FF0E0216014C1F851
+:102F3000000170BD10B50D2000F033F82C480121C0
+:102F400041600021C0F80011BDE810400D2000F0E4
+:102F500033B8284810B50468264927480831086066
+:102F60002349D1F80001012804D0FFDF2148001DCA
+:102F7000046010BD1D48001D00680022C0B2C1F8E9
+:102F800000210FF0A8F9F1E710B51948D0F80011A9
+:102F90000029FBD0FFF7DDFFBDE810400D2000F059
+:102FA0000BB800F01F02012191404009800000F1A0
+:102FB000E020C0F88011704700F01F02012191400D
+:102FC0004009800000F1E020C0F88012704700281E
+:102FD00006DA00F00F0000F1E02090F8140D03E095
+:102FE00000F1E02090F800044009704704D500404B
+:102FF00000D00040100502400100000170477047FA
+:1030000018FFFFFFDBE5B15100F001008C00FFFF6E
+:1030100084000000C0C62D00FE4800210160416010
+:1030200070472DE9F743044692B091460120FFF71F
+:1030300035F960680FF0C6FC58B160680FF0CBFC42
+:1030400038B9607800F00300022802D10020FFF7B1
+:1030500025F94D4648460FF073FC18B1102015B005
+:10306000BDE8F08329460120FEF765FA0028F6D175
+:1030700001258DF842504FF4C050ADF840000022B9
+:1030800010A9284603F035FF0028E8D18DF84250FA
+:103090004FF42850ADF8400000261C2168460796E2
+:1030A0001AF09BFF9DF81C0007AF20F00F00401C9A
+:1030B00020F0F00010308DF81C0020788DF81D00F5
+:1030C00061789DF81E000DF1400861F3420040F068
+:1030D00001008DF81E009DF8000008AA40F00200D3
+:1030E0008DF800002089ADF83000ADF832606089BD
+:1030F000ADF834000B9760680E900AA9CDF82880CF
+:10310000684603F0F5FC0028A9D1C24CBDF82000A8
+:1031100008AA20808DF8425042F60120ADF8400008
+:103120009DF81E000AA920F00600801C20F0010076
+:103130008DF81E000220ADF83000ADF8340013A861
+:103140000E90684603F0D4FC002888D1BDF820001A
+:103150006080211D484600F032F9002887D18DF8A3
+:10316000425042F6A620ADF840001C216846079662
+:103170001AF033FF9DF81C00ADF8345020F00F001A
+:10318000401C20F0F00010308DF81C009DF81D0050
+:1031900008AA20F0FF008DF81D009DF81E000AA966
+:1031A00020F0060040F00100801C8DF81E009DF804
+:1031B00000008DF8445040F002008DF80000CDE989
+:1031C0000A8711A80E90ADF83050684603F090FCC5
+:1031D000002899D1BDF82000E08000203FE73EB5EF
+:1031E00004460820ADF8000020460FF0A9FB08B106
+:1031F00010203EBD21460120FEF79DF90028F8D1A0
+:103200002088ADF804006088ADF80600A088ADF80D
+:103210000800E088ADF80A007E4801AB6A46808865
+:10322000002104F061F8BDF800100829E1D0032066
+:103230003EBD1FB50446002002900820ADF80800EE
+:10324000CDF80CD020460FF07BFB10B1102004B05D
+:1032500010BD704802AA81884FF6FF7004F029FA69
+:103260000028F4D1BDF80810082901D00320EEE7AA
+:10327000BDF800102180BDF802106180BDF8041077
+:10328000A180BDF80610E180E1E701B582B002201F
+:10329000ADF800005F4802AB6A464088002104F0A8
+:1032A00023F8BDF80010022900D003200EBD1CB584
+:1032B000002100910221ADF8001001900FF064FB95
+:1032C00008B110201CBD53486A4641884FF6FF7074
+:1032D00004F0EFF9BDF800100229F3D003201CBD63
+:1032E000FEB514460E460746FEF7DBFF28B1304612
+:1032F0000FF026FB18B11020FEBD0F20FEBDF82CEC
+:1033000001D90C20FEBD38460FF01AFB414D18BB09
+:10331000288801A903F05BF90028F3D138788DF8EB
+:103320000500288801A903F0C1FF0028EAD1009018
+:103330009DF800009DF8051040F002008DF8000097
+:10334000090703D040F008008DF80000288869467E
+:1033500003F04AFF0028D5D1ADF80840288833464D
+:1033600002AA002103F0C0FFBDF80810A142C9D095
+:103370000320FEBD7CB50546002000900190088822
+:10338000ADF800000C46284601950FF01BFB18B95C
+:1033900020460FF0F9FA08B110207CBD15B1BDF838
+:1033A000000050B11B486A4601884FF6FF7004F0D8
+:1033B00080F9BDF8001021807CBD0C207CBD30B5AB
+:1033C00093B0044600200D460090142101A81AF085
+:1033D00004FE1C2108A81AF000FE9DF80000CDF89C
+:1033E00008D020F00F00401C20F0F00010308DF8C5
+:1033F00000009DF8010020F0FF008DF801009DF80D
+:10340000200040F002008DF8200001208DF84600D9
+:1034100002E000001200002042F60420ADF8440053
+:1034200011A801902088ADF83C006088ADF83E00FE
+:10343000A088ADF84000E088ADF842009DF8020099
+:1034400006AA20F00600801C20F001008DF8020082
+:103450000820ADF80C00ADF810000FA8059001A9E8
+:1034600008A803F045FB002803D1BDF81800288008
+:10347000002013B030BD000010B504460FF060FA14
+:1034800008B1102010BD2078C0F30210042807D81E
+:103490006078072804D3A178102901D8814201D28D
+:1034A000072010BDE078410706D421794A0703D4EC
+:1034B000000701D4080701D5062010BD002010BD6B
+:1034C00010B513785C08C37F64F30003C3771478E6
+:1034D000A40864F34103C3771078C309887863F3C1
+:1034E0004100887013781C094B7864F347134B70C4
+:1034F0001378DB0863F3000088705078487110BDC2
+:1035000010B5C4780B7864F300030B70C4786408BA
+:1035100064F341030B70C478A40864F382030B7056
+:10352000C478E40864F3C3030B700379117863F380
+:103530000001117003795B0863F341011170037995
+:103540009B0863F3820111700079C00860F3C30126
+:10355000117010BD70B514460D46064604F0D3FD3B
+:1035600080B10178142221F00F01891C21F0F001B3
+:10357000A03100F8081B21461AF0DBFCBDE87040C2
+:1035800004F0A1BD29463046BDE870401322FEF785
+:10359000F8B870B514460E46054604F0B4FD70B197
+:1035A000017821F00F01891C21F0F0012031017018
+:1035B000458021688160BDE8704004F084BD3146DB
+:1035C0002846BDE870401322FEF7DBB810B5FE4C6C
+:1035D00094F8300000280CD104F120014FF6FF725E
+:1035E000A1F110000CF0A3FF00B1FFDF012084F86F
+:1035F000300010BD2DE9F047064608A8894690E83E
+:1036000030041F469046142128461AF0E6FC00219B
+:10361000CAF80010B8F1000F03D0B9F1000F03D1C0
+:1036200014E03878C00711D020680FF0ADF9E8BB7E
+:10363000B8F1000F07D120681230286020681430DC
+:1036400068602068A8602168CAF800103878800790
+:1036500028D560680FF0B6F940BBB9F1000F2DD046
+:10366000FEF719FE0168C6F8B4118188A6F8B811F2
+:10367000807986F8BA01FFF7A9FFDFF84C8308F1DB
+:103680002008C5F80C80626862B196F8B40106F2B1
+:10369000B51140081032FEF74FF81022414660681D
+:1036A0001AF002FC3878400712D500E003E0A06869
+:1036B0000FF06AF950B11020BDE8F087606800286B
+:1036C000F9D0E8606068C6F8B001EBE7A06828614F
+:1036D0000020F1E730B5054608780C4620F00F00D1
+:1036E000401C20F0F001103121700020607095F82E
+:1036F000230030B104280FD0052811D0062814D09B
+:10370000FFDF20780121B1EB101F04D295F82000D3
+:1037100000F01F00607030BD21F0F000203002E0AA
+:1037200021F0F00030302070EBE721F0F000403065
+:10373000F9E710B510B190F8A94044B1A24890F84B
+:10374000354000205CB108601060186010BD00F1C9
+:10375000A8040C6000F1D001F8301160F5E79A4C34
+:1037600034340C60F0E700B58BB00723CDE90212CA
+:103770008DF801300191944900236431059109933A
+:1037800001468DF8103068460CF0A9FE002800D0E4
+:10379000FFDF0BB000BD30B597B00C462C251A9951
+:1037A0008DF80050ADF80200B3B118680190586868
+:1037B0000290ADF80C2010220DF10E001AF074FBEF
+:1037C0000BA9684608F051FD002803D1A17F41F004
+:1037D0001001A17717B030BD00200190E8E72DE976
+:1037E000F0470646008A8CB080B20D468146FDF750
+:1037F00015FE0446744F3078283FDFF8CC814FF037
+:10380000000A122873D2DFE800F072E93509367732
+:103810007E98A8F3E7E6E5E4E35BE3E3A07F00F04E
+:103820000300012806D0002148460BF03AFA0500B3
+:1038300003D101E00121F7E7FFDF98F85C100906EA
+:1038400002D5D8F860000BE0032105F121000EF04D
+:1038500023FDD5F821005D49B0FBF1F201FB120018
+:10386000C5F8210070686866B068A86620782528C9
+:1038700000D0FFDFECE0A07F00F00300012806D0BD
+:10388000002148460BF00DFA060003D101E00121AA
+:10389000F7E7FFDF7078810702D52178252904D06A
+:1038A00040F0010070700CB006E70220287096F816
+:1038B0002000287106F121003136C5E90206F2E741
+:1038C000A07F00F00300012806D0002148460BF03D
+:1038D000E8F9040003D101E00121F7E7FFDF607898
+:1038E000C10605D51320287041346C60DBE7DEE1AA
+:1038F00040F008006070D6E73348082128380EF001
+:10390000CBFC032016E02A208DF8000010220DF1D8
+:10391000020071681AF0C8FA10220DF11200B168A5
+:103920001AF0C2FA284968462C3908F09EFC00B10A
+:10393000FFDF042028706F60B5E7E07FC00600D588
+:10394000FFDFB0680090B38806220321484605F0E7
+:1039500024FB0028A7D0FFDFA5E704B9FFDF7168CB
+:1039600021B1102204F124001AF09EFA28212046E9
+:10397000FDF78CFDA07F00F0030002280ED104F1BA
+:103980002400002300901A4621464846FFF703FF13
+:10399000112807D029212046FDF778FD307A84F8D8
+:1039A000200080E7A07F000700D5FFDF14F81E0F7E
+:1039B00040F008002070A4F816A0C4F818A0C4F8BD
+:1039C0001CA0617808460AE01402002040420F0063
+:1039D00030E068E196E08CE062E009E03FE061F30E
+:1039E0008200410861F3C3006070307AE0705AE7EA
+:1039F000A07F00F00300012806D0002148460BF00C
+:103A000050F9040003D101E00121F7E7FFDF0221B3
+:103A100004F175000EF040FC1020287004F5DA70F7
+:103A20006860B4F875002882FA486C346C61C5E9A6
+:103A3000028038E7A07F00F00300012805D00021B4
+:103A400048460BF02EF918B901E00121F8E7FFDF35
+:103A50000CB0324621464846BDE8F0477AE504B945
+:103A6000FFDF207821289CD93079012802D0022854
+:103A70000AD103E0E07F40F01000E07798F85C1096
+:103A800041F0010188F85C10324621464846FFF7B4
+:103A900061FD0CB02046BDE8F0472321FDF7F6BCE0
+:103AA000327901230321484605F086F878B11120C8
+:103AB0002870327905F10800AA80031D00900321C7
+:103AC000484605F0F6F8002891D0FFDFEBE6A07F2E
+:103AD00000F00300012806D0002148460BF0E1F871
+:103AE000040003D101E00121F7E7FFDF3079207006
+:103AF000D9E60321484605F0FDFB002899D11220A4
+:103B00002870D0E6A07F00F00300012806D0002135
+:103B100048460BF0C6F8050003D101E00121F7E7A4
+:103B2000FFDF95F8740000F00300012878D1A07F32
+:103B300000F00307E07FC0F3400616B1012F04D068
+:103B40002BE095F89000C0072AD0D5F8AC1119B336
+:103B500095F87320087C62F387000874E27FD5F83B
+:103B6000AC1162F341000874D5F8AC1166F30000A3
+:103B70000874AEB1D5F8AC01102204F124017835F7
+:103B80001AF092F9287E40F001002876287820F07B
+:103B9000010005F8780900E016B1022F04D02CE0EE
+:103BA00095F87800C00726D0D5F8A81119B395F874
+:103BB0007320087C62F387000874E27FD5F8A811AF
+:103BC00062F341000874D5F8A81166F30000087488
+:103BD0008EB1D5F8A801102204F1240178351AF02D
+:103BE00063F9287840F0010005F8180B287820F0D8
+:103BF000010005F89009022F51D0002000EB400091
+:103C000005EBC00090F87800800709D595F86C00A6
+:103C1000D5F8B021400805F16D011032FDF78CFD9B
+:103C2000052060F3070815F8740F00F0030060F337
+:103C30000F28287960F31748287F60F31F687548BC
+:103C40005C38027822F00F02921C22F0F00220323F
+:103C50000270427822F00702D21C4270A0F8029053
+:103C6000C0F8088004F0B7FB2078252805D021286B
+:103C700007D0FFDF2078222803D922212046FDF734
+:103C800005FCA07F00F0030001280AD0002148466F
+:103C90000BF019F800283FF412AEFFDF03E6012015
+:103CA000ACE70121F3E7716881F801A0FBE5FFDFD4
+:103CB000F9E570B5574C0025103C14F85C0F20F066
+:103CC0008000207065600CF0D2FB5249A1F1100019
+:103CD00004F013FB04F82C5C062060724D487C3025
+:103CE00020615030A0611030E06170BD70B50D46AC
+:103CF000FDF794FB040000D1FFDF4FF4DE7128468E
+:103D00001AF06BF943485430686104F124002861CB
+:103D1000A07F00F00300012808D0022105F5907073
+:103D20000CF0A6FB002800D0FFDF70BD0121F5E7F5
+:103D30000A46014602F590700CF0BABB70B5054614
+:103D400040689CB0017808290DD00B2903D00C29BC
+:103D500036D101218171686886883046FDF75EFBA7
+:103D6000040035D133E046883046FDF757FB0400A8
+:103D700000D1FFDF2078212822D0282822D16868AE
+:103D800002210C3001F0B8F9E0B168680821001D8B
+:103D900001F0B2F9B0B12D208DF80000ADF802604D
+:103DA000102204F1240101A81AF07EF80BA968463C
+:103DB00008F05BFA00B1FFDF29212046FDF766FB22
+:103DC0001CB070BD687840F008006870F8E7FFDF4D
+:103DD000A07F00F00301022902D120F01000A0779B
+:103DE000207821280AD06868817909B1807898B153
+:103DF000A07F00F0030002285BD0FFDFA07F00F06F
+:103E000003000228DCD1FDF7FBFC0028D8D0FFDF3F
+:103E1000D6E7000024020020687840F008006870AF
+:103E2000E07FC10720D0800701D5062000E00520F3
+:103E300084F823002078292818D02428DED13146A0
+:103E400006200EF03AFD22212046FDF71FFBA07F41
+:103E500000F0030001282AD0002130460AF033FF89
+:103E60000028CBD0FFDFC9E70420E1E7A07F00F006
+:103E70000300012806D0002130460AF012FF050099
+:103E800003D101E00121F7E7FFDF25212046FDF7FF
+:103E9000FDFA0F208DF8580016A905F590700CF06A
+:103EA000FEFA0228AAD00028A8D0FFDFA6E7012149
+:103EB000D3E7687840F0080068709FE72DE9F04389
+:103EC0008BB09946154688460646FDF7A7FA0400CA
+:103ED0004ED0207822284BD3232849D0E07FC0063B
+:103EE00046D4A07F00F00300012806D00021304610
+:103EF0000AF0D7FE070002D00BE00121F7E7A07F10
+:103F000000F00300012804D1012130460AF0C0FE70
+:103F1000074601AB02AA03A93846FFF70AFC03983B
+:103F200000B9FFDF4FB1039807F5907787612078DC
+:103F3000222806D0242804D007E0039900208861B5
+:103F400003E025212046FDF7A1FA03980B214170DB
+:103F500046628580C0E90289029901610199416147
+:103F600004A90CF0BCFA022802D0002800D0FFDF20
+:103F70000BB0BDE8F08330B587B00546FDF74EFACB
+:103F8000017822292FD9807F00F00300012806D074
+:103F9000002128460AF085FE040003D101E001213A
+:103FA000F7E7FFDF227801230321284604F004FE0F
+:103FB000002818D011208DF80400227803A8009062
+:103FC000ADF8082004AB0321284604F072FE00B1CE
+:103FD000FFDF01A904F590700CF061FA022802D00D
+:103FE000002800D0FFDF07B030BD10B586B0044612
+:103FF000FDF714FA0178222919D9807F00F0030017
+:10400000012806D0002120460AF04BFE040003D10F
+:1040100001E00121F7E7FFDF12208DF8000069467B
+:1040200004F590700CF03BFA002800D0FFDF06B0DA
+:1040300010BD2DE9F05F05460C460027007890463C
+:1040400001093E46BB4604F1080A02297ED0072931
+:1040500002D00A2909D142E068680178082905D010
+:104060000B292CD00C292AD0FFDFC6E114271C26EF
+:10407000002C6CD04088A080FDF7D0F95FEA0009E1
+:1040800000D1FFDF99F817005246400809F11801E6
+:10409000FDF752FB68688089208268684168C4F82F
+:1040A00012108068C4F81600A07E20F0060040F0D0
+:1040B0000100A07699F81E0040F040014DE01A275B
+:1040C0000A26002CD5D08088A080FDF7A7F905002E
+:1040D00000D1FFDF51462846FFF7FCFA8DE10CB115
+:1040E000288BA080287A0E287ED006DC01287CD080
+:1040F000022808D0032804D135E0102876D01128F2
+:1041000075D0FFDF79E11E270926002CB1D0A088E9
+:10411000FDF784F95FEA000900D1FFDF287B00F09A
+:1041200003000128207A1BD020F001002072297B97
+:10413000890861F341002072297BC90861F382007C
+:104140002072297B090961F3C30001E04AE117E10C
+:10415000207299F81E0040F0800189F81E104CE191
+:1041600040F00100E2E713270D26002CAAD0A0881A
+:10417000FDF754F98146807F00F00300012806D046
+:104180000021A0880AF08DFD050003D101E0012186
+:10419000F7E7FFDF99F81E0000F00302012A59D06B
+:1041A000A86E817801F003010129217A54D021F011
+:1041B0000101217283789B0863F3410121728378A6
+:1041C000DB0863F38201217283781B0963F3C30167
+:1041D0002172037863F306112172437863F3C711E8
+:1041E000217284F809B003E05EE0A4E08CE09CE07A
+:1041F000C178A172012A32D04279E17A62F30001DA
+:10420000E1724279520862F34101E1724279920807
+:1042100062F38201E1724279D20862F3C301E17272
+:104220000279217B62F3000121730279520862F363
+:10423000410121730279920862F3820121730079AE
+:10424000C00860F3C301217399F8000023285AD9EC
+:10425000262168E0686EA4E741F00101A9E7027930
+:10426000E17A62F30001E1720279520862F34101DE
+:10427000E1720279920862F38201E1720279D20856
+:1042800062F3C301E1724279217B62F30001217381
+:104290004279520862F3410121734279920862F334
+:1042A000820121734079CBE718271026002C67D0B4
+:1042B000A088FDF7B3F88246807F00F00300012854
+:1042C00007D00021A0880AF0ECFC5FEA000903D1C6
+:1042D00001E00121F6E7FFDFE868A06099F801003E
+:1042E00040F0040189F8011099F80200800708D510
+:1042F000012020739AF8000023287ED927215046F8
+:1043000063E084F80CB078E015270F26C4B3A088CA
+:10431000FDF784F8814606225146E86808F00DF85A
+:104320000120A073AEE048464FE0162709263CB3B3
+:10433000287B207261E0297BFE4802290CD01927D6
+:104340000E26ECB101290DD003291AD004291BD067
+:10435000052919D0FFDF23E01B270926BCB3012163
+:10436000217205E001212172617A21F0030161725D
+:1043700010F85C1F4A08520062F3060101700FE05A
+:104380002BE00220207207E0687B052900F00F0077
+:1043900040F0800020721BD0607A20F00300607231
+:1043A000A088FDF73BF805460078212825D0232872
+:1043B00000D0FFDFA87F00F00300012810D000210B
+:1043C000A0880AF080FC22212846FDF75FF814E05F
+:1043D000607A20F00300401CE1E7A8F8006011E0DB
+:1043E0000121EDE70CB16888A080287A03282BD042
+:1043F00004280AD005284BD0FFDFA8F800600CB1D4
+:10440000278066800020BDE8F09F15270F26002C2E
+:10441000E3D0A088FDF702F8807F00F003000128B8
+:1044200006D00021A0880AF03CFC050003D101E081
+:104430000121F7E7FFDFD5F821000622514607F0FA
+:104440007CFF84F80EB0D8E717270926002CC4D0CB
+:10445000A088FCF7E3FF8146807F00F0030001287D
+:1044600006D00021A0880AF01CFC050003D101E061
+:104470000121F7E7FFDFA878800701D5022000E0DF
+:104480000120207299F800002328B6D927214AE795
+:1044900019270E26002CA0D0A088FCF7BFFF5FEAEA
+:1044A000000900D1FFDFC4F808B0A4F80CB084F80C
+:1044B00008B0A07A40F00300A07299F81F1061F3D1
+:1044C0008200A07299F81F1001EA510161F3C30044
+:1044D000A072687A00F0030001288ED1607A40F063
+:1044E0000400607299F81E00E97A00F003000128C8
+:1044F00013D0607B61F300006073AA7A217B62F3C2
+:1045000000012173EA7A520862F341006073A87ACD
+:10451000400860F3410121736FE7207B61F30000E5
+:104520002073AA7A617B62F300016173EA7A520810
+:1045300062F341002073A87A400860F3410161737F
+:104540005BE710B57B4C30B10146102204F120002E
+:1045500019F0AAFC012084F8300010BD10B5044603
+:10456000FFF734F8734920461022BDE8104020318F
+:1045700019F09ABC70B56F4C06004FF0000514D0CE
+:104580000EF0DEF908B110250DE00621304607F0E7
+:10459000BBFE411C06D0206614F85C0F40F0800082
+:1045A000207000E00725284670BD14F85C0F20F04D
+:1045B0008000F5E7007810F00F0204D0012A05D042
+:1045C000022A0CD110E0000909D10AE000090128F3
+:1045D00007D0022805D0032803D0042801D00720E3
+:1045E00070470870002070470620704705282AD2BF
+:1045F000DFE800F003070F171F00087820F0FF0026
+:104600001EE0087820F00F00401C20F0F000103071
+:1046100016E0087820F00F00401C20F0F000203059
+:104620000EE0087820F00F00401C20F0F000303041
+:1046300006E0087820F00F00401C20F0F000403029
+:10464000087000207047072070472DE9F041804630
+:1046500088B00D46002708460EF0BDF9A8B94046BF
+:10466000FCF7DCFE040003D02078222815D104E0FA
+:1046700043F2020008B0BDE8F08145B9A07F010611
+:1046800003D500F00300022801D01020F2E7A07F3C
+:10469000C10601D4010702D50DB10820EAE725497A
+:1046A00091F85C10C90701D01120E3E7E17FC9064A
+:1046B00001D50D20DEE700F00300022805D125B169
+:1046C0002846FEF7D9FE0700D4D1A07F00F00300F2
+:1046D000012806D0002140460AF0E3FA060002D085
+:1046E0000CE00121F7E7A07F00F0030001280BD0C8
+:1046F000002140460AF0CCFA060007D0A07F00F067
+:104700000300022804D009E00121F2E70420B1E708
+:1047100025B12A4631462046FEF7D2FE07AB1A469F
+:1047200069463046FFF705F8009800B9FFDF0C2016
+:10473000009901E014020020487006F59070C1F85D
+:104740002480486100200881A07F00F00300012838
+:1047500028D0EDB302200871301D886170784009BF
+:104760000877B078C0F340004877287800F001025D
+:10477000887F62F301008877E27F62F382008877A6
+:10478000E27F520862F3C3008877B27862F30410C4
+:104790008877A878C87701F1210228462031FEF7F2
+:1047A000AFFE22E001200871287800F00102087EA7
+:1047B00062F3010008762A78520862F382000876D4
+:1047C0002A78920862F3C30008762A78D20800E0BB
+:1047D00007E062F30410087624212046FCF756FE19
+:1047E0000BE0032008710520087625212046FCF700
+:1047F0004DFEA07F20F08000A07701A900980BF06B
+:104800006EFE022801D000B1FFDF384632E72DE905
+:10481000FF4FF94A0D4699B09A4607CA14AB0027D4
+:1048200083E807001998FCF7F9FD060006D03078F8
+:10483000262806D008201DB0BDE8F08F43F2020004
+:10484000F9E7B07F00F00309B9F1010F03D0B9F126
+:10485000020F07D008E03DB91B98FEF70DFE0028B7
+:10486000E9D101E01B9878BBB07F00F0030001287C
+:1048700006D0002119980AF014FA040003D101E0CF
+:104880000121F7E7FFDF852D25D007DCD5B1812D8C
+:104890001BD0822D1BD0832D08D11AE0862D1CD071
+:1048A000882D1CD0892D1CD08A2D1CD00F20207162
+:1048B0000F281AD001208DF83400201D0E90207989
+:1048C000A8B158E10020F2E70FE00120EFE7022055
+:1048D000EDE70320EBE70520E9E70620E7E70820FE
+:1048E000E5E70920E3E70A20E1E70720A3E7B9F1BC
+:1048F000010F17D0D4E91950804602200190012001
+:104900000090A87898F80210C0F3C000C1F3C0016D
+:1049100008405FEA000B5DD050460EF011F8002809
+:104920006CD12DE0D4E9198501200190022000907E
+:10493000214630461B9AFEF7C3FD1B98007800F015
+:104940000101A87861F30100A870F17F61F3820092
+:10495000A870F17F490861F3C300A870A17861F3E2
+:104960000410A870607840092870A078C0F3400057
+:1049700068701B988078E870002068712871C0E723
+:10498000DAF80C000DF0DCFFC0BBDAF81C000DF00B
+:10499000D7FF98BBDAF80C00A060DAF81C00E060E2
+:1049A00098F80100A17800F0010041EA4000A070F1
+:1049B00098F80210C0B2C1F30011891E0840A0701F
+:1049C000002084F82000009906F1170002290BD07E
+:1049D00001210AE098F80110A07801F00101FD2200
+:1049E00042EA41010840E2E7002104EB81018861CD
+:1049F0000199701C022902D0012101E028E0002168
+:104A000004EB81018861A87800F00300012849D1F6
+:104A100098F8020000F00300012843D1B9F1010F1A
+:104A200004D12A1D691D1B98FEF76AFD297998F8A3
+:104A3000040001408DF82C10687998F8052010408A
+:104A40008DF8300001432DD050460DF079FF08B1AC
+:104A50001020F0E60AF1100004F5D47104F17C0294
+:104A60000490B9F1020F3CD00090CDE90121002162
+:104A70000BAB5A462046FEF7BDFD0028E9D104F5F0
+:104A8000D67104F19402B9F1010F30D0049800906E
+:104A9000CDE9012100210CAB5A462046FEF7AAFDC4
+:104AA0000028D6D1A078800740D4A87898F80210C2
+:104AB000C0F38000C1F38001084337D0297898F80B
+:104AC000000014AAB9F1010F17D032F810204B00E2
+:104AD000DA4012F0030718D0012F1ED0022F12D196
+:104AE0001DE0CDF800A0CDE901210121C0E7CDF8FE
+:104AF00000A0CDE901210121CDE732F811204300CA
+:104B0000DA4002F00307032F07D0BBF1000F0DD0EE
+:104B1000012906D0042904D008E00227F5E701277F
+:104B2000F3E7012801D0042800D10427F07F40F0EA
+:104B300001006BF34100F077A07881074FF003008C
+:104B40000CD5A071BBF1000F15D100BF8DF85C0032
+:104B500017AA31461998FEF71CFD0CE00221022F1E
+:104B600018D0012F18D0042F22D00020A071F07F80
+:104B700020F00100F07725213046FCF787FC0DA9D5
+:104B800004F590700BF08BFC10B1022800D0FFDF11
+:104B9000002050E6A171D9E7A1710D2104F1240094
+:104BA00019F01BFA607840F0020060700420CDE735
+:104BB0000120A071DFE72DE9F04387B091468846D8
+:104BC0000446FCF72BFC070006D03878272806D0CF
+:104BD000082007B0BDE8F08343F20200F9E7B87F90
+:104BE00000F00300012809D0002120460AF059F8FE
+:104BF000040006D104E0000060E301000121F4E7B5
+:104C0000FFDFA679012E08D0B8F1000F0FD048467B
+:104C10000DF096FEB8B11020DBE7B9F1000F25D1F9
+:104C2000B8F1000F09D0B8F1010F1FD120E0022E1A
+:104C300005D0032E05D0FFDF28E00C2526E0012556
+:104C400024E0022522E0B8F1020F03D0B8F1010FF1
+:104C50000AD00BE0032E09D100251022494604F1A9
+:104C6000210019F021F911E0022E01D00720B0E750
+:104C70000025102104F1210019F08DF95FEA0900E7
+:104C800004D0062107F040FBC4F8210060782521FC
+:104C900040F0020060703846FCF7F8FB6078C1070E
+:104CA00013D020F00100607002208DF8000004F1A4
+:104CB000210002908DF804506946FF300BF0EFFBA5
+:104CC000022804D018B1FFDF01E084F82050002052
+:104CD0007FE730B587B00D460446FCF79FFB88B1EF
+:104CE000807F00F0030001280FD00021204609F04A
+:104CF000D8FF04000ED028460DF022FE38B1102057
+:104D000007B030BD43F20200FAE70121EEE7607818
+:104D1000400701D40820F3E7294604F1410020228E
+:104D2000054619F0C1F8607840F010006070010786
+:104D30000FD520F00800607013208DF80000694640
+:104D400004F5907001950BF0AAFB022801D000B188
+:104D5000FFDF0020D4E770B592B00D460646FCF7A1
+:104D60005DFB18B10178272940D103E043F202002E
+:104D700012B070BD807F00F00300012806D0002132
+:104D8000304609F08EFF040003D101E00121F7E76E
+:104D9000FFDFA079022829D1A078C00726D0002300
+:104DA00002220321304603F007FF08B30C208DF8E0
+:104DB00005000A9604A804F5907402220090069457
+:104DC000ADF80C2005AB0321304603F072FF00B1B3
+:104DD000FFDF04208DF808008DF81C500BA901A8F6
+:104DE0000BF07DFB00B1FFDF0020C1E70820BFE72B
+:104DF0001120BDE770B5064686B014460D4608463C
+:104E00000DF09EFD18B920460DF0BEFD10B110202A
+:104E100006B070BDA6F57F40FF380ED03046FCF7D7
+:104E2000FDFA38B1417822464B08811C1846FCF740
+:104E300083FC07E043F20200EAE72046FDF796FA1A
+:104E40000028E5D11021E01D0DF026FAE21D2946CB
+:104E50006846FEF788FC102204F11700019919F04A
+:104E600023F80020D4E72DE9F041044690B0154620
+:104E70008846002708460DF0AEFD18B928460DF00B
+:104E8000AAFD18B1102010B0BDE8F0812046FCF753
+:104E9000C5FA060003D03078272818D102E043F283
+:104EA0000200F0E7B07F00F00300012806D00021E7
+:104EB000204609F0F6FE040003D101E00121F7E7E6
+:104EC000FFDF6078400702D5A078800701D4082072
+:104ED000D9E7B07F00F00300012818D0D4E9190108
+:104EE000407800B1B5B1487810B1B8F1000F11D0D9
+:104EF000C5B1EA1D02A8E168FEF735FC102205F1F4
+:104F00001700039918F0A4FF30B104270AE0D4E990
+:104F10001910E5E70720B6E71022E91D04F131007A
+:104F200018F0C2FFB8F1000F06D0102208F10701F7
+:104F300004F1210018F0B8FF6078252140F002004C
+:104F400060703046FCF7A2FA6078C10715D020F0F7
+:104F50000100607002208DF8200004F121000A9009
+:104F600010300B908DF8247008A9EF300BF097FAF1
+:104F7000022804D018B1FFDF01E084F8207000207F
+:104F800081E7F8B515460E460746FCF747FA0400D8
+:104F900004D02078222804D00820F8BD43F2020073
+:104FA000F8BDA07F00F00300022802D043F2050004
+:104FB000F8BD30460DF0C4FC18B928460DF0C0FC11
+:104FC00008B11020F8BD00953288B31C2146384640
+:104FD000FEF7E1FB112814D00028F3D1297C4A0800
+:104FE000E17F62F30001E1772A7C62F34101E1771E
+:104FF000297C890884F82010A17F21F08001A17705
+:10500000F8BDA17F0907FBD4D6F80200C4F836002A
+:10501000D6F80600C4F83A003088A0861022294647
+:1050200004F1240018F040FF287C4108E07F61F380
+:105030008200E077297C61F3C300E077287C800858
+:1050400084F82100A07F40F00800A0770020D3E77B
+:1050500070B596B00D46064613B1072016B070BD68
+:10506000FCF7DCF9040007D02078222802D3A07FC7
+:10507000400604D40820F1E743F20200EEE7C5B190
+:105080002D208DF80000ADF802601022294601A8FD
+:1050900018F00AFF287C4108E07F61F30000E07708
+:1050A000297C61F34100E077287C800884F82000A7
+:1050B00004E02E208DF80000ADF802600BA96846D0
+:1050C00007F0D3F8A17F21F04001A177C6E770B5C2
+:1050D0000D46FCF7A3F9040005D028460DF054FC5A
+:1050E00020B1102070BD43F2020070BD2946204659
+:1050F000FEF7F0FA002070BD05E000BF10F8012BAC
+:105100000AB100207047491E89B2F7D201207047CA
+:10511000F0B50078059F1E4614460D46012800D0C4
+:10512000FFDF0C2030803A203880002C08D0287A0D
+:10513000052806D0287B012800D0FFDF17206081DA
+:10514000F0BDA889FBE72DE9F04786B0144691F839
+:105150000C900E9A0D46B9F1010F0BD0102100787A
+:105160002E8A8846052807D0062833D0FFDF06B0F0
+:10517000BDE8F0870221F2E7E8890C2100EB40004E
+:1051800001EB4000188033201080002CEFD0E8891C
+:10519000608100271AE00096688808F1020301AADE
+:1051A000696900F092FE06EB0800801C07EB4701DE
+:1051B00086B204EB4102BDF8040090810DF10601B6
+:1051C00040460E320BF02CFA7F1CBFB26089B84209
+:1051D000E1D8CCE734201080E889B9F1010F11D073
+:1051E000122148430E301880002CC0D0E88960811D
+:1051F0004846B9F1010F00D00220207300270DF1BD
+:10520000040A1FE00621ECE70096688808F1020313
+:1052100001AA696900F059FE06EB0800801C86B2FD
+:10522000B9F1010F12D007EBC70004EB4000BDF845
+:105230000410C18110220AF10201103018F034FE6E
+:105240007F1CBFB26089B842DED890E707EB470108
+:1052500004EB4102BDF80400D0810AF1020140468E
+:1052600010320BF0DDF9EBE72DE9F0470E4688B080
+:1052700090F800C096F80C80378AF5890C201099B8
+:1052800002F10C044FF0000ABCF1030F08D0BCF18E
+:10529000040F3ED0BCF1070F7DD0FFDF08B067E7F9
+:1052A00005EB850C00EB4C00188031200880002AAB
+:1052B000F4D0A8F1060000F0FF09558125E018217F
+:1052C00001A818F08AFE00977088434601AA716908
+:1052D00000F0FBFDBDF804002080BDF80600E08072
+:1052E000BDF808002081A21C0DF10A0148460BF010
+:1052F00097F9B9F1000F00D018B184F804A0A4F810
+:1053000002A007EB080087B20A346D1EADB2D6D2F8
+:10531000C4E705EB850C00EB4C00188032200880B8
+:10532000002ABBD0A8F1050000F0FF09558137E045
+:1053300000977088434601AA716900F0C6FD9DF888
+:105340000600BDF80410E1802179420860F30001F5
+:1053500062F34101820862F38201C20862F3C30171
+:10536000020962F30411420962F34511820962F3F2
+:1053700086112171C0096071BDF8070020812246A5
+:105380000DF1090148460BF04BF918B184F802A061
+:10539000A4F800A000E007E007EB080087B20A3499
+:1053A0006D1EADB2C4D279E7A8F1020084B205FB4C
+:1053B00008F000F10E0CA3F800C035230B80002A82
+:1053C000A6D055819481009783B270880E3271699E
+:1053D00000F07BFD62E72DE9F84F1E460A9D0C4662
+:1053E00081462AB1607A00F58070D080E089108112
+:1053F00099F800000C274FF000084FF00E0A0D2816
+:1054000073D2DFE800F09E070E1C28303846556A3C
+:1054100073737300214648460095FFF779FEBDE897
+:10542000F88F207B9146082802D0032800D0FFDFA8
+:10543000378030200AE000BFA9F80A80EFE7207B20
+:105440009146042800D0FFDF378031202880B9F151
+:10545000000FF1D1E3E7207B9146042800D0FFDF65
+:1054600037803220F2E7207B9146022800D0FFDF10
+:1054700037803320EAE7207B1746022800D0FFDF81
+:105480003420A6F800A02880002FC8D0A7F80A80F2
+:10549000C5E7207B1746042800D0FFDF3520A6F89B
+:1054A00000A02880002FBAD04046A7F80A8012E05A
+:1054B000207B1746052802D0062800D0FFDF1020E9
+:1054C000308036202880002FA9D0E0897881A7F885
+:1054D0000E80B9F80200B881A1E7207B9146072829
+:1054E00000D0FFDF37803720B0E72AE04FF012000E
+:1054F00018804FF038001700288090D0E08978811C
+:10550000A7F80E80A7F8108099F800000A2805D0A7
+:105510000B2809D00C280DD0FFDF80E7207B0C285A
+:1055200000D0FFDF01200AE0207B0D2800D0FFDF44
+:10553000042004E0207B0E2800D0FFDF0520387314
+:105540006DE7FFDF6BE770B50C460546FBF766FFBE
+:1055500020B10078222804D2082070BD43F2020056
+:1055600070BD0521284609F09CFB206008B1002091
+:1055700070BD032070BDFFB585B00746089814467E
+:105580000D46022628B908A93846FFF7DCFF002897
+:1055900040D108980121801D04F074FDADF8080089
+:1055A00002464DB100233146384603F005FB98B35F
+:1055B0000898007880BB05E02078092820D00F28C3
+:1055C0002BD0FFDF03A8009004ABBDF808203146C4
+:1055D000384603F06EFB00281CD1089802A9801DF4
+:1055E000C4E90107DDE90332204604F058FD40B369
+:1055F000072824D2DFE800F01A182323211C1E00FC
+:10560000072600233146384603F0D6FA0028D9D1C0
+:1056100043F2040009B0F0BD06E0002331463846ED
+:1056200003F0CAFA0028CDD11120F3E70020F1E7FA
+:105630000820EFE743F20300ECE70720EAE7032046
+:10564000E8E703980090BDF8083004223146384658
+:1056500003F0A3FC0028DDD1002DDBD008990D70EC
+:10566000D8E710B588B01C46AAB104238DF80030E5
+:105670001388ADF80C305288ADF80E208A788DF87A
+:1056800012200988ADF8101000236A462146FFF762
+:1056900072FF08B010BD1020FBE770B50D46052164
+:1056A00009F0FFFA040000D1FFDF2946A01DBDE884
+:1056B000704004F0D0BC70B596B00C460646FFF7BB
+:1056C000ECFF05462146304601F036FE012130460A
+:1056D00001F050FE002D25D13046FBF79FFE05005E
+:1056E00000D1FFDF95F822001B281BD9172C19D9F0
+:1056F0003A208DF80000ADF8026095F82200211DD7
+:10570000884201D9241D00E00446ADF8044040F66B
+:105710004800ADF806000BA9684606F0A6FD002873
+:1057200000D0FFDF16B070BD2DE9F84305460078C4
+:1057300000260C4612287BD2DFE800F0896464431F
+:105740003B663737133737370937373737372879D5
+:10575000001FC0B2022801D010281FD104BBFFDFF8
+:105760001EE004B9FFDF6088052109F09AFA00788D
+:10577000032805D004280AD0072811D0FFDF0DE048
+:105780002879801FC0B202280AD048B106E02879E3
+:10579000401FC0B2022803D0102801D0072657E0CE
+:1057A000607840F00800607052E0002CF8D1FFDF14
+:1057B000F6E704B9FFDF28790128F1D160881721C5
+:1057C00042E0A888052180B2804609F06AFA0746BF
+:1057D00004B1FFDF07B9FFDF4146B81D04F015FC37
+:1057E00002F091FC040008D0607840F0080060707E
+:1057F000A4F8028002F067FC2BE013214046FDF77D
+:1058000031F937E0FFDF23E004B9FFDF60880521CD
+:1058100009F047FA070000D1FFDF6946B81D04F020
+:10582000FBFB00B1FFDFA988172902D2172201E094
+:105830000DE00A46BDF80000824201D9014602E0AF
+:10584000172900D217216088FFF735FFA8E7FFDF8F
+:1058500084B1607800070DD52078182220F00F0061
+:10586000C01C20F0F00090302070294604F10800A0
+:1058700018F05FFB3046BDE8F88300200870881DF3
+:1058800004F0B7BB0A460146901D04F0C4BB70B5D6
+:105890000546052109F005FA040000D1FFDF29467D
+:1058A000A01DBDE8704004F0B0BB2DE9F74F90B0EB
+:1058B0004FF0000AADF830A0ADF804A047880C46C0
+:1058C00005460521384609F0ECF9060000D1FFDF56
+:1058D00024B1A780A4F806A0A4F808A0297A04F1AE
+:1058E00010003827C91E4FF00C0B4FF001084FF085
+:1058F000120902900F297DD2DFE801F0F1F0EF7F6D
+:1059000008D2888D9F3DDBF2EDB6B60030780228D4
+:1059100000D0FFDFA8890BEBC001ADF804103021E7
+:10592000ADF83010002C25D06081B5F80E8000272E
+:105930001DE004EBC709317989F80E107188A9F8C8
+:105940000C10CDF800806888042305AA296900F0AE
+:10595000BCFABDF81410A9F8101008F10400BDF845
+:1059600016107F1C1FFA80F8A9F81210BFB26089C8
+:10597000B842DED808E13078022800D0FFDFE9899C
+:105980000BEBC100ADF804003020ADF8300095F805
+:105990000CB0002CABF10400C0B20F90EAD06181D2
+:1059A000B5F81090002722E0CDF8009068885B469B
+:1059B00003AA696900F089FA09EB0B001FFA80F964
+:1059C00004EBC70808F10C0204A90F980AF028FE9E
+:1059D00018B188F80EA0A8F80CA0BDF80C10A8F813
+:1059E0001010BDF80E107F1CA8F81210BFB260890D
+:1059F000B84200E0C7E0D7D8C6E00CA8009001ABE1
+:105A0000224629463046FFF79EFBBDE03078082845
+:105A100005D0FFDF03E03078082800D0FFDFE889F9
+:105A20001030ADF804003620ADF83000002C3FD027
+:105A3000A98961817188A18127E03078092800D087
+:105A4000FFDFA88900F10C01ADF804103721ADF893
+:105A50003010002C2CD06081E8890090AB896888D8
+:105A600004F10C02296955E0E8893921103080B22F
+:105A7000ADF80400ADF83010002C72D0A989618116
+:105A8000287A10280AD002212173E989E181288A25
+:105A90000090EB8968886969029A3BE00121F3E78D
+:105AA0000CA8009001AB224629463046FFF7DCFBEC
+:105AB0006AE030780A2800D0FFDFADF80490ADF836
+:105AC00030704CB3A9896181A4F810A0A4F80EA08D
+:105AD00084F80C8058E020E002E030E038E041E05B
+:105AE00030780B2800D0FFDF288AADF830701230F4
+:105AF000ADF8040084B104212173A9896181E98989
+:105B0000E181298A2182688A00902B8A688804F1C1
+:105B10001202696900F0D9F936E030780C2800D01B
+:105B2000FFDFADF80490ADF8307044B30521217368
+:105B3000A4F80AA0A4F80EA0A4F810A024E00CA8D1
+:105B4000009001AB224629463046FFF7E1FA1BE000
+:105B50000CA8009001AB224629463046FFF73BFCDB
+:105B600012E00DE00B203B21ADF80400ADF8301041
+:105B700034B1A4F80680A4F808A084F80AA003E0D1
+:105B80001299088014E0FFDF1299BDF80400088024
+:105B900074B1BDF830002080BDF804006080287A20
+:105BA000032805D0102803D0112801D086F800A0C2
+:105BB00013B00020BDE8F08F2DE9FC4156880F4658
+:105BC000804615460521304609F06BF8040000D1E7
+:105BD000FFDFA41DCDE900642B463A4640466968C4
+:105BE00004F011FCBDE8FC8170B50D46052109F0FB
+:105BF00058F8040000D1FFDF2946A01DBDE8704021
+:105C000004F015BA70B50D46052109F04AF80400F4
+:105C100000D1FFDF2946A01DBDE8704004F03ABA6C
+:105C20002DE9F0438DB00D461446814607A9FFF7D4
+:105C30008AFC002814D14FF6FF7601274FF4205834
+:105C40008CB103208DF800001020ADF8140008A8D6
+:105C5000069008AA204605A90AF001FD78B10720A0
+:105C60000DB0BDE8F0830820ADF80C508DF812702F
+:105C70008DF80000ADF80E60ADF810800CE00798CC
+:105C8000A1780171218841808DF81270ADF80C5017
+:105C9000ADF81080ADF80E606A4602214846079BB9
+:105CA000FFF769FCDCE708B501228DF8022042F617
+:105CB0000202ADF800200A4603236946FFF7D1FC33
+:105CC00008BD08B501228DF8022042F60302ADF8A6
+:105CD00000200A4604236946FFF7C3FC08BD00B54F
+:105CE00087B079B102228DF800200A88ADF80C2027
+:105CF0004988ADF80E1000236A460521FFF73BFCEA
+:105D000007B000BD1020FBE709B10723A9E4072075
+:105D1000704770B588B00D461446064607A9FFF7D0
+:105D200012FC00280ED17CB10620ADF80C508DF885
+:105D30000000ADF80E40079B6A4608215C803046A3
+:105D4000FFF719FC08B070BD05208DF80000ADF814
+:105D50000C50F0E700B587B059B107238DF800303B
+:105D6000ADF80C20049100236A460921FFF703FCDB
+:105D7000C6E71020C4E770B588B00C46064600257B
+:105D800007A9FFF7E0FB0028DCD107980121801D5F
+:105D900004F078F99CB12178062921D2DFE801F0DE
+:105DA000200505160318801E80B2C01EE28880B24E
+:105DB0000AB1A3681BB1824203D90C20C2E71020AC
+:105DC000C0E7042904D0A08850B901E00620B9E753
+:105DD000012913D0022905D004291CD005292AD075
+:105DE0000720AFE709208DF800006088ADF80C00AF
+:105DF000E088ADF80E00A068049023E00C208DF838
+:105E000000006088ADF80C00E088ADF80E00A068D6
+:105E10000A25049016E00D208DF800006088ADF88A
+:105E20000C00A088ADF80E00E088ADF81000A06866
+:105E30000B25059006E00E208DF8000060788DF8A7
+:105E40000C000C256A4629463046079BFFF793FB5A
+:105E500078E700B587B00F228DF80020ADF80C1060
+:105E600000236A461946FFF786FB49E700B587B06D
+:105E700071B102228DF800200A88ADF80C20498803
+:105E8000ADF80E1000236A460621FFF774FB37E7D2
+:105E9000102035E770B588B0064601200D46ADF8F4
+:105EA0000C108DF80000014600236A463046FFF7CB
+:105EB00062FB040008D12946304601F02EFA002189
+:105EC000304601F057FA20463CE7F8B51C46154627
+:105ED0000E46069F09F048F82346FF1DBCB2314626
+:105EE0002A46009408F060FCF8BD000018B18178E3
+:105EF000012938D101E010207047018842F60112D3
+:105F0000881A914231D018DC42F60102A1EB02005E
+:105F100091422AD00CDC41B3B1F5C05F25D06FF4BB
+:105F2000C050081821D0A0F57060FF381BD11CE0CC
+:105F300001281AD002280AD117E0B0F5807F14D0CA
+:105F400008DC012811D002280FD003280DD0FF282B
+:105F500009D10AE0B0F5817F07D0A0F58070033841
+:105F600003D0012801D0002070470F2070470B2874
+:105F700026D008DC1BD2DFE800F01C2025251A25DE
+:105F8000292325271E0011281CD008DC0C2817D037
+:105F90000D281DD00F2815D0102808D110E0822818
+:105FA00009D0842810D0852810D0872812D003204B
+:105FB0007047002070470520704743F20300704788
+:105FC000072070470F207047042070470620704755
+:105FD0000C2070474FF45050704708280DD2DFE86E
+:105FE00000F00406040C0C080C0A00207047112075
+:105FF000704707207047082070470320704738B566
+:106000000C46050041D06946FEF7D4FA002819D1A4
+:106010009DF80010607861F3020060706946681CAA
+:10602000FEF7C8FA00280DD19DF80010607861F3E2
+:10603000C5006070A978C1F34101012903D002298C
+:1060400005D0072038BD217821F0200102E0217819
+:1060500041F020012170410704D0A978C90861F3FB
+:1060600086106070607810F0380F07D0A9780909A1
+:1060700061F3C710607010F0380F02D160784006ED
+:1060800003D5207840F040002070002038BD70B566
+:1060900004460020088015466068FFF7B0FF00281E
+:1060A00016D12089A189884211D860688078C007FC
+:1060B0000AD0B1F5007F0AD840F20120B1FBF0F21E
+:1060C00000FB1210288007E0B1F5FF7F01D90C20FA
+:1060D00070BD01F201212980002070BD10B5047847
+:1060E000137864F3000313700478640864F34103C5
+:1060F00013700478A40864F3820313700478E4082E
+:1061000064F3C30313700478240964F30413137055
+:106110000478640964F3451313700078800960F310
+:106120008613137031B10878C10701D1800701D5FA
+:10613000012000E0002060F3C713137010BD427807
+:10614000530702D002F0070306E012F0380F02D026
+:10615000C2F3C20300E001234A7863F302024A70EB
+:10616000407810F0380F02D0C0F3C20005E04307BA
+:1061700002D000F0070000E0012060F3C5024A7081
+:1061800070472DE9F04796B00D00804613D0B8F166
+:10619000000F14D01221284617F0FDFE06AAFF2199
+:1061A000012005F09DFE0024264637464FF4205975
+:1061B0006FF4205A78E0102016B0BDE8F087072071
+:1061C000FAE700BF9DF8220001280AD1BDF820009F
+:1061D00048450BD010EB0A000AD001280CD0022849
+:1061E0000CD0042C0ED0052C0FD10DE0012400E0C2
+:1061F0000224BDF81E6008E0032406E00424BDF874
+:106200001E7002E0052400E00624BDF81E10414582
+:106210004AD12C74D6B30DF140094FF0000811AAF1
+:10622000CDF81490CDF80880CDE903824FF0070A2D
+:10623000CDE900A810234246FF21304605F0FEFEBE
+:1062400010BBBDF840002A46C0B211A90AF0E8F917
+:10625000D0B9AE81D7B103A90BAE4046CDF80880C6
+:1062600081E84102CDE900A813230022FF2138462E
+:1062700005F0E4FE40B9BDF84000F11CC01EC0B2FC
+:106280002A1D0AF0CDF910B1032095E70AE0BDF808
+:106290002D00E881062C05D19DF82200A872BDF8DA
+:1062A00020002881002087E706A805F021FE0028AD
+:1062B00088D0FFF75CFE7FE72DE9F8439846DDE9DB
+:1062C000087614460D00814600D1FFDF0CB1012194
+:1062D00000E0002105F1080004F0DEFC30800246F9
+:1062E00000232146484602F067FC40B100973288FF
+:1062F00043462146484602F0DCFCBDE8F883072C03
+:1063000001D01120F9E743F20400F6E72DE9F0434C
+:106310008DB00E46DDE9149805461C46174614213B
+:1063200006A817F05AFE012002218DF81C108DF8E6
+:1063300018008DF81D80ADF8207064B1A178C907F0
+:1063400009D08DF82200E088ADF82600A088ADF8CD
+:106350002400A0680A9001F0D6FE040023D06580D6
+:106360000BA904A8CDE900010CAB00223146284658
+:10637000FFF7A2FF002813D1049808368DE87100BA
+:106380000BAA494606A80C9B05F057F8064660780C
+:10639000000701D501F097FE5EB13046FFF71DFE04
+:1063A0000DB0BDE8F08313212846FCF75BFB03200A
+:1063B000F6E704980090BDF82C300422002128460E
+:1063C00002F0EBFDECE7F0B58DB000240746099430
+:1063D00006A80A94CDE904400725CDE900540794A6
+:1063E00008940E460294039410232246384605F082
+:1063F00025FE80B90BA8059007A90294CDE90341B9
+:10640000CDE90054BDF8183000223146384605F079
+:10641000F8FB002801D0FFF7AAFD0DB0F0BD05F094
+:106420009DBA2DE9FC470546002600780C46B0468B
+:106430000D2871D2DFE800F0B2070EAA30C853531E
+:106440007188A68C970004B1FFDFA88880B201F0A4
+:10645000CCFFA4E0A888042180B2814608F021FC8A
+:10646000074604B1FFDF07B9FFDF494607F108001F
+:1064700004F0ABFB01F047FE040008D0607840F068
+:1064800008006070A4F8029001F01DFE88E013215E
+:106490004846FCF7E7FA97E004B9FFDF608804217B
+:1064A00008F0FFFB070000D1FFDFE888ADF800002F
+:1064B000002038809DF80000010704D5C00602D5F1
+:1064C000A888388005E09DF80100400667D5A888B7
+:1064D00078806078022640F0080060705FE0E8880D
+:1064E000ADF8000004B9FFDF9DF80100000604D5F7
+:1064F0002878072806D0062828D0607840F00800C1
+:1065000060704CE06088042108F0CBFB060000D1ED
+:10651000FFDFA888708019E040E004B9FFDF6088E1
+:10652000042108F0BEFB070000D1FFDF07F10800DF
+:1065300005F04CFA90F0010F02D1E87900062ED553
+:1065400060880226B880D8E704B9FFDF0226D4E7C6
+:1065500004B9FFDF022661880122204601F089FF8D
+:106560004FF00108C9E7A88987B204B1FFDF686866
+:1065700000902889ADF8040001226946384601F0F0
+:1065800093FF0CE0002CB8D1FFDFB6E704B9FFDFC2
+:10659000022660880021FFF735FBAEE7FFDF9CB1E4
+:1065A0006078000710D5B8F1000F0DD120781422C3
+:1065B00020F00F00001D20F0F000803020702946F0
+:1065C00004F1080017F0B5FC3046BDE8FC873EB585
+:1065D0000C0008D06B4601AA002105F0AEFD20B1E9
+:1065E000FFF7C5FC3EBD10203EBD00202080A070FE
+:1065F0009DF8050002A900F00700FDF7F7FF50B96C
+:106600009DF8080020709DF8050002A9C0F3C200A3
+:10661000FDF7ECFF08B103203EBD9DF80800607057
+:106620009DF80500C109A07861F30410A0709DF8E1
+:106630000510890961F3C300A0709DF80410890654
+:1066400001D5022100E0012161F342009DF8001014
+:1066500061F30000A07000203EBD70B514460646F0
+:106660000D4651EA040005D075B108460CF0AAF9B0
+:1066700078B901E0072070BD2946304605F0B8FD25
+:1066800010B1BDE8704072E454B120460CF09AF9A4
+:1066900008B1102070BD21463046BDE8704096E735
+:1066A000002070BD2DE9FE4F05460C46007A0A31E8
+:1066B000009104F108010291904600270C31821EDE
+:1066C0003E464FF0020B4FF0010A0191092A75D2A4
+:1066D000DFE802F0F3F20574252577B6F400688848
+:1066E000042108F0DEFA060000D1FFDF308810B187
+:1066F00052270726E9E051271026002C7ED0688813
+:10670000A08084F806A0A88900220099FFF7A5FFC1
+:10671000002874D1A8892081288AE081F8E0B5F8A2
+:106720001290072825D1E87B000622D5512709F1D0
+:10673000140086B2002CE1D0A88900220099FFF74E
+:106740008CFF00287AD16888A08084F806B0A889D8
+:10675000208184F80EA0288A2082A4F81290A88AAA
+:10676000009068884B46A969DDF8042001F0C1FA61
+:10677000CEE0502709F1120086B2002C3ED0A88945
+:1067800000220299FFF769FF002857D16888A0808E
+:10679000A889E080287A072811D002202073288A4F
+:1067A000E081E87B4B46C0096073A4F81090A88A8A
+:1067B0000090688804F11202A969D7E7A7E00120D8
+:1067C000ECE76888042108F06CFAB5F812A05FEADB
+:1067D000000900D1FFDF09F1080005F0F7F890F09B
+:1067E000010F02D1E87B000627D50AF114005127DA
+:1067F00086B2002C7FD06888A08001E070E01DE0A8
+:10680000A88900220099FFF728FF002816D184F8F4
+:1068100006B0A88920810420A073288A2082A4F8C9
+:1068200012A0A88A009068885346A969019A01F0CD
+:1068300060FAA989A9F802106AE00320BDE8FE8F7A
+:106840006888FAF7EBFD82466888042108F029FA87
+:106850008146BAF1000F00D1FFDFB9F1000F00D17E
+:10686000FFDFB9F80400A0F57F41FF3902D05127BE
+:10687000142601E05027122694B36888A080502F78
+:1068800006D084F806B0287B029901F042FA3FE076
+:10689000287BA11D01F03DFA00219AF82300CDE9E3
+:1068A00000010B46B9F8022068884946FFF72EFD23
+:1068B0000028C3D12CE001E013E01FE0FE49A889C5
+:1068C000C988814205D1542706264CB16888A0802A
+:1068D0001EE053270CE06888A080A889E08017E0BC
+:1068E00009E06888042108F0DCF900B9FFDF5527CA
+:1068F0000826002CEFD1A8F800600EE056270726E6
+:10690000002CF8D0A889A0800020A07100E0FFDF53
+:10691000A8F800600CB12780668000208EE7E64969
+:1069200000200870704730B587B00C4608F082F937
+:106930000546FF2800D1FFDF0020208060804FF651
+:10694000FF70A080294604F1080004F025F902AA8E
+:106950002946012005F0C4FA1AE000BF9DF80B009B
+:10696000000715D5BDF80E002946FFF72CFD9DF850
+:106970000B00FF2340F010008DF80B00BDF80B005A
+:10698000ADF80400BDF80E002946019A05F0FEFBA3
+:1069900002A805F0ADFA0028E0D007B030BD0A46E5
+:1069A000014602F1080004F016B970B5054604214D
+:1069B00008F077F9040000D1FFDF294604F1080050
+:1069C000BDE8704004F001B9F0B58FB00C46074641
+:1069D000FAF724FD060005D03078222805D20820D9
+:1069E0000FB0F0BD43F20200FAE70CB1A08870B11D
+:1069F00001208DF81C0003208DF8200000208DF868
+:106A0000210034B1A088ADF82800206803E00920F7
+:106A1000E6E7ADF82800099001F075FB050007D006
+:106A20006F800421384608F03CF9040007D105E0E6
+:106A300013213846FCF716F80320D1E7FFDF06A93B
+:106A400004A8CDE900010CAB002221463846FFF72F
+:106A500033FC0028C4D104F10800049903908DE8A8
+:106A6000A20096F8231006AA07A80C9B04F0E5FCE8
+:106A700006466878000701D501F025FB1EB13046B7
+:106A8000FFF7ABFAACE704980090BDF81830042289
+:106A90000021384602F081FA4FF6FF71A1809FE78E
+:106AA0002DE9FF4F87B09846DDE9159793467E881C
+:106AB000DDF850A03046FAF7B1FC05460421304617
+:106AC00008F0EFF8044605B9FFDF04B9FFDF08342A
+:106AD000CDE90464CDE90297CDE9008ADDE907023A
+:106AE00095F823105B4604F0E7F80BB0BDE8F08F93
+:106AF0002DE9F04F9BB004464FF000086E48ADF80A
+:106B00005880ADF83080ADF85480A0F80480ADF81E
+:106B10001880ADF81C80ADF82480ADF82080007896
+:106B200016460D464746012808D0022806D00328FD
+:106B300004D0042802D008201BB0D7E720460BF071
+:106B4000FFFED0BB28460BF0FBFEB0BB60680BF02D
+:106B500042FF90BB606848B160892189884202D8B1
+:106B6000B1F5007F01D90C20E6E780460BAA07A902
+:106B70002846FFF78CFA0028DED168688078C0F3D9
+:106B80004100022808D19DF81D0010F0380F03D0F5
+:106B900028690BF017FF80B906A92069FFF72FFAC3
+:106BA0000028C9D1206950B1607880079DF819008C
+:106BB00000F0380002D5E8B301E011E0D0BB9DF849
+:106BC000180080060ED59DF8190010F0380F03D07C
+:106BD00060680BF0F7FE18B960680BF0FCFE08B1B6
+:106BE0001020A9E708A96069FFF709FA0028A3D1D6
+:106BF000606940B19DF8210000F0070101293BD1F7
+:106C000010F0380F38D009A9A069FFF7F8F900286B
+:106C100092D19DF8200080062ED49DF82400800695
+:106C20002AD4A06950B19DF8250000F00701012980
+:106C300022D100E020E010F0380F1DD0E06818B13C
+:106C40000078C8B11C2817D20FAA611C2046FFF794
+:106C500045FA0120B94660F30F27BA4607468DF87A
+:106C6000520042F60300ADF850000DF13F0218A9A2
+:106C7000286809F0F4FC08B107205DE79DF8600082
+:106C800017A9CDF80090C01CCDE9019100F0FF0BD1
+:106C900000230BF20122514614A805F066F8E8BB68
+:106CA000BDF85C000E9004492A892869091D0092EC
+:106CB000CDE901016B8901E010030020BDF82C2013
+:106CC0002868079905F051F801007DD120784FF030
+:106CD000020AC10601D480062BD5ADF80C9060697C
+:106CE00050B908A907A8FFF72AFA9DF8210020F05B
+:106CF0000700401C8DF821009DF820008DF852708F
+:106D000040F0C8008DF8200042F60210ADF85000A7
+:106D10000CA903AA0023CDF800A000E021E0CDE9F2
+:106D2000012140F2032214A8089905F01EF8010081
+:106D30004AD1FE484D465B468088ADF83D000FA81D
+:106D4000CDF80890CDE90390CDF814904FF00709E5
+:106D5000CDE900950022FF21BDF85C0004F051FF51
+:106D600010B1FFF704F9E7E69DF83C00000625D5D1
+:106D70002946012060F30F218DF852704FF4245002
+:106D8000ADF85000ADF8105062789DF81000002367
+:106D900062F300008DF810006278CDF800A0520870
+:106DA00062F341008DF8100004AACDE9012540F2FC
+:106DB000032214A804F0D9FF010005D1606850B384
+:106DC000206970B906A900E07EE007A8FFF7B7F9CF
+:106DD0006078800705D49DF8190020F038008DF800
+:106DE00019008DF8527042F60110ADF8500020895C
+:106DF00040F20121B0FBF1F201FB1202606815AB19
+:106E0000CDF80080CDE90103002314A8069904F011
+:106E1000ACFF010058D12078C00729D0ADF80C5044
+:106E2000A06950B909A907A8FFF789F99DF82500BD
+:106E300020F00700401C8DF825009DF824008DF8F7
+:106E4000527040F040008DF8240042F60310ADF877
+:106E5000500016A903AACDF800A0CDE90121002316
+:106E600040F2032214A8099904F07FFF01002BD1FE
+:106E7000E06868B32946012060F30F218DF8527055
+:106E800042F60410ADF85000E068002302788DF857
+:106E9000102040788DF81100E06804AA4088ADF811
+:106EA0001200E06800798DF81400E068C088ADF841
+:106EB0001500CDF80090CDE901254FF4027214A819
+:106EC00004F053FF010003D00E9800F035FF33E6C5
+:106ED00096480321017056B180883080BDF8540077
+:106EE0007080BDF83000B080BDF85800F080002000
+:106EF00022E670B501258AB016460B46012802D05D
+:106F0000022816D104E08DF80E504FF4205003E013
+:106F10008DF80E5042F60100ADF80C0063B100246C
+:106F2000601C60F30F2404AA08A9184609F097FB17
+:106F300020B107200AB070BD1020FBE704A99DF81E
+:106F400020207A48CDE90021801C029000232146B0
+:106F500003A802F2012204F008FF10B1FFF707F8BE
+:106F6000E8E772480EB14188318005700020E1E702
+:106F700070B594B0044601268DF83E6041F60100DC
+:106F8000ADF83C0012AA0FA93046FFF7B2FF002867
+:106F900048D12078654CC0074FF0000544D01C2133
+:106FA00002A817F01AF89DF808008DF83E6040F02E
+:106FB00020008DF8080042F60520ADF83C000E9543
+:106FC0009DF83A00119520F00600801C8DF83A00DB
+:106FD0009DF838006A4620F0FF008DF838009DF8D3
+:106FE000390009A920F0FF008DF839000420ADF820
+:106FF0002C00ADF830000EA80A9011A80D900FA833
+:107000000990ADF82E5002A8FFF772FD002809D1B3
+:10701000BDF80000E080BDF804002081401C6081C4
+:107020002570002014B070BDE5802581BDF84800B2
+:10703000F4E72DE9F74F3D49A2B04FF000080A7878
+:10704000012A04D0022A02D0082025B04EE54A8841
+:10705000824201D00620F8E723988A46824201D175
+:107060000720F2E701208DF8760042F6020B00249B
+:10707000ADF874B0ADF84C004FF6FF702146621CBD
+:1070800062F30F21ADF84E00ADF8560007918DF870
+:107090007A40FF20ADF878401EA98DF85400149175
+:1070A00013A804F049FF00252E462F460DF12809AC
+:1070B0000EAB4FF6FF72072113A804F040FF78B122
+:1070C00082285FD1A5B39EB39DF86600ADF86C50E1
+:1070D0008DF81840ADF86E601BAC012866D06DE0ED
+:1070E0009DF83E002FB301285BD1BDF83C105945F7
+:1070F00021D11AA8CDE904900720CDE9000402941B
+:107100000394BDF83A0010230022FF2104F096FFFB
+:10711000C0BBBDF86800042801D006284CD1BDF8DA
+:107120002810239881423CD10F208EE710030020C5
+:107130003AE0012835D1BDF83C00B0F5205F03D01E
+:1071400042F6010188422CD1BAF80210BDF83A008B
+:10715000814201D1012700E0002705B19EB12399AA
+:1071600088421ED11AA9CDE904910721CDE9001466
+:1071700005460294039410230022FF2104F05EFFD1
+:1071800000B902E02DE046460BE0BDF86800022899
+:1071900001D0102810D1C0B219AA0AA909F040FAEA
+:1071A00050B9BDF83A8083E705204EE706A919A833
+:1071B000221D09F054FA08B1032046E79DF8180093
+:1071C0000023001DC2B28DF8182024980092CDE94A
+:1071D00001401DA8079904F0C8FD10B902228AF8E1
+:1071E0000020FEF7C4FE30E710B50B46401E88B005
+:1071F00084B206AA00211846FEF770FF07A906AA66
+:10720000CDE9042100200721CDE900100290039070
+:1072100002460123FF21204604F0F3FC0446BDF89A
+:107220001C00012800D0FFDF2046FEF7A0FE08B0BA
+:1072300010BDF0B5F84F044687B038780E460328E5
+:1072400004D0042802D0082007B0F0BD04AA03A986
+:107250002046FEF71CFF0500F6D160688078C0F379
+:10726000410002280AD19DF80D0010F0380F05D01A
+:1072700020690BF0A7FB08B11020E5E7208905AADB
+:1072800021698DE807006389BDF810202068039903
+:1072900004F06BFD10B1FEF76AFED5E716B1BDF83C
+:1072A00014003080042038702846CDE738B50C0033
+:1072B000054608D000236A46FF2104F03EFF20B1B6
+:1072C000FEF755FE38BD102038BD69462046FEF752
+:1072D00096FE0028F8D1A078FF2100F0010328468F
+:1072E000009A04F053FFEBE730B587B01446002254
+:1072F0000DF10C0C06AD02928CE82C000723CDE9B1
+:1073000000320A462388FF2104F07BFCBDF81810E8
+:107310002180FEF72CFE07B030BD70B50D4604216C
+:1073200007F0BFFC040000D1FFDF294604F108008C
+:10733000BDE8704003F070BC70B50D46042107F045
+:10734000B0FC040000D1FFDF294604F10800BDE8CD
+:10735000704003F084BC70B50D46042107F0A1FC19
+:10736000040000D1FFDF294604F10800BDE87040A9
+:1073700003F092BC70B50D46042107F092FC0400A6
+:1073800000D1FFDF294604F10800BDE8704003F09A
+:107390008DBC0121FEF736BC2DE9F04196B04FF0CF
+:1073A00000050C008046ADF818501CD0E06828B1EC
+:1073B000A068C0B10188ADF8181005804046FAF702
+:1073C0002DF8070011D03878222861D3404607F005
+:1073D00031FC0146A07801280AD0022808D00720F5
+:1073E00016B0BDE8F0811020FAE743F20200F7E79B
+:1073F000208830B1401C80B207AA04F071FD50BB58
+:1074000002E043F20300EBE707A804F071FD9DF8EA
+:1074100026204FF45051012A09D1BDF82420A2F5AD
+:107420002453023B03D1822801D0A0B901E00846D1
+:10743000D6E7E068B0B106A9CDE904010720CDE99F
+:10744000000502950395A2882088BDF81830FF2119
+:1074500004F0D7FB10B1FEF78AFDC1E7A168BDF8C3
+:10746000180008809DF81F00C00602D543F20140B5
+:10747000B6E70B9818B1BDF82800022801D0032008
+:10748000AEE70B98A1780078012903D0800706D4D5
+:107490000820A5E7C007FBD00726022001E001264F
+:1074A00003208DF83C009DF8200010F0380F00D12B
+:1074B000FFDF9DF820005949C0F3C200084497F847
+:1074C000231010F8010C884201D90F2088E720888A
+:1074D000ADF840000421404607F0E3FB040000D172
+:1074E000FFDF0DA90CA8CDE900010EAB3246214605
+:1074F0004046FEF7E1FE002885D108340C9903943C
+:107500008DE822010DAA07210FA80E9B03F095FF1D
+:1075100010B1FEF762FD63E70C980090BDF83430BF
+:1075200004223146404601F038FD59E770B5064661
+:1075300015460C460846FEF7D9FC002805D12A4618
+:1075400021463046BDE87040D3E470BD71E570B5AA
+:107550001E4614460D0009D044B1616831B138B1FE
+:107560002D494988814203D0072070BD102070BD8D
+:107570002068FEF7BBFC0028F9D132462146284698
+:10758000BDE87040FFF7B4BA70B515460C0006D0E0
+:1075900038B121498988814203D0072070BD10206D
+:1075A00070BD2068FEF7A2FC0028F9D129462046CC
+:1075B000BDE870403DE670B5054686B00E461446FF
+:1075C00010460BF0E1F930BB60680BF004FA10BB19
+:1075D000A5F57F40FF3803D02846F9F71FFFA0B17B
+:1075E000284607F027FB054630466946FEF7C9FDE9
+:1075F00000280CD19DF810100F2008293FD2DFE899
+:1076000001F008060606060F0F0843F2020006B056
+:1076100070BD0320FBE743E0100300206AE3010094
+:107620009DF80210012908D1BDF80010B1F5C05F26
+:10763000EDD06FF4C052D142E9D09DF80610012977
+:107640000BD1BDF80410A1F52851062905D2DFE8B9
+:1076500001F0030304030303D9E79DF80A1001298D
+:107660000ED1BDF80810B1F5245FD0D0A1F524519A
+:107670000239CCD00129CAD0022901D1C7E7FFDFE6
+:10768000606878B9002305AA2946304604F055FD04
+:1076900010B1FEF76CFCBAE79DF81400800601D427
+:1076A0001020B4E76188224630466368FFF71CFE6D
+:1076B000ADE72DE9F043044689B0894615461046EA
+:1076C0000BF062F918B1102009B0BDE8F083204634
+:1076D00007F0B0FA4FF6FF770646BC4201D0FF2E06
+:1076E00009D00146002307AA484604F026FD28B128
+:1076F000FEF73DFCE8E743F20200E5E79DF81C00D9
+:10770000C00602D543F20140DEE7002406A8CDE919
+:1077100004404FF00708CDE90084029403946A887E
+:107720003B463146484604F089FC070014D168689E
+:107730000BF02AF968B968680294CDE90340059412
+:10774000CDE900842B886A883146484604F076FCEF
+:107750000746BDF8180028803846C9E739B1FA4B0A
+:107760000A881B899A4202D843F20300704713E645
+:1077700010B586B0F44C0423ADF81430E38843B15F
+:1077800024898C4201D2914205D943F2030006B00C
+:1077900010BD0620FBE7ADF810100021009101910B
+:1077A000ADF8003002218DF8021005A9029104A95C
+:1077B0000391ADF812206946FFF7EEFDE7E72DE9EA
+:1077C000FC4781460F4608460BF0BAF888BB48468E
+:1077D000F9F724FE5FEA00080AD098F80000222892
+:1077E00029D30421484607F05CFA060005D103E0DE
+:1077F00043F20200BDE8FC87FFDF06F1080003F05A
+:1078000012FA05463878012803D0022804D0072050
+:10781000F0E7A8070FD502E015F0340F0BD0B879C8
+:107820003C1DC00709D0E08838B1A0680BF088F88B
+:1078300018B11020DEE70820DCE73A782088002124
+:1078400028B3A0F201130721112B18D20CD2DFE8C4
+:1078500003F00B090D0B1D0B121D100B0B1D1D1D35
+:107860001D0B1D00022A11D10846C3E7012AFBD0D7
+:107870000CE0EA0600E0AA06002AF5DA06E0A0F528
+:10788000C0721F2A02D97D3A022AEDD8C1B298F8F7
+:107890002300CDE900017288234631464846FEF7B1
+:1078A00035FDA7E72DE9FF4F8DB01E4615460C4666
+:1078B0004FF000080F460D98F9F7B0FD30B1007891
+:1078C000222806D2082011B0BDE8F08F43F2020052
+:1078D000F9E7B00801D00720F5E7032E00D1002614
+:1078E0000D9807F0A7F94FF6FF7A0690CCB1022D5C
+:1078F00074D320460BF06FF830B904EB0509A9F1F9
+:1079000001000BF068F808B11020DCE7AD1EAAB248
+:107910002146504604F022FD39F8021C88425DD110
+:10792000ADB28948B10702D50189491C00E00121A7
+:107930001FFA81F9F10701D0068900E0564607AA2F
+:107940004846069904F0CCFA4FF0070B4FF0000AB6
+:107950000BE07888102841D808F1040108441FFA88
+:1079600080F8A8453AD804EB08077FB33988494521
+:10797000EFD353E09DF81F100A074FD544B304EB33
+:10798000080708F104027B881FFA82F8102B25D81B
+:1079900003EB0802AA4221D83A8890421ED1C806B9
+:1079A0001ED50DF10C090CAA04EB08015046CDF8C8
+:1079B00008A089E80700CDE900BA388800220699B6
+:1079C00004F01FF928B1FEF7D2FA7CE726E005E0C3
+:1079D0000CE07888BDF83010884201D00B2072E7A7
+:1079E000798801EB08001FFA80F806E0C90604D583
+:1079F0000699FEF7E8FC002887D19DF81F00FF23B9
+:107A000020F010008DF81F00BDF81F00ADF8000039
+:107A1000BDF82200009A069904F0B8FB07A804F00C
+:107A200067FA18B9BDF82200B042A3D904210D9815
+:107A300007F037F9040000D1FFDF22885AB1CDE901
+:107A400000BA5546002321460D98FEF75FFC00283A
+:107A5000BBD1258037E7002035E72DE9F04F8DB009
+:107A60001E4617000D464FF000041BD0B10802D08F
+:107A700007200DB028E7032E00D1002607F0DAF822
+:107A80008046FF2805D07DB128460AF09BFF48B903
+:107A900002E043F20200ECE73988681E08440AF06D
+:107AA00091FF08B11020E4E72749B00701D54889C4
+:107AB00000E00120F2074FF6FF7902D04989491E04
+:107AC00000E049468EB207AA414604F009FA4FF099
+:107AD000000B4FF0070A3EE09DF81F0000073AD563
+:107AE00006A9CDE904B1CDF808B0CDF80CB04B46ED
+:107AF00000224146CDE900AB604604F09FFA08BB86
+:107B000025B3BDF818103A8821442819091D8A4266
+:107B100034D3BDF8222020F8022BBDF8182020F81D
+:107B2000022B06AA0592CDF808B0CDE903B0CDE945
+:107B300000ABBDF82200BDF818300022414604F029
+:107B40007DFA18B1032094E710030020BDF8180057
+:107B50002044001D84B207A804F0CAF920B182288D
+:107B600006D0FEF704FA84E7BDF822C0B445B3D9C5
+:107B700034B175B13988A01C814203D20C2078E75A
+:107B8000052076E722462946484604F0E7FB2919F6
+:107B90000880A41C3C8000206BE710B504460AF066
+:107BA000F3FE08B1102010BD6948408920800020F4
+:107BB00010BD2DE9F041A4B00C4606464FF0000878
+:107BC000142105A816F009FA01208DF818008DF887
+:107BD000140000278DF81970ADF81C403046F9F7F5
+:107BE0001DFC30B10078222806D2082024B0BDE860
+:107BF000F08143F20200F9E70421304607F051F822
+:107C0000050000D1FFDF0AA904A8CDE9000116ABE9
+:107C1000002229463046FEF74FFB0028E6D10498A3
+:107C20000835CDE90007CDE902650AAA072105A8B4
+:107C3000169B03F002FC10B1FEF7CFF9D6E70498CB
+:107C40000090BDF8283004224146304601F0A5F9E5
+:107C500000B1FFDF21463046FDF7C6FF17A92846D1
+:107C600002F0D0FF00B1FFDFBDF85C00172801D2A1
+:107C7000172100E00146A14204D8172801D2172499
+:107C800000E0044621463046FFF756FB05462146F4
+:107C90003046FDF702FD4146304601F02BFB00B9AE
+:107CA000FFDF25BB3046F9F7B9FB050000D1FFDF48
+:107CB00095F822001B281AD9172C18D93A208DF8CC
+:107CC0002C00ADF82E6095F82200211D884201D9C4
+:107CD000241D00E00446ADF8304040F64800ADF801
+:107CE000320018A90BA804F0C0FA00B1FFDF002091
+:107CF0007CE7F8B51C4615460E46069F07F034F99A
+:107D00002346FF1DBCB231462A46009406F04CFDC6
+:107D1000F8BD70B50C4605460E21204616F03BF91D
+:107D2000002020802DB1012D01D0FFDF70BD062085
+:107D300000E00520A07170BD10B50C4604F09DF860
+:107D400000B1FFDF2046BDE81040FEF710B900008B
+:107D50001003002010B50446007896B0022805D024
+:107D6000012803D043F2050016B010BDA17889297F
+:107D70000AD06078892807D021B1032902D808B138
+:107D8000032801D90720EFE74D208DF80000207867
+:107D9000022801D0012000E000208DF80200607868
+:107DA00000F0D7FDC01D8DF80300A078012815D084
+:107DB00000F0CFFD10F101008DF80400607800F0B4
+:107DC000C8FD8DF80500A07800F0C3FD8DF8060011
+:107DD0009DF805200621102A04D005E0022000F0BD
+:107DE000B8FDE9E78DF80510102801D18DF80610CF
+:107DF0002078012804D19DF80300401C8DF8030071
+:107E000002F0E0F8001DADF808000BA9684604F088
+:107E10002CFA00B1FFDF0020A6E72DE9FF4FFF4954
+:107E200091B00600D1E900010396CDE90C01507A2A
+:107E3000117A9B4608441546C7B222D05FF0000471
+:107E40004FF00009CDF81C900520ADF81C001F2054
+:107E5000ADF81E00F2A00690CDF81490F01D8DF83C
+:107E600014904FF0010A20F007008DF815A0B042E1
+:107E700000D0FFDF28880399401C1FFA80F814B156
+:107E800007E00124DCE708F0FF0008F06FFB00B119
+:107E9000FFDF03993A4601EB0810C01C20F00301F4
+:107EA000D5F8188003913CB981F800901FFA88F04A
+:107EB00003F06EFE00B1FFDF0399234601EB0800DB
+:107EC0000390A87A297A3A460844C1B203A800F080
+:107ED0008EFD0398C01C20F003000390697A009186
+:107EE0002B7AAA7A04B1002002A906F0B6FD00B1EF
+:107EF000FFDFBDF8081003980DF1780808443A46F2
+:107F000098E88A00C01C20F00300CDE90270CDE99A
+:107F1000001304B100205B4608A906F029FF00B158
+:107F2000FFDF089903980844C01D20F00700039064
+:107F30001299821B002C0A603AD1BC4ABA491160DE
+:107F4000111D401E086001232C220EA9B84806F01E
+:107F500005FD00F00CFD00211E22084602F042F84B
+:107F6000FAF7A4F900F075FFFEF7D9FCE8680CAA4F
+:107F7000214620B1FBF755F830B1FFDF04E005A83A
+:107F8000FBF74FF800B1FFDF05F11400FEF7F0FF3B
+:107F900000B1FFDF4FF49671A64816F01EF8A54811
+:107FA000022180F829A180F82A11062180F82B11DE
+:107FB00015B0BDE8F08F10B59E4CA078092800D30D
+:107FC000FFDF207804EB401010F8041F21F0FF01C0
+:107FD0000170417821F00701C91C21F0180141709E
+:107FE0000121E17010BD2DE9F04105460C46002746
+:107FF0000078052190463E46B1EB101F00D0FFDF10
+:10800000287A58B1012810D0FFDF00BFA8F800601F
+:108010000CB1278066800020BDE8F0810227092688
+:108020007CB1A889A080A87B09E00327142644B16D
+:108030006888A0802869E060A88A2082287B207256
+:10804000E4E7A8F80060E6E700B597B04E218DF8A8
+:10805000001000780BA900F001008DF802006846BE
+:1080600004F003F917B000BD00B5017897B001F036
+:1080700001018DF80210417801F001018DF8031023
+:108080000178C1F340018DF804104178C1F340013B
+:108090008DF80510017889088DF806104178890857
+:1080A0008DF8071081788DF80810C1788DF80910C7
+:1080B00000798DF80A004A208DF800000BA9684667
+:1080C00004F0D3F8CEE770B55A4CE078002819D008
+:1080D0002078002504EB4010407900F007000119DA
+:1080E00091F82801401E81F828012078401CC0B278
+:1080F0002070092800D12570A078401CA07009F0DC
+:10810000BAFFE57070BD4B4890F82B01002800D0F5
+:1081100051E770472DE9F043464D9BB05FF00006F4
+:10812000D5F8240168B1FFF7EEFF002875D02022B2
+:10813000D5F8241115F0FDFEFFF7C5FFC5F8246141
+:10814000EEE795F82901002867D0FFF734FF0446D1
+:10815000374806F034FC606000B9FFDF606804F067
+:10816000D1F888B12046F9F7C6FB6078010706D53B
+:1081700020F00700401C6070FFF7A5FFD0E72C48F7
+:10818000616806F025FCCBE72948616806F020FC11
+:1081900001A800F0B9FC00286BD10321BDF8040050
+:1081A00006F07FFD8046BDF8040006F0DDFE0746C0
+:1081B000B8F1000F00D1FFDFD8F8040010B100784B
+:1081C000FF2856D0FFF7F7FE0446384606F08FFA30
+:1081D000606000B9FFDF606800F104090671BDF856
+:1081E00004006080204600F02CFF384606F04FFB6C
+:1081F00000B9FFDF47208DF81000BDF80400ADF88E
+:10820000120004A805F0D9FE10A804F0DEFA607888
+:10821000010711D4C00615D417E02AE070E301006D
+:108220006E52463578000000000000200006024033
+:10823000780500204C04002020F00700801C6070AE
+:10824000FFF741FFC8F804906AE7D8F8040038B196
+:108250000178491C11F0FF0101708FD1FFDF5FE74A
+:1082600000221146384600F072FB002886D1FFDF5D
+:1082700056E71BB0BDE8F08310B5FE4CA06008685F
+:10828000E060AFF26F1001F0F6FD607010BDF949CB
+:1082900000200870704730B505464FF080500C46FE
+:1082A000D0F8A41097B0491C05D1D0F8A810C94344
+:1082B0000904090C08D050F8A01F01F00101297031
+:1082C0004168216080680EE02B208DF800000BA92A
+:1082D000684603F0CAFF00B1FFDF012028700C9848
+:1082E0002060BDF83400A0802878002803D0607991
+:1082F00040F0C000607117B030BDF0B54FF0805451
+:108300000746D4F8800097B00D462B26401C0BD1B1
+:10831000D4F88400401C07D1D4F88800401C03D155
+:10832000D4F88C00401C0BD0D4F880003860D4F80E
+:1083300084007860D4F88800B860D4F88C0016E027
+:108340008DF82C6069460BA803F08FFF00B1FFDFAA
+:1083500001983860029878608DF82C6069460BA807
+:1083600003F083FF00B1FFDF0198B8600298F86066
+:10837000D4F89000401C0BD1D4F89400401C07D1D5
+:10838000D4F89800401C03D1D4F89C00401C08D0BD
+:1083900054F8900F286060686860A068A860E06882
+:1083A00016E08DF800600BA9684603F05EFF00B18F
+:1083B000FFDF0C9828600D9868608DF800600BA9AD
+:1083C000684603F052FF00B1FFDF0C98A8600D98DB
+:1083D000E86017B0F0BD30B5A74C0546D4F82401CD
+:1083E00000B1FFDFC4F8245130BD3EB5054603217E
+:1083F00006F057FC0446284606F0B6FD054604B9CB
+:10840000FFDF606818B10078FF2800D1FFDF01AA04
+:108410006946284600F09BFA60B9FFDF0AE00022B7
+:1084200002A9284600F093FA00B9FFDF9DF8080082
+:1084300000B1FFDF9DF80000411E8DF80010EED264
+:1084400060680199884201D1002060608A4C94F8EC
+:108450002A01022800D3FFDF94F82A01401CC0B291
+:1084600084F82A01012803D18248407801F022FDD6
+:108470003EBD70B50446A1F57F4016460D46FF3857
+:1084800000D1FFDF012E01D0FFDF70BD207820F08A
+:108490000F00401D20F0F0005030207000202072AE
+:1084A000A5810120A07370BD70B515460C46064627
+:1084B000FFF729FE90B1017821F00F01491D21F04D
+:1084C000F001503101704680012101722168016183
+:1084D000A18881820573BDE87040F4E53046BDE8AF
+:1084E00070401321FAF7BEBA70B505460C4608462F
+:1084F0000AF04AFA08B1102070BD2846F8F78EFF3E
+:1085000028B1284600F0E7FE2070002070BD43F23D
+:10851000020070BD2DE9F04F04465648894687B0E9
+:10852000017811B1082007B043E552485349416032
+:1085300020460AF029FA002875D148460AF024FAA4
+:10854000002870D1637A217A5818FF287DD82088B6
+:10855000FE287AD800B90A202080A06908B94FF413
+:10856000B060A0616068A0B14578827805EB4505F0
+:108570002A440578067905EB450502EB4502457965
+:10858000C07805EB450505EB8605C0EBC000284427
+:1085900009E003EB430001EB410200EB4202C1EBB7
+:1085A000C10505EB830086B2C3EBC3001044C1EBE9
+:1085B000C1021044084487B2208A01F0F9FC002867
+:1085C000B1D101F0FFFC001D7843059001F0FAFCE9
+:1085D000001D00FB06F8E168A06900F041FA5FEABF
+:1085E000000AA0D1A17A607A81422ED84FF0120BF6
+:1085F00008280ED8207A01280BD808F022F9054661
+:1086000009F0F8FC2A1A217A607A521E0B189A4255
+:1086100001DA584687E765688B460090BDB1284669
+:108620000AF0D9F908B110207DE7A97868780844E4
+:108630002978421800985844904206D16A792979DD
+:108640001144EA781144884201D007206BE7CDF845
+:108650000080CDE90176224603A90020059BFFF7A3
+:10866000DCFB044D039AD9F8003068681118994270
+:1086700009D805E01C0000204C040020481300200D
+:10868000B2F5803F03D30420C9F800104BE7CDF8C2
+:108690000080CDE90176224604A9059BFFF7BDFBCA
+:1086A000DDE90301884200D0FFDF049869680844CF
+:1086B0006860C9F80000FF49012028700870504622
+:1086C00031E72DE9F04707460C4608460AF05CF909
+:1086D00040B938460AF076F920B9F81C20F00300BA
+:1086E000B84202D01020BDE8F087F3484FF00008F0
+:1086F000817889B14178824600EB4115B4F8009049
+:1087000015F8040F234600F00F000022294600F060
+:1087100037FA060004D013E0A4F800800520E2E751
+:1087200097B12188494501D90C260DE028782346C8
+:1087300000F00F003A46294600F022FA060005D064
+:108740000C2E01D0A4F800803046CCE79AF8010046
+:108750005446401CC0B28AF80100092801D184F8AF
+:108760000180A078401EA070687800F00701012900
+:108770000BD0022903D0032918D0FFDFE4E7C0069D
+:10878000E2D46888FFF731FEDEE7CC48696806F07E
+:108790001FF994F82901401CC0B284F8290101286E
+:1087A000D2D1C748407801F085FBCDE794F82B0182
+:1087B000401C8AF82B01C7E770B50D4604460AF045
+:1087C000BFF818B928460AF0DFF808B1102070BDCC
+:1087D00029462046BDE8704007F0FFBE70B504464C
+:1087E00015460E4608460AF0ABF818B928460AF0B6
+:1087F000CBF808B1102070BD022C03D0102C01D092
+:10880000092070BD2A463146204607F009FF00289E
+:10881000F7D0052070BD70B514460D4606460AF027
+:108820008FF838B928460AF0AFF818B920460AF090
+:10883000C9F808B1102070BD22462946304607F01D
+:108840000EFF0028F7D0072070BD10B596B0044683
+:108850000AF09AF810B1102016B010BD0F208DF854
+:1088600000000BA9684603F000FD0028F4D19DF834
+:1088700034002070BDF836006080BDF83800A0805C
+:108880000020E9E770B505460C4608460AF09AF85C
+:1088900020B93CB120680AF077F808B1102070BD0B
+:1088A000A08828B121462846BDE87040FEF78CB864
+:1088B000092070BD70B504460D4608460AF040F820
+:1088C00030B9601E1E2814D828460AF039F808B1BD
+:1088D000102070BD032C01D9072070BD04B9FFDF43
+:1088E000784800EB840050F8041C2846BDE870402E
+:1088F0000847A4F120001F28EED829462046BDE8ED
+:108900007040F9F70EBC70B504460D4608460AF0F3
+:108910003BF830B9601E1E280FD828460AF010F820
+:1089200008B1102070BD012C03D0022C01D0032C03
+:1089300001D1062070BD072070BDA4F120001F28C2
+:10894000F9D829462046BDE87040F9F76EBC05F01D
+:108950006ABD892805D0032805D0022805D001204A
+:10896000704710207047062070470320704710B5ED
+:1089700096B003F06BFC52484178806803F064FEC7
+:108980004F4801240C300178012916D13E218DF881
+:108990000010C0788DF8020010B1012803D005E066
+:1089A0008DF8024002E000208DF80200684605F0D4
+:1089B00004FB10B10BA803F008FF02208DF82C0077
+:1089C0008DF82D008DF82E000BA8FFF7C3F900B12C
+:1089D000FFDF8DF82C4003208DF82D008DF82E0040
+:1089E0000BA8FFF7B7F9002800D0FFDF34E72DE927
+:1089F000F0410646022012B101EB4200401DC7B211
+:108A00003068C01C20F0030232601BBB2A483B4682
+:108A10000921243809F085FE002408E0092C11D230
+:108A2000DFE804F005070509090B0B0505002648DA
+:108A300004E0264802E0264800E0264809F090FEBF
+:108A4000054600E0FFDFA54200D0FFDF641CE4B272
+:108A5000092CE3D3306800EB07103060BDE8F081EB
+:108A600038B50C00054604D0084609F069FF00BB84
+:108A700002E0F62844D345E0606809F061FFC0B920
+:108A8000607800F00300012803D0022801D00720FD
+:108A900038BD69462046FBF78DFD0028F8D1607887
+:108AA00000F0030002281CD19DF80000C8B16068E6
+:108AB00012E014E0080000204C040020780500209B
+:108AC0001C00002090E30100771F0000F18E0000E1
+:108AD000CB9F00002103010009F074FF08B11020B2
+:108AE00038BD6089F8280BD82189814208D861787F
+:108AF00001F00301012905D1D73080B2A84201D984
+:108B0000092038BD002038BD2DE9F04397B08146DB
+:108B100046208DF82C0069460BA803F0A6FB00B197
+:108B2000FFDF43F2040600246D46DFF884801FE077
+:108B30002F19B87DC10706D0400704D405EB4400C7
+:108B4000C08800F0B9FB98F82A0178B1B87D800799
+:108B50000CD505EB4400C08800F037FA30B105EBC6
+:108B600044000026C188A9F8001005E0641CE4B2A6
+:108B70009DF80400A042DBD817B03046BDE8F08372
+:108B80002DE9F041044600201880601E1D4616465F
+:108B90000F46052800D3FFDF06482A4600EB840075
+:108BA000314650F8043C3846BDE8F0411847000013
+:108BB0004C04002078E301002DE9F0478A469846EE
+:108BC00015460646032106F06CF80446304606F0CA
+:108BD000DDF90C35AFB2002581462E4604B9FFDF22
+:108BE000B9F1000F00D1FFDF04EB8A000189B9421F
+:108BF00000D30125218CB94202D2BAF1060F00D36D
+:108C0000012638EA050104D0817A41F0020181721F
+:108C10000BE038EA060108D0817A41F00401817244
+:108C200014F8220F40F00400207005EA0600BDE8A9
+:108C3000F0872DE9F0478246DDE90846174604F142
+:108C40000C0099460D461FFA80F80023224639464B
+:108C50005046FFF7B1FF60B1A87800061BD426F894
+:108C6000044C26F8029C504606F090F9060008D104
+:108C700006E0072F01D01120D9E743F20400D6E720
+:108C8000FFDF241D3046A1B205F0CCFA00B9FFDFAA
+:108C9000504603F03DFC05EB8700062F0289A2EB4E
+:108CA0000801018103D2298CA1EB0800288400204F
+:108CB000BDE72DE9F8431D4617460E46DDF8208036
+:108CC00006F064F9040019D03F1DB9B205F05AFA54
+:108CD0002860B0B1067120466A46296805F016FD85
+:108CE000009800210A460180817003F0D1FC0098B1
+:108CF000C01DC8F800000020BDE8F88343F2020060
+:108D0000FAE7072E01D01120F6E743F20400F3E75B
+:108D10002DE9F04F0F46054687B0164650880321CF
+:108D200005F0BFFF040000D1FFDF4FF000098DF810
+:108D30000890A078400600D1FFDF042F53D3297894
+:108D400041F30000401C06D162786B789A424AD108
+:108D50002278120747D04FF0010B4FF00208142978
+:108D600039DA4FF6FF7A012933D0122902D01329BC
+:108D700031D11CE00C2F2ED1A17801F07F01012907
+:108D800029D0207820F00F00401C20706878607097
+:108D90008DF808B0A888ADF80A00E888ADF80C0096
+:108DA0002889ADF80E006889ADF8100016E0062F8E
+:108DB00011D1207820F00F0020707188012009F077
+:108DC0007CFD8DF80880ADF80AA0A888ADF80C00ED
+:108DD00004E0062F0AD09DF80810B9B17088324619
+:108DE00002A9F9F73AF907B0BDE8F08F207820F032
+:108DF0000F0020707188012009F05FFD8DF8088058
+:108E0000A888ADF80A00ADF80CA0E7E70028EAD082
+:108E1000768805A8009006AB062204213046FFF7AD
+:108E200048FF00B1FFDF05980523042280F800B059
+:108E300069784170A0F80280A0F804900621CDE97D
+:108E4000001021463046FFF7F4FE0028CBD0FFDFAC
+:108E5000C9E710B501F0B6F80021FF4B0A4600BF84
+:108E600023F81120491C0829FAD3FB4A00F10C0110
+:108E70001032400011805180183090804D20D080F9
+:108E800011815181C1EBC100908110BD70B50C46BC
+:108E9000897821F0FF01A170217821F00F01217064
+:108EA000012161700021616006F070F8050000D1B9
+:108EB000FFDF284605F064F9E74910318989401A37
+:108EC00020852046BDE8704000F014BB70B50D460B
+:108ED000032105F0E6FE040000D1FFDFA07865F372
+:108EE0000600A07070BD70470146012009F0E5BC86
+:108EF0003EB58DB20321284605F0D3FE040000D113
+:108F0000FFDF2078002220F00F00207002208DF873
+:108F100000004FF6FF70ADF80200ADF8040069469E
+:108F20002846F9F79AF83EBD2DE9F84F05460C465C
+:108F300000270078012192463E46B1EB101F00D079
+:108F4000FFDF287A032809D0FFDF00BFAAF80060FE
+:108F50000CB1278066800020BDE8F88FB5F80C8042
+:108F6000702708F10A0086B2A4B16888A0806889D9
+:108F70002081A4F806806888D5F8049004F10A05D9
+:108F800005F0F2FF2A46072549464346009505F0BD
+:108F90000BFCDBE7AAF80060DDE72DE9FC410F469A
+:108FA0001C46164680460321089D05F07AFE010006
+:108FB00008D033463A464046CDE90045FFF739FE32
+:108FC000BDE8FC8143F20200FAE7F8B50646A0F5D9
+:108FD0007F40FF3816D0304605F0C6FF040000D1B0
+:108FE000FFDF204605F083FB050000D1FFDF2046B0
+:108FF00029466A4605F08AFB009CB4F80500E41C8B
+:10900000052801D00120F8BD0321304605F049FEB6
+:10901000050000D1FFDF2079122807D120880C2815
+:1090200004D1A87800F07F00022806D00023062291
+:1090300004213046FFF7C0FDF8BD002306220521BC
+:10904000F7E7F8B50446408805F08EFF050000D12B
+:10905000FFDF6A462846616800F0CCF902460098B6
+:10906000121F30F8031F458891421DD1042D1CD0DA
+:10907000052D27D0062D1DD0402D15D30E46284690
+:1090800000F0D4F908280FD0207820F00F00401C01
+:1090900020F0F00010302070032020726581A6813E
+:1090A000607840F008006070F8BD2246001D00F0B6
+:1090B000C9F9F8BD636864880A46011D2046FAF7BD
+:1090C000FDFEF8BD2246001DFFF722FEF8BD7FB56C
+:1090D0000D460646032105F0E4FD04003AD0207851
+:1090E00000F00F00012838D002A8009003AB0C223A
+:1090F00005213046FFF7DDFD002829D10298122115
+:109100000523017061781A46891C4170082141804D
+:10911000298881806988C180A9880181E988418185
+:109120000C21CDE9001021463046FFF782FD00B149
+:10913000FFDFF02300223146012009F021FB2078D7
+:1091400020F00F00401C20706078801C60700020B0
+:1091500004B070BD43F20200FAE71120F8E77FB5D2
+:109160000D460646032105F09CFD040006D020783C
+:1091700000F00F00012804D00820E9E743F20200C4
+:10918000E6E702A8009003AB062205213046FFF770
+:1091900090FD0028DCD1029813210523017061782D
+:1091A00041700221418085800621CDE900101A46D8
+:1091B00021463046FFF73DFD00B1FFDF207820F06B
+:1091C0000F0020700020C3E72DE9F84F0F468346BB
+:1091D000032105F066FD0546584605F0D7FE80469A
+:1091E0004FF0000A05B9FFDFB8F1000F58D1FFDFDB
+:1091F00056E040466946002205F015F99DF800400A
+:109200008146082C00D3FFDF05EB840609F1080036
+:109210003189062C0144318102D2298C08442884EA
+:10922000072C03D10AF1010000F0FF0AB07AC00751
+:109230000DD02146284600F0DFF840B9B07A20F082
+:109240000100B072584684B3032C2FD0FFDFB07AF0
+:1092500081070AD502E00000A805002020F00200E6
+:10926000B0722146584600F0D8F8062C18D895F868
+:109270002200410714D520F0040085F822000024C4
+:1092800005EB8400817A4A0706D521F0040181723A
+:109290002146584600F0C1F8641CE4B2062CEFD316
+:1092A0007F1EFFB2A5D2504656E602E0FAF79DFEB9
+:1092B000CDE7FEF76EF8CAE710B5032105F0F1FC23
+:1092C000040000D1FFDF204600F014F9A07840F040
+:1092D0008000A07010BD10B5032105F0E2FC040071
+:1092E00000D1FFDF00F06EFE218D0C30B1FBF0F0FD
+:1092F000C0B210BD70B50D46032105F0D2FC0400CC
+:1093000000D1FFDF062D00D9FFDF2946204600F0FF
+:1093100073F8002805D004EB85018A7A42F0010237
+:109320008A7270BD10B50446402801D2072010BDD6
+:1093300000F07CF8082802D04FF4445010BD002102
+:10934000774802E0491C082903D230F81120002A8E
+:10935000F8D1082903D020F81140002010BD0420C6
+:1093600010BD10B5402801D2072010BD00F05EF8F6
+:10937000082805D06A4A002122F81010084610BDBE
+:10938000052010BD2DE9FE4315460C00804606D091
+:109390002DB16088402804D20720BDE8FE8310204C
+:1093A000FBE7218811B300F041F8082820D002A87B
+:1093B0000090228801AB07214046FFF77AFC002885
+:1093C000EBD140462788019E05F0E0FD2A4607259F
+:1093D00031463B46009505F020FA0298009023881C
+:1093E000628807214046FFF7D8FDD6E70C20D4E776
+:1093F0000520D2E705F08AB9072904D0484A10327F
+:1094000032F8112000E0028D00EB810000899042CB
+:1094100001D2012070470020704710B5032901D008
+:10942000FFDF10BDBDE81040FAF7A5BD01460020E2
+:109430003B4A02E0401C082803D232F810308B422D
+:10944000F8D17047F0B50F460646014687B014467E
+:109450003846FCF7B1FBC0B2082842D10020ADF875
+:10946000100003906088032105F01BFC050000D16B
+:10947000FFDF00212846FFF7BFFF78B96088002191
+:10948000FDF769FFADF81000024603A80090608860
+:1094900005AB0021FFF70DFC00B1FFDF0398059934
+:1094A000CDE90010029404AB324638466168FDF7FE
+:1094B000F7FAC0B205281BD2DFE800F0031A131533
+:1094C0001300BDF8100000280BD003990423CDE948
+:1094D0000001608800222946FFF7ABFB002800D07E
+:1094E000FFDF07B0F0BD607840F010006070F8E773
+:1094F000FFDFF6E710B504462021083014F06DFDBB
+:109500000748002110F1100004EB810330F811200E
+:10951000491C1A810629F7D9208DA08410BD0000AE
+:10952000A805002030B44FF0E02001234FF4006C78
+:109530000021C0F880C11D02C0F880511C06C0F88F
+:109540008041E84A82F80014D21E82F80014E64AEC
+:1095500082F80014E54A53609360C2F84011C2F8E3
+:109560004411C2F84811C0F880C2C0F88052C0F857
+:109570008042C0F800C1C0F80041136030BC7047A1
+:1095800070B401204FF0E023C6024FF0000CC3F886
+:1095900080610402C3F880410506C3F88051D34AB4
+:1095A00050609060D24801680029FCD1C2F840C1E7
+:1095B000C2F844C1C2F848C1C3F88062C3F880420F
+:1095C000C3F8805270BC70474FF0E0204FF4006148
+:1095D000C0F88012C910C0F880127047002804BF7C
+:1095E000C4487047012804BFC3487047022804BF1D
+:1095F000C248704700B5FFDF002000BD08B5BB4979
+:10960000002298B101282FD002281CBFFFDF08BD1F
+:109610004FF48020C1F80803C1F84803B84802603D
+:10962000C1F84821B5480068009008BD4FF480306B
+:10963000C1F80803C1F84803B24B1A60C1F84021D1
+:10964000B14BC1031960B149C1F808034FF0E023E1
+:109650000012C3F88001AE480260C1F84021C1F891
+:109660000022AC48027008BD4FF40030C1F8080376
+:10967000C1F84803A8480260C1F844219E48006828
+:10968000009008BD70B5DFF864C2042600240125EF
+:10969000B0B101284CD002281CBFFFDF70BD9F482D
+:1096A0004FF48022012BC0F8401518BFCCF80823D6
+:1096B000C0F8404108BFCCF80423CCF8442370BD67
+:1096C000881E20F07F40CCF840054FF48030CCF865
+:1096D0000803CCF84041CCF84403012B14BF00210F
+:1096E00001218C4B597089490D61DFF834C2CCF8E7
+:1096F00000408C4C4FF0020CC4F800C0DFF828C2C8
+:10970000CCF80060DFF808C23D32CCF80020C1F888
+:1097100000524FF0E0224FF4807CC2F880C2C1F8C2
+:109720000403C2F800C10804804908601D7070BDC0
+:109730007F4A4FF40030012BC2F8401518BFCCF817
+:109740000803C2F8404108BFCCF80403CCF8440336
+:1097500070BD67480068704770B5764805687749FE
+:1097600075480860614CD4F84001002601280AD1F0
+:10977000D4F8080310F4803F05D04FF48030C4F8CB
+:109780000803C4F84061D4F8440101280DD1D4F88D
+:10979000080310F4003F08D04FF40030C4F8080369
+:1097A000C4F84461012007F088FCD4F8480101287E
+:1097B0000DD1D4F8080310F4802F08D04FF4802086
+:1097C000C4F80803C4F84861022007F076FC5C483E
+:1097D000056070BD574810B5046858495648086080
+:1097E0004C490878002808BF03201AD0464A4FF099
+:1097F00000401060454AC00BC2F8080303124FF046
+:10980000E02C0020CCF88031414B1860C2F84001B8
+:10981000C2F8000208704A78002A1CBF4870002075
+:1098200001D007F04AFC4648046010BD4FF0E0212B
+:109830004FF08070C1F8000270474FF0E0214FF008
+:109840008070C1F8800270474FF0E0214FF40010A3
+:10985000C1F8000270474FF0E0214FF40010C1F84A
+:10986000800270472949012008614FF0E021000281
+:10987000C1F880027047410A43F609525143C0F3D0
+:10988000080010FB02F000F5807001EB50207047DB
+:10989000430B48F2376C03FB0CF31B0C4FEA432CD1
+:1098A000C1F800C0DFF89CC003FB0C0326484CF253
+:1098B000F72C5843400D10FB0CFC0CEB432303F535
+:1098C00080735B1213700A6810440860704719486F
+:1098D00010B5046819491848086007F087FF184850
+:1098E000046010BD0BE000E018E000E000B00040B4
+:1098F00004B500404081004044B1004048B1004000
+:1099000048B5004040B5004008F5014000800040E7
+:10991000408500402C00002044B5004008B00040C5
+:1099200004850040088500401085004004F5014092
+:1099300004B000401005024001000001180502407B
+:1099400014050240F7C2FFFF6F0C010010B5EFF3E2
+:10995000108000F0010472B6EB484178491C417058
+:109960004078012801D108F0A5FB002C00D162B697
+:1099700010BD70B5E44CE07848B90125E570FFF7FB
+:10998000E5FF08F09FFB20B1002008F07BFB0020E2
+:1099900070BD4FF080406571C0F80453F7E770B5B3
+:1099A000EFF3108000F0010572B6D74C607800B973
+:1099B000FFDF6078401E6070607808B908F07EFBB9
+:1099C000002D00D162B670BDCF4810B5C17821B16D
+:1099D00000214171C170FFF7E2FF002010BD10B5FA
+:1099E000044608F06FFBC849C978084000D0012040
+:1099F0002060002010BD2DE9F05FDFF80C93427865
+:109A0000817889F80620002589F80710064689F82C
+:109A1000085000782F4620B101280FD002280FD01F
+:109A2000FFDF08F05CFB98B108F060FBA8420FD1A3
+:109A3000284608F05FFB0028FAD047E00125F0E750
+:109A4000FFF784FF08F03EFB0028FBD00225E8E783
+:109A500001208407E060C4F80471AC490D6001077F
+:109A6000D1F84412A94AC1F3423124321160A74906
+:109A70004FF0020B34310860C4F804B3A060DFF883
+:109A800090A2DAF80010C94341F3001101F1010876
+:109A9000DAF8001041F01001CAF8001000E020BF11
+:109AA000D4F804010028FAD0284608F023FB002847
+:109AB000FAD0B8F1000F05D1DAF8001021F010014A
+:109AC000CAF80010C4F808B3C4F8047199F8070084
+:109AD0004C4670B1307860B908F0F4FA064608F0E8
+:109AE000E5FC6FF0004116B1C4E9031001E0C4E9E0
+:109AF000030115B12771BDE8F09F01202071BDE879
+:109B0000F05F00F0DFB870B5050000D1FFDF4FF067
+:109B100080424FF0FF30C2F808030021C2F8001164
+:109B2000C2F80411C2F80C11C2F81011764C617021
+:109B300008F0CEFA10B10120E07060702846BDE850
+:109B4000704058E72DE9F0410125AF077D616E4C6B
+:109B5000E079F0B1012803D0217A401E814218DA61
+:109B600008F0B0FA064608F0A1FCE179012902D913
+:109B7000217A491C21720EB1216900E0E168411A85
+:109B8000022902DA11F1020F0EDC0EB1206100E0B1
+:109B9000E060FFF7DBFE08F095FA10B13D61A570BB
+:109BA00000E0257000202072BDE8F0812DE9F05F13
+:109BB0005848D0F800B0574A574908321160840617
+:109BC000D4F8080110B14FF0010801E04FF000088F
+:109BD000D4F8000100B101208146D4F8040108B195
+:109BE000012600E00026D4F80C0100B101208246D5
+:109BF000D4F8100108B1012700E0002748EA090164
+:109C000026EA010020EA0A00B84300D0FFDF002561
+:109C1000B8F1000F04D0C4F80851012008F032FA5E
+:109C2000DFF8E480B9F1000F13D0C4F8005198F8C0
+:109C3000050020B188F80550002008F023FA98F8B4
+:109C4000000030B108F03EFA18B1012088F8020097
+:109C500020610EB1C4F80451BAF1000F0AD0C4F863
+:109C60000C5198F80200464600B9FFDFB570357018
+:109C7000FFF795FE37B1C4F8105198F8040008B109
+:109C8000FFF760FF2349091DC1F800B033E770B545
+:109C90001D4DE87808B908F011FA01208407A06189
+:109CA000A87850B1D4F80C0120B9002008F022FAAD
+:109CB0000028F7D10020C4F80C014FF0FF30C4F8A1
+:109CC000080370BD2DE9F0411926B507C5F80863F2
+:109CD0000124AC610020C5F80001C5F80C01C5F8ED
+:109CE000100108F0EFF9084F10B1BC702C6100E0D2
+:109CF0003C70FFF72BFE0549B87920310860C5F8A4
+:109D000004636C6150E7000030000020180500403B
+:109D100010ED00E0100502400100000110B5202008
+:109D200000F075F8202000F07DF84449202081F8EB
+:109D30000004434900060860091D42480860F7F71F
+:109D4000E1FA3F49C83108603F48D0F8041341F0B8
+:109D50000101C0F80413D0F8041341F08071C0F879
+:109D60000413364901201C39C1F8000110BD10B59B
+:109D7000202000F04CF8324800210160001D0160F5
+:109D80002F4A481EE83A10602F4AC2F808032C4BAD
+:109D9000C8331960C2F80001C2F860012B4908609D
+:109DA000BDE81040202000F03DB825492848EC3996
+:109DB0000860704722492648E8390860704770B546
+:109DC0001F4A8069E83A224911601F49D1F80061B1
+:109DD0000023204D1D4A5C1E1EB1A84206D300215F
+:109DE0000FE0D1F8606186B1A84209D2C1F8003114
+:109DF000C1F860311460BDE87040202000F012B856
+:109E00001168BDE8704014F01AB9FFDF70BD00F0B2
+:109E10001F02012191404009800000F1E020C0F8BC
+:109E20008011704700F01F0201219140400980001D
+:109E300000F1E020C0F880127047000020E000E050
+:109E400000060240441300200000024000040240CB
+:109E50000100000100F001004FF0E0214FF0007020
+:109E6000C1F88001C1F88002384B802283F80024B9
+:109E7000C1F80001704700B502460420344903E0F0
+:109E800001EBC0031B792BB1401EC0B2F8D2FFDF3B
+:109E9000FF2000BD41F8302001EBC00100224A71D3
+:109EA0008A7101220A7100BD294A002102EBC0001B
+:109EB0000171704710B50446042800D3FFDF244821
+:109EC00000EBC4042079012800D0FFDF6079A1797C
+:109ED000401CC0B2814200D060714FF0E0214FF0D1
+:109EE0000070C1F8000210BD2DE9F0411948056865
+:109EF00018491948083108601448042690F80004ED
+:109F0000134F4009154C042818D0FFDF16E02178C4
+:109F100007EBC1000279012A08D1427983799A427C
+:109F200004D04279827157F8310080472078401C74
+:109F3000C0B22070042801D300202070761EF6B233
+:109F4000E5D20448001D0560BDE8F08119E000E09D
+:109F5000C805002010050240010000014400002057
+:109F60000F4A12680D498A420CD118470C4A1268F0
+:109F70000A4B9A4206D101B508F066FAFFF715FFC1
+:109F8000BDE80140074909680958084706480749DC
+:109F9000054A064B7047000000000000BEBAFECA2A
+:109FA00098000020040000204812002048120020E1
+:109FB00018B1172802D207207047172008490880D7
+:109FC0000020704706480088704770B50C4605466B
+:109FD00000F0B5FB21462846BDE8704001F0B0BC5A
+:109FE00046000020FE4B586019721A80C90013F019
+:109FF000F4BF10B504460E2113F0CDFF17202081C9
+:10A00000207B40F00A00207310BD4FF6FF720280E3
+:10A01000032008F052BC7047027BD30701D192079E
+:10A0200003D4408908800020704705207047027BD8
+:10A03000920700D54181704701460020098847F208
+:10A04000FE12114200D00120E549497A002901D0D1
+:10A0500040F00800704700B50346007BC00701D000
+:10A06000052000BD19811846FFF7E6FFC00703D0A1
+:10A07000187B40F004001873187B40F0010018733F
+:10A08000002000BD027B520700D509B1008970474E
+:10A0900017207047027B61F3C302027370472DE9FA
+:10A0A000F04F0E46017804464FF0010B0BFA01F019
+:10A0B00047F2FF1100EA010961681D464FF6FF7380
+:10A0C000088887B09646984206D0B9F1000F07D0AD
+:10A0D00047F2FE12104203D0012007B0BDE8F08F16
+:10A0E00040EA090008804FF0000A8DB185F800A011
+:10A0F0002278002705200221102A72D2DFE802F020
+:10A10000710D323B506A727C50C7C399CBFDFCFB8A
+:10A1100020780B28ECD00420DFE76068B4F80C80CE
+:10A12000007B80077ED5B8F1170F4BD3FFF74AFFAE
+:10A130004045FAD360684089172801D3404541D192
+:10A14000287820F03F00801C2870A5F801800320AB
+:10A1500030806168A1F80A806068017B21F002010B
+:10A16000017334E104212970A189A5F80110E18966
+:10A17000A5F8031085E0A08A3188C01D1FFA80F879
+:10A180004145D2D3062005F8010BA0892880E0893B
+:10A190006880208AA88007200090A38AA2693EE0F8
+:10A1A000082A10D008212970A189A5F80110E18999
+:10A1B000A5F8031030806A1D694604F1100006F00E
+:10A1C0004EFA10B1CCE01021EDE730889DF8001078
+:10A1D000084456E00A202870A089A5F80100032051
+:10A1E00008E006E10C212970A189A5F80110E18998
+:10A1F000A5F803103080A8E0A089B6F800C00BEBEA
+:10A2000040021FFA82F8C44578D3B8F1050F75D320
+:10A210000E222A70CDF800B0226903EA400320899B
+:10A2200080B200E079E0714600F096FAA6F800806E
+:10A23000CDE06B48427A002A6FD0521E42724068CD
+:10A24000227B236900EBC205AA882868D3F800C0E6
+:10A250001044A0F1080240F808CC586850608DF80E
+:10A2600000108DF801A028680290A888ADF80400BD
+:10A2700000216846FBF758FAA5F804A0002E01D08B
+:10A2800050463080A3E0287840F08001297028787B
+:10A2900040F040012970E0893188C01C1FFA80F825
+:10A2A00041455DD3287820F03F0012302870A18905
+:10A2B000A5F80110032000902089E38980B271463F
+:10A2C000226900F049FAA6F80080287841063CD5BA
+:10A2D00000067CD58DF800B08DF801A03188CDE95D
+:10A2E000025A091DDFF8F8800420ADF8041004902C
+:10A2F00098F8080003E055E04BE02AE030E08DF8E4
+:10A30000140000216846FBF70FFA074630880C302E
+:10A310003080022F02D0DFB36EE047E09DF81420BA
+:10A32000D8F8041098F80830404601EBC2019A4270
+:10A3300016D28A88A2B9427A521C88F809200D6088
+:10A3400030888880A6F800A056E06168A0898880DF
+:10A350003DE0218A3288491D1FFA81F8424501D229
+:10A36000042749E0297821F03F0116312970A1899D
+:10A37000A5F80110E189A5F8031000902089238A2F
+:10A3800080B27146626900F0E7F9A6F80080DCE768
+:10A390001DE0287820F03F0018302870207B68707E
+:10A3A000318014E060680188090401D4052723E0A6
+:10A3B000C088A189884201D006271DE01E20287090
+:10A3C000A6F800B06068018821F400410180B9F16D
+:10A3D000000F11D00248002200888300032001E012
+:10A3E000E8050020A16808F0CBF961682078887042
+:10A3F00007E0A6F800A003276068018821EA0901A8
+:10A400000180384669E62DE9F04F87B09B46119CE4
+:10A410000D46030016461AD03078C10703D000F06D
+:10A420003F00192801D9012100E000212046FFF753
+:10A4300029FE98420BD32088A0F57F41FF3906D032
+:10A440003078410601D4000603D5082045E60720F0
+:10A4500043E600208DF800008DF8010030785F1E83
+:10A4600000F03F0C0122981E4FF0050A4FF0020940
+:10A47000B9B2BCF1200F76D2DFE80CF08C10755F1A
+:10A480007569758D759E75B775BC75CA75D675E39A
+:10A49000757575F375F175F075EF758C052B79D1C0
+:10A4A00004208DF80000A0788DF804007088ADF8C5
+:10A4B000060030798DF80100707800F03F000C281C
+:10A4C00029D00ADCA0F10200092863D2DFE800F0FD
+:10A4D000126215621A621D622000122824D004DC68
+:10A4E0000E281BD01028DAD11BE016281FD0182800
+:10A4F000D5D11FE02078800701E0207840070028B0
+:10A5000048DAF0E020780007F9E72078C006F6E79F
+:10A5100020788006F3E720784006F0E720780006F0
+:10A52000EDE72088C005EAE72088C004E7E7208837
+:10A530008004E4E720884004E1E72078800729D5FB
+:10A54000032B27D18DF800A0B6F8010082E0217816
+:10A5500049071FD5062B1DD381B27078012803D07F
+:10A56000022817D102E0CBE0022000E010200622F2
+:10A570008DF8002072788DF80420801CB1FBF0F279
+:10A58000ADF8062092B242438A4203D10395ADF85A
+:10A590000890A8E07AE02078000777D50721B8B2C4
+:10A5A0008DF800108108ADF80410B0EB810F6DD16B
+:10A5B0000295ADF8062096E02178C90666D5022BF3
+:10A5C00064D381B208208DF80000707802285DD332
+:10A5D000B1FBF0F28DF80400ADF8062092B24243D0
+:10A5E0008A4253D1ADF808907CE0207880064DD5A2
+:10A5F000092003E02078400648D50A208DF80000A5
+:10A60000A088ADF80400ADF80610ADF8082069E0A8
+:10A610002078000672D50B20ADF804108DF80000EC
+:10A62000ADF8062002955EE02188C90566D5022BAB
+:10A6300064D381B20C208DF80000707804285DD3BB
+:10A64000C6E72088C00459D5012B57D10D208DF8BD
+:10A650000000A088ADF8040045E021E026E016E007
+:10A66000FFE72088800449D5052B47D30E208DF8BD
+:10A670000000A088ADF80400B6F803005B1FADF839
+:10A680000830ADF80600ADF80AA02BE036E02088CF
+:10A69000400433D5012B31D10F208DF8000022E08A
+:10A6A000208800042AD4B6F80100E080207B00074F
+:10A6B00024D5032B22D3307800F03F001B2819D07B
+:10A6C00011208DF80000208840F40040A4F800001C
+:10A6D000B6F80100ADF80400DB1E0320ADF806302B
+:10A6E000ADF80800039559466846FBF71DF80500CC
+:10A6F00008D016E010208DF80000E9E7072510E0EB
+:10A7000008250EE0307800F03F001B2809D01D28F6
+:10A7100007D00320109908F0D0F8208800F40040FA
+:10A720002080207B400708D52046FFF785FCC00726
+:10A7300003D1207B20F0040020732846CDE400B52F
+:10A7400087B0032806D18DF80000019100216846EA
+:10A75000FAF7EAFF07B000BDF8B51C4615460E46ED
+:10A76000069F04F013FC2346FF1DBCB231462A4667
+:10A77000009404F052F8F8BD2DE9FF4F8FB0054664
+:10A78000DDE91C471198DDF880B0082805D0E8699C
+:10A7900001F031F950B11020CDE02088092140F0BE
+:10A7A000100020808BF80010022017E0E9690120DA
+:10A7B0008871EA694FF420519180E9698872E969EA
+:10A7C00042F601000881E969002088732088112180
+:10A7D00040F0200020808BF800100420814638785B
+:10A7E0000B900A2038704FF0020A05F11800564607
+:10A7F0000D9001F0A1FB4C467CE0119810280DD182
+:10A80000022E0BD0AAEB0400801C80B2009021988D
+:10A81000022380B206AA1F9901F0DDF8BDF81A10D4
+:10A820001298814203D9F648007A109004E003D1CF
+:10A830000B9808B1387031E02198CDF800A080B2B3
+:10A840004FF002030DF11A021F9901F0C4F81E988F
+:10A850000088811BA1EB090083B2C9F1FF00984277
+:10A8600000D203460AEB090292B20DF130080292BF
+:10A8700000202199CDF81480CDE903101F9910987C
+:10A88000CDE9000195F82010BDF81A00002201F072
+:10A89000D5FB387050B1C0B2832803D0BDF81A0080
+:10A8A000288334E0022013B0BDE8F08FBDF83000FB
+:10A8B000022E00EB0901CCB20CD09BF80110A14292
+:10A8C00005D1BDF82410814206D0FF2C04D09BF89E
+:10A8D00001401EE08BF80140C94800680178052955
+:10A8E00002D1BDF81A1081800AEB04001FFA80FA29
+:10A8F000301986B206AB219A10990D9801F01FFB12
+:10A9000028B91E980088801BA042BFF676AF022EA1
+:10A9100012D0119810280BD1AAEB0400801C80B231
+:10A9200000902198022380B206AA1F9901F053F8E3
+:10A930001E980680002038700020B4E72DE9F84307
+:10A940009446089E02460027F06BB0B3521F94B2A3
+:10A95000B6F84220A2F57F45FF3D05D08518AD88A9
+:10A960002A44921D95B200E000252A19B6F84080CD
+:10A970000832424522D84219BCF8010022F8020BE5
+:10A98000BCF8030022F8020B98B222F8024B894669
+:10A99000904604F0E9FA4FF00C0C49464246234633
+:10A9A000CDF800C003F000FFA6F84250F16B002084
+:10A9B0002944A41D2144088003E001E0092700E0A8
+:10A9C00083273846BDE8F88310B50B88B0F84040BF
+:10A9D0009C420CD9C46BE018048844B1848824F4E8
+:10A9E0000044A41D23440B801060002010BD822071
+:10A9F00010BD2DE9F0478AB0002590468946824671
+:10AA0000ADF81C5007274DE00698068880880004A2
+:10AA100048D4A8F8006008A8CDE90450CDE9007535
+:10AA2000029503954FF4007300224946304601F029
+:10AA300005FB04003DD1BDF81C00ADF824000699CB
+:10AA400008888A88B04216D1130414D40595CDE93C
+:10AA5000007522F4004202950395049542F4804368
+:10AA60004A88494601F0CDF804000BD10698818848
+:10AA700041F40041818006AA09A95046FFF7A4FFCE
+:10AA80000400DCD00595CDE9007506980395029584
+:10AA900004950088BDF820300022494601F0B1F845
+:10AAA000822C06D106AA07A95046FFF78DFF0400A5
+:10AAB000AAD0ADF81C5004E00698818821F400412A
+:10AAC000818006AA07A95046FFF77EFF0028F3D031
+:10AAD000822C03D020460AB0BDE8F0870020FAE7B8
+:10AAE00030B50446C06B85B0002578B10C208DF8D8
+:10AAF0000000B4F84000ADF80800E06B039101904D
+:10AB000000216846FBF78DFC8DF8005044F83C5F4F
+:10AB10004FF6FF70E080A58005B030BD2DE9F04113
+:10AB200005460F46E96B0020069E1446002911D009
+:10AB3000012B0FD1324639462846FFF75AFF00282D
+:10AB400008D1002C06D0324639462846BDE8F041EF
+:10AB500000F060BFBDE8F081F8B51D46DDF818C013
+:10AB6000DDE907634C1DBCF800E0A4B2099FA645CF
+:10AB700001D20720F8BDACF80040172403F8014BC0
+:10AB800018805A80052000900B46B8B22A463146FC
+:10AB900000F021FF0020F8BD70B50D4604464C21A1
+:10ABA00013F01BFA04F1080044F81C0F00204FF6C4
+:10ABB000FF712062E184A08425711720208514F89C
+:10ABC0002C0F40F00A00207070BD4FF6FF7202801B
+:10ABD000042007F072BE30B585B00D460446FFF77D
+:10ABE0007FFF208F38B101208DF8000000216846DA
+:10ABF0000195FBF716FC002020636063A0638BE7E0
+:10AC0000F405002090F84820920703D4408808807B
+:10AC1000002070470620704790F84820920701D521
+:10AC2000A0F8461070470146002009880A0700D5A1
+:10AC3000012011F0F00F01D040F00200CA0501D54B
+:10AC400040F004008A0501D540F010004A0501D506
+:10AC500040F02000090501D540F04000704700B5E4
+:10AC6000034690F84800C00701D0062000BDA3F8B5
+:10AC700044101846FFF7D7FF10F0760F05D093F871
+:10AC8000480040F0040083F8480013F8480F40F0F3
+:10AC900001001870002000BD90F84820520700D530
+:10ACA00011B1B0F8440070471720704710F8482FD2
+:10ACB00061F3C302027070472DE9FF4F9BB006009D
+:10ACC000DDE92CB4289F1E9D2A9B25D02878C1073A
+:10ACD00003D000F03F00192801D9012100E0002134
+:10ACE0002046FFF7D9FFB04216D3287841060FD48B
+:10ACF00000F03F011E2909D0218811F47F6F0BD18C
+:10AD00003A884AB1A1F57F42FF3A05D0010606D53F
+:10AD100000F03F00122802D004201FB0C4E5F8491B
+:10AD20001C984FF0000908728DF818908DF83C902F
+:10AD30000FAA0A602B9A4A60ADF81C90ADF85090AB
+:10AD40002A789A4602F03F0C0420711F04F1180380
+:10AD50004FF007084FF0030E1693BCF11F0F7DD282
+:10AD6000DFE80CF07C7C107C257CA97CFD7CFC7CE5
+:10AD7000FB7CFA7CFD7CF97C7C7CF87CF77C7C7C21
+:10AD80007C7CF60094F84820B5F80110920701D5B4
+:10AD9000032E02D08DF8180039E34FF40060ADF8AF
+:10ADA000500061808DF83CE0ADF84010F1E2052ED6
+:10ADB000F0D1B5F801002083ADF81C00B5F8031000
+:10ADC000618300286BD0884269D80020A07220815E
+:10ADD0004FF6FF706084169801F0AEF805208AF8EF
+:10ADE00000000220804601900AAB5A461C99169832
+:10ADF00001F0A5F898BB9DF82E00012804D002218F
+:10AE00008AF80110102003E001208AF801000220D6
+:10AE10000490002203A90BA805F021FCF0BB9DF8CB
+:10AE20000C00049981423CD13A88801CA2EB0801B5
+:10AE3000814236DB019800901FFA8BF002230DF15E
+:10AE40002A02299900F0C7FD019808F10208801C28
+:10AE500081B2019117AA03A90BA801E0B8E223E08F
+:10AE600005F0FDFB019900911FFA8BF09DF80C3065
+:10AE700017AA299900F0AFFD9DF80C000AAB08EB6A
+:10AE800000011FFA81F801995A46084480B20190E6
+:10AE90001C99169801F053F8002801E001E095E0B4
+:10AEA000B7D0B8F1020F03D10A208DF818006DE277
+:10AEB000A7F800806AE2072EFFF46CAFB5F8010036
+:10AEC0002083ADF81C00B5F80310618300287DD005
+:10AED00088427BD80120A072B5F8050020810020AF
+:10AEE000A073E06900F087FD78B9E16901208871FD
+:10AEF000E2694FF420519180E1698872E16942F67C
+:10AF000001000881E16900208873F01F60841D98AA
+:10AF1000A062A4F82480169801F00EF88AF8008048
+:10AF20000120804602900020ADF82A002BE000BFEF
+:10AF3000B8F1010F1DD0E0698079012803D1BDF877
+:10AF40002800ADF80E00029800901FFA8BF007E081
+:10AF50002BE2ADE13BE1DCE025E29FE076E03BE087
+:10AF6000042303AA299900F036FD0298001D80B23F
+:10AF70000290BDF82A00ADF80C00ADF80E0008F103
+:10AF800004001FFA80F80AAB5A461C99169800F084
+:10AF9000D6FF20B93988A1EB08000428C8D2B8F13F
+:10AFA000010F81D0E0698079012805D0BDF8281013
+:10AFB000A1F57F40FF3803D1BDF82800ADF80E00A1
+:10AFC000029800901FFA8BF0042300E014E003AA1B
+:10AFD000299900F000FD6BE7072E02D0152E7FF4B3
+:10AFE000D9AEB5F801002083ADF81C00B5F80320F8
+:10AFF000628308B1904201D90120CBE60120A07202
+:10B0000000202081A073052E07D0C8B2691DE26917
+:10B0100005F006FB00287FF447AF4FF6FF70608411
+:10B02000299803A9029781E8010C06A814A9CDE983
+:10B0300000102878002300F03F0220461C99FFF7FB
+:10B040009BFB8146208BADF81C009FE1032ED4D1E1
+:10B050004020ADF85000B5F801002083ADF81C0089
+:10B060000DF1300C01230021CDF814C00293CDE97D
+:10B0700003B1299A1C99CDE9001239880022491E92
+:10B080008BB294F8201000F0D9FF8DF8180090BB17
+:10B090000B208AF80000BDF8300038E0052EACD156
+:10B0A0008020ADF85000B5F801002083B5F80310FA
+:10B0B0006184ADF81C00B1F5007F02D98DF81880CD
+:10B0C000A5E141F47C4262840DF1280800214FF093
+:10B0D000010CCDE90418CDE902CB299B1C99CDE9DF
+:10B0E00000133988491E8BB294F8201000F0A6FF97
+:10B0F0008DF8180030B18328A7D10220D6E00000D7
+:10B10000F40500200D218AF80010BDF82800401C2D
+:10B110003BE1D10901EB41030EEB8301B14204D9BC
+:10B1200051067FF56AAF00202FE1B5F80100ADF8B8
+:10B130001C002A78520609D506228DF83C202A7870
+:10B14000120605D500208DF83C0043E18DF83C80C7
+:10B150004FF0030C4FF00008CDF808C0CDE903B85C
+:10B16000DDE91C23CDF81480CDE90023A6EB010B0B
+:10B170001FFA8BF394F82010424600F042FD8DF840
+:10B1800018008DF83C80297849060DD52088C00527
+:10B1900006D5208BBDF81C10884201D1C4F8288048
+:10B1A00040468DF81880F0E0832801D14FF0020965
+:10B1B0004FF48070ADF85000BDF81C002083A4F857
+:10B1C00022B01D98A0620320A0841321DAE0052E8E
+:10B1D000FFF413AFB5F80100ADF81C00B4F840203F
+:10B1E0007AB3A2F57F43FE3B2CD008228DF83C2099
+:10B1F0004FF0050C4FF00008CDF808C0CDE903B8BA
+:10B20000DDE91C23CDF81480CDE9002389B241F497
+:10B210000043B5F8032094F8201000F0F2FC8DF8FC
+:10B220003C804FF400718DF81800ADF85010832861
+:10B2300013D010B3B4F84010A1F57F40FE3809D008
+:10B24000E5E0FFE70B228DF83C204FF6FE72A4F8F4
+:10B250004020CDE7A4F84080D9E05B462A46009420
+:10B2600030461D99FFF76AFB8DF8180008B1832856
+:10B270004CD1BDF81C0020833FE75B462A46009472
+:10B2800030461D99FFF75AFB8DF81800F0BBB4F853
+:10B290004210E06B299A431801A8009780E8040C3B
+:10B2A0005A88998833F8060BFFF756FC81466DE003
+:10B2B00095F80180022E75D15FEA080002D0B8F13E
+:10B2C000010F6FD109208DF83C0007A800908DF880
+:10B2D000408094F82010434600222046FFF71EFCD1
+:10B2E0008DF8410000218DF8421058B9B8F1010FD6
+:10B2F00015D0B8F1000F05D1B4F84010A1F57F408A
+:10B30000FF380CD0B4F8400048B100E03EE0002027
+:10B310008DF83C004FF48060ADF850000EE00FA8AF
+:10B320002B99FBF77EF8814600208DF83C004FF406
+:10B330008060ADF85000B9F1020F06D0F8480068FF
+:10B34000807928B18DF8180028E0A4F8188043E02F
+:10B35000B9F1000F03D081208DF818003CE007A858
+:10B36000009094F82010434601222046FFF7D6FBB8
+:10B370008DF8180059462046FFF7B2FB9DF81800DB
+:10B3800020B919218AF80010012038809DF83C006E
+:10B3900020B10FA82B99FBF744F88146B9F1000FB3
+:10B3A00032D019E016E00620F4E42078000711D529
+:10B3B000012E0FD10A208DF83C00E088ADF8400046
+:10B3C0005946042007F079FA0820ADF85000AAE6A3
+:10B3D0005106E9D54FF004092088BDF85010084304
+:10B3E0002080BDF8500080050CD5B4F84010A1F5C0
+:10B3F0007F40FE3806D11D9820631E986063268723
+:10B400004FF00309484688E49DF8180078B1012000
+:10B410008AF8000029788AF80110BDF81C10AAF8F3
+:10B4200002109DF818108AF8041005203880208832
+:10B43000BDF8501088432080E4E72DE9FF4F97B016
+:10B44000804601780120DDE926A488404FF20901F9
+:10B450000840ADF8200021889B46A1F57F424FF0BF
+:10B460000009FF3A02D028B1080703D501201BB01C
+:10B47000BDE8F08F249E0020054630701999189A77
+:10B480000988ADF84010A6498DF81C000A728DF8A5
+:10B490002C000BA808602598486098F80000012847
+:10B4A00037D0022809D003287ED1307820F03F0021
+:10B4B0001D303070B8F80400E08098F800000228D1
+:10B4C00004D1307820F03F001B30307094F84800F1
+:10B4D000000769D513AB0020CDE904030721CDE9AE
+:10B4E000001B0322CDE9022ABDF8400094F8201089
+:10B4F000C01E83B2B8F80400002200F09FFD0028AF
+:10B50000D2D1B8F80400A6F80100BDF84C00C01C68
+:10B5100003E198F805108DF81C1098F80400012834
+:10B5200006D04FF4007902282BD00328BCD171E15A
+:10B530002088B8F8087010F40060ADF8200033D00F
+:10B54000172F1CD3FEF73EFDB84218D3B4F84600BF
+:10B55000172801D3B84212D1307820F03F00C01C28
+:10B560003070A6F801700320ADF84000A4F84670D2
+:10B5700094F8480020F0020084F848006CE10525AA
+:10B5800085E1208808F1080700F4FE60ADF820008E
+:10B5900010F0F00F1ED010F0C00F03D03888228BAF
+:10B5A0009042ECD1B1B900E06BE1B878C00711D09E
+:10B5B0000020B9680290CDE9030107210590CDE98B
+:10B5C0000010FB88BA8894F82010388800F019FB26
+:10B5D0000028D4D1BDF8200080284CD006DC1028EB
+:10B5E0000DD020280BD040288AD124E0B0F5807FF0
+:10B5F0006AD048457ED0B0F5806F97D1E2E0C006B2
+:10B6000001D5082000E01020814605208DF82C008F
+:10B61000002008A9ADF8300001AB009110AA07A8DE
+:10B6200083E80508CDE9046A3B884A46072120469D
+:10B63000FFF7A2F8A8E09DF81C004FF00A090028C7
+:10B640009CD113ABCDE904030721CDE9001B0122F6
+:10B65000CDE9022ABDF8400094F82010401E83B2C4
+:10B66000208B002200F0EAFC8DF81C000B203070CB
+:10B67000BDF84C001EE09DF81C004FF00C0900289E
+:10B6800021D115ABCDE904030721CDE9001B01222F
+:10B69000CDE9022ABDF84000628C401E83B294F8C6
+:10B6A0002010208B00F0CAFC8DF81C000D2030709B
+:10B6B000BDF85400401CADF8400005208DF82C006A
+:10B6C000208BADF83000C7E03888B4F818C060456A
+:10B6D0007FF455AF9DF81C004FF0120900281ED1D1
+:10B6E000A06AB8B1B878C0073FF449AF0020B96884
+:10B6F000029000E016E0CDE9030107210590CDE9B5
+:10B700000010FB88BA8894F82010604600F079FA9F
+:10B710008DF81C00132030700120ADF840009BE034
+:10B72000F4050020B7F800C0208B8445D0D19DF8E7
+:10B730001C004FF016090028E06B06D0F0B3002083
+:10B74000ADF808004FF6FF7729E078B1B978C9075E
+:10B75000BED1B4F8421010AACDE9002BCDE9026A9F
+:10B7600043185A88998833F8060B0BE0B878C0075D
+:10B77000BAD010AACDE9002BCDE9026ABA88F988BF
+:10B780006046BB68FFF7E8F9050065D0072D79D062
+:10B790007DE00F4605AA02A92046FFF715F9B4F887
+:10B7A0004220BDF808108A4201D00028F1D0B4F838
+:10B7B0004210E26B00201144088000E04CE0A4F845
+:10B7C000427049E09DF81C004FF0180940B1208BF1
+:10B7D000D0B13888208351462046FFF781F93BE0FD
+:10B7E00004F118000090237E94F8201001222046D6
+:10B7F000FFF794F98DF81C000028ECD11920307067
+:10B800000120ADF84000E6E7052551462046FFF748
+:10B8100067F93CE0208800F40070ADF8200048454E
+:10B820002FD1B4F84000A0F57F41FE3990D1D8F86F
+:10B8300008004FF0160958B1E063B8F80C10A4F8EE
+:10B8400040104FF6FF71A4F842100021018003E080
+:10B850004FF6FF70A4F84000BDF8200030F47F617F
+:10B860001AD0782300225146042006F089FF98F868
+:10B87000000020712088BDF82010084320800EE0D1
+:10B8800000E007252088BDF820108843208020880C
+:10B8900010F47F6F1DD03EE02188814321809DF808
+:10B8A0002C0028B16F4841680BA8FAF7BAFD05468D
+:10B8B0009DF81C000028EAD086F801900120307025
+:10B8C000208B70809DF81C0030710520ADF8400081
+:10B8D000DDE7208FF8B119990988ADF84010DDE94E
+:10B8E000242302A9059481E80C0410AACDE9002BB9
+:10B8F000D4E90C231899FFF7DFF9054601208DF8EC
+:10B900002C0000210BA8CDF830A0FAF78AFD00B179
+:10B9100005460020208794F8480040070AD52046B5
+:10B92000FFF781F910F0760F04D114F8480F20F0DA
+:10B93000040020701998BDF840100180284696E553
+:10B9400000B585B0042807D102208DF800000191D0
+:10B9500000216846FAF765FD05B000BD10B5414A03
+:10B9600003781168012B02D0022B2BD112E00B7847
+:10B970000BB1052B01D104230B70136881889980CA
+:10B980001168C388CB8013680189198111684089C7
+:10B9900048810FE083888B801168C388CB8013684F
+:10B9A00001891981136841895981116883898B81C3
+:10B9B00000690861D2E90001FAF733FD022803D0DB
+:10B9C000002800D0812010BD832010BDC06B00284E
+:10B9D00000D001207047F8B51C4615460E46069F5C
+:10B9E00003F0D4FA2346FF1DBCB231462A46009428
+:10B9F00002F013FFF8BD8178012909D10088B0F564
+:10BA0000205F03D042F60101884201D10020704737
+:10BA100007207047F0B589B0002415460E4607464A
+:10BA2000ADF8184011E0079801882980811D029423
+:10BA3000CDE9034107210594CDE9001483884288AC
+:10BA40000088314600F0DDF830B907AA06A938466B
+:10BA5000FEF7BAFF0028E6D0822800D1002009B006
+:10BA6000F0BD0000F405002010B58B7883B102789A
+:10BA70009A4205D10B885BB102E08B79091D4BB16D
+:10BA80008B789A42F9D1B0F801300C88A342F4D1F6
+:10BA9000002010BD812010BD072826D012B1012A38
+:10BAA00027D103E0497801F0070102E04978C1F3AA
+:10BAB000C20105291DD2DFE801F00318080C1200AD
+:10BAC0000AB1032070470220704704280DD250B1FC
+:10BAD0000DE0052809D2801E022808D303E00628BD
+:10BAE00003D0032803D005207047002070470F20A3
+:10BAF00070478120704710B513880B800B781C06A7
+:10BB00001FD5F64CA47A844204D843F01000087084
+:10BB1000002010BD94682478C44064F304130B70B3
+:10BB20001378D17803F0030341EA032140F20123A3
+:10BB3000B1FBF3F403FB1411926800FB0120401CDD
+:10BB400010BD906810BD37B5BDF8041011809DF888
+:10BB5000045029061BD5E14901239468897A814262
+:10BB600009D8FE280FD1E80602D58B405B1E00E005
+:10BB70000023237007E0217883409943C5F3001325
+:10BB8000834019432170107820F0100010703EBDE2
+:10BB90002DE9F0410746C81C0E4620F00300B042D4
+:10BBA00002D08620BDE8F081082A01D90E20F9E7ED
+:10BBB000CA4D002034462E60AF802881AA72E880EA
+:10BBC0001AE0E988491CE980810614D4E17800F084
+:10BBD000030041EA002040F20121B0FBF1F201FB39
+:10BBE0001201206800F021FB2989084480B22881D5
+:10BBF000381A3044A0600C3420784107E1D400208A
+:10BC0000D0E72DE9FF4F87B01646DDE9147A80466C
+:10BC1000994623F4404500F0F8FA04000BD0207850
+:10BC200000060AD5AD48817A0898814205D8872058
+:10BC30000BB0BDE8F08F0120FAE7224601A9089871
+:10BC4000FFF759FF834600208DF80800072F1BD00F
+:10BC5000012221463846FFF71FFF0028E8D120784F
+:10BC6000400611D502208DF80800BDF80400ADF89B
+:10BC70000C80ADF80E00ADF810601698ADF81250BB
+:10BC8000CDF818A0ADF814005FEA094004D50025EE
+:10BC90002E46A84601270CE02178E07801F0030148
+:10BCA00040EA012040F20122B0FBF2F1804602FBA3
+:10BCB00011875FEA494009D5B84507D1A1782079B5
+:10BCC00001F0030140EA0120B04201D3BE4201D994
+:10BCD0000720ADE7A8191FFA80F9B94501D90D2051
+:10BCE000A6E79DF8080020B102A8FAF798FB002803
+:10BCF0009ED1B84507D1A0784FEA192161F3010020
+:10BD0000A07084F80490199800B10580189850EA42
+:10BD10000A0028D0189830B10BEB06002A46189973
+:10BD200012F0C2F80FE017980BEB060880B25746E6
+:10BD3000169E03F019F92B46F61DB5B23946424658
+:10BD4000009502F031FD224601A90898FFF7D3FEC5
+:10BD50009DF80400224620F010008DF8040001999F
+:10BD60000898FFF7F0FE002062E72DE9FF4FDFF8AB
+:10BD70006C9182461746B9F80610D9F8000001EB1D
+:10BD8000410100EB810440F20120B2FBF0F187B0E9
+:10BD900000FB11754E46DDF854802946089800F0E6
+:10BDA00044FA316832898B46611A0C3101441144DE
+:10BDB000B38889B28B4201D8842039E70899CEB282
+:10BDC000310603D5B10601D5852031E7B9F806C0A3
+:10BDD0000CF1010C1FFA8CFCA9F806C0169909B1E8
+:10BDE000A1F800C0B10602D5C4F8088007E01044ED
+:10BDF00080B2A9F80800191A01EB0B00A0602246D6
+:10BE0000FE200899FFF79FFEE77025712078390A18
+:10BE100061F301002A0AA17840F0040062F30101F5
+:10BE2000A17020709AF802006071BAF80000E080FA
+:10BE300000252573300602D599F80A7000E0012725
+:10BE4000B00601D54FF000084E4600244FF0070918
+:10BE50000FE00295CDE903580595CDE90095F088EE
+:10BE60002146149B0A9AFFF7CCFE0028A5D1641C3A
+:10BE7000E4B2BC42EDD30020DAE62DE9F04780467B
+:10BE800000F0C3F9070005D000264446134D40F2E8
+:10BE9000012916E00120BDE8F087204600F0B5F941
+:10BEA0000278C17802F0030241EA0222B2FBF9F300
+:10BEB00009FB1321006800F0B8F93044641C86B215
+:10BEC000A4B2E988601E8142E7DCA8F10100E880A5
+:10BED0002889801B288100203870DCE700060020BC
+:10BEE00020B1401E108091700020704701207047E3
+:10BEF00010B5D54904460088CA88904201D38220F3
+:10BF000010BD096800EB400001EB80025079A0727F
+:10BF1000D08820819178107901F0030140EA012056
+:10BF2000A081A078E11CFFF7E6FD20612088401C7D
+:10BF30002080E080002010BD0121818270472DE922
+:10BF4000FF4F83B04FF6FF780546A3F800804068A6
+:10BF50001F4680788DF8060068680088ADF80400F8
+:10BF600000208DF80A00A88A2C88A04200D304463D
+:10BF7000AC8242E0A88A401CA882701D6968FFF765
+:10BF800073FDC0BB3988414501D1601E3880688887
+:10BF9000A04237D3B178307901F0030140EA01299A
+:10BFA00001A9701DFFF760FD28BB698941452ED0AE
+:10BFB000002231460498FFF76FFDE0B969894945D1
+:10BFC00019D10598D5F810B0B5F80CC0D6F808A06E
+:10BFD00080B2CDF800C002F0C7FFDDF800C05946BE
+:10BFE0000CF1070C1FFA8CFC52464B46CDF800C0F2
+:10BFF00002F09DFB58B1641CA4B2204600F005F984
+:10C000000600B7D1641EAC82822007B011E67C80A6
+:10C010007079B871F088B8803178F07801F0030158
+:10C0200040EA01207881A7F80C90287A324607F17F
+:10C030000801FFF760FD38610020E6E72DE9FF4FBA
+:10C0400087B01C46DDE9158B91460F46DDF864A0EC
+:10C05000079800F0DAF8050008D02878000607D520
+:10C060007948807AB84203D88720E1E50120DFE5EE
+:10C07000C9F309062A4601A93846FFF73CFD0746E1
+:10C08000149807281BD000222946FFF705FD002839
+:10C09000EBD12878400612D501208DF808000798CA
+:10C0A000ADF80C00BDF80400ADF80E00ADF810605E
+:10C0B000ADF8124002A8FAF7B2F90028D5D12978D4
+:10C0C000E87801F0030140EA0121AA78287902F01A
+:10C0D000030240EA02204E4507D0B1F5007F04D9A3
+:10C0E000611E814201DD0B20A2E5864201D90720B5
+:10C0F0009EE5801B85B2A54200D92546BAF1000F06
+:10C1000001D0AAF80050189818B1B9192A4611F0B0
+:10C11000CBFEB8F1000F0ED017983E4480B24446D3
+:10C120005F4602F033FF2146FF1DBCB232462B466C
+:10C13000009402F072FB00207AE52DE9F0411D46E3
+:10C1400017460E4600F061F8040008D0207800067B
+:10C1500007D53D48807AB04203D8872022E50120E8
+:10C1600020E5224639463046FFF7C5FC65B1217807
+:10C17000E07801F0030140EA0120B0F5007F01D82A
+:10C18000012000E00020287000200BE52DE9F0419F
+:10C190001D4617460E4600F038F8040008D02078F7
+:10C1A000000607D52848807AB04203D88720F9E4F2
+:10C1B0000120F7E4224639463046FFF7C4FCFF2D44
+:10C1C00014D02178E07801F0030240EA022040F226
+:10C1D0000122B0FBF2F302FB130015B900F20120BB
+:10C1E00080B2E070000A60F3010121700020D9E400
+:10C1F00010B50C4600F009F828B1C18821804079BB
+:10C20000A070002010BD012010BD0F49CA888242D5
+:10C2100009D340B1096800EB40006FF00B0202EB5C
+:10C2200080000844704700207047C0B2820609D4DD
+:10C23000000605D50448807A4843401C80B2704708
+:10C2400008467047002070470006002010B506F031
+:10C250001BFD05F088FFF6F7D7FD10F011FE06F084
+:10C26000EBFBBDE8104006F09DBC10B50C4601F09C
+:10C27000A4FE80B3204600F0A8FA68B322780F2A03
+:10C2800009D0102A07D0022A05D0032A03D0142A85
+:10C290002ED0FFDF1DE0A0781E282DD00EDC0C284C
+:10C2A00024D008DC092827D2DFE800F0132617265F
+:10C2B000261E1E1A1C0012281ED11BE0302819D081
+:10C2C0001ADDA0F13A00032816D2DFE800F01115BC
+:10C2D0000B00002010BD13E010E043F20200F9E76C
+:10C2E0000420F7E70D20F5E70F20F3E70820F1E73A
+:10C2F0001120EFE70720EDE70320EBE7FFDFE8E79A
+:10C30000FFDFE6E700F061BA70B5034600200246A1
+:10C310006FF02F050EE09C5CA4F130060A2E02D3CC
+:10C320004FF0FF3070BD00EB800005EB4000521C69
+:10C330002044D2B28A42EED370BD30B50A240AE05E
+:10C34000B0FBF4F304FB13008D18303005F8010C3A
+:10C35000521E1846D2B2002AF2D130BD30B50023A9
+:10C360004FF6FF7510E0040A44EA002084B2C85C6E
+:10C370006040C0F30314604005EA00344440E0B27A
+:10C380005B1C84EA40109BB29342ECD330BD0000AA
+:10C3900010B50AF04CF8042803D00AF048F8052834
+:10C3A00002D108F05FFD50B90AF0FEF8032803D06F
+:10C3B0000AF000F9032804D107F0EFFC08B10120CE
+:10C3C00010BD002010BD70B50C460546062102F0D8
+:10C3D00068FC606008B1002006E00721284602F0F2
+:10C3E00060FC606018B101202070002070BD022048
+:10C3F00070BD2DE9FC470C4606466946FFF7E3FF92
+:10C4000000287DD19DF8000050B107F022FCB04219
+:10C410007CD0214630460DF020F9002873D115E07C
+:10C4200008F039FAB04271D0214630460BF0CAFF0D
+:10C43000002868D1019D95F8C000503518B9687E74
+:10C4400008B1012000E00020804603E0019D95F83E
+:10C45000698050354FF0010A95F835004FF000091A
+:10C46000A0B195F83600800710D584F8019084F8C3
+:10C4700000A084F80290A68095F83710A171298F4A
+:10C480002181698F618185F835903CE0304602F06A
+:10C490007DFD070000D1FFDF384601F078FF10F086
+:10C4A000FF0008D084F801900D212170A680E08063
+:10C4B00084F802A027E0304602F056FD070000D1C4
+:10C4C000FFDFB8F1000F21D0384601F0F0FFB8B11E
+:10C4D0009DF8000038B90198D0F8E4004188B142D5
+:10C4E00001D180F80090304607F075FA84F8019089
+:10C4F0000A21217084F80290A680A97EA17100E033
+:10C5000004E085F819900120BDE8FC870020FBE7D6
+:10C510001CB56946FFF757FF00B1FFDF684601F021
+:10C52000A0FDFF4900208968A1F8C2001CBD2DE9CB
+:10C53000FC4104460E46062002F05EFB054607203D
+:10C5400002F05AFB2844C7B20025A8463E4417E033
+:10C550002088401C80B22080B04202D34046A4F81C
+:10C56000008080B2B84204D3B04202D20020BDE8BD
+:10C57000FC816946FFF727FF0028F8D06D1CEDB25B
+:10C58000AE42E5D84FF6FF7020801220EFE738B5B5
+:10C590004FF6FF70ADF800000DE00621BDF8000079
+:10C5A00002F091FB04460721BDF8000002F08BFB6E
+:10C5B0000CB100B1FFDF00216846FFF7B8FF00288B
+:10C5C000EBD038BD2DE9F041D6A00679076807F019
+:10C5D0006FFA0EF047FCD54C4FF004081020A4F879
+:10C5E000388060874FF6FF70A4F85600002584F865
+:10C5F0005850A4F85A0084F8315004F8345BCB4901
+:10C6000004F8065C25702572C4F809703D31667324
+:10C61000481E0CF051F8A5731B2020824FF4A47122
+:10C620006182A082E1820A21217684F819800321A7
+:10C63000A176E1760E212177072161770621A17786
+:10C64000E1772084BDE8F08170B5B54C0D4660609F
+:10C65000217007F0A8F9FFF79AFFFFF7B3FF2078E2
+:10C6600009F099FC08F03CFA217860680BF043FF70
+:10C6700020780DF0A9FF28460AF04EFB07F029FBB1
+:10C68000217860680DF094F8BDE870400EF0EABBC8
+:10C6900010B501240AB1002010BD21B1012903D039
+:10C6A0000024204610BD02210FF030FEF9E72DE9ED
+:10C6B000F047040000D1FFDF9C4D002695F83100C3
+:10C6C00058B166701420207095F83200A07095F86B
+:10C6D0003300E07085F8316068E0287840B12C22A2
+:10C6E000A91C204611F0E0FB0F2020702E705DE0A9
+:10C6F00095F82E0060B10120E07095F82F00A07031
+:10C7000095F8300060701020207085F82E604DE0A4
+:10C71000864802215A308246FFF709FF00B1FFDF49
+:10C72000B5F85A90062002F067FA0746072002F093
+:10C7300063FA3844C7B2781C00F0FF08B5F85A0015
+:10C74000B84212D1204608F039F850BB95F83400B1
+:10C7500078B36670122020702021A01C11F01BFC01
+:10C760000220A07085F8346020E040451AD12046B0
+:10C7700007F044FAE8B12078122817D1A0783C28B5
+:10C7800014D1A088072102F08CFA050000D1FFDF48
+:10C79000288807F020F9A088072102F094FA00B158
+:10C7A000FFDF03E02146FFF724FE10B10120BDE8C2
+:10C7B000F087FFE702215046FFF7B9FE18B9B5F838
+:10C7C0005A104945BAD10020F1E770E710B509F0D9
+:10C7D0005FFB00B1FFDF0BF08CFE00B1FFDF08F064
+:10C7E00049F90AF082FA00B1FFDF0CF0DFFF00B177
+:10C7F000FFDF07F038FA00B1FFDF0DF0DFFE00B118
+:10C80000FFDFFFF7C4FEFFF7DDFE07F0B5F802F02B
+:10C810009AFB0EF027FB454800210171012141716F
+:10C820000222C270017010BD10B5404C207828B1B2
+:10C830000A21BDE810400F2001F0D8BBFFF7A8FD8A
+:10C8400008B10C2002E00EF053FB00202071012003
+:10C8500060710A21E170207010BD70B5334D04463F
+:10C86000287828B1BDE8704032210F2001F0BEBB0E
+:10C87000207818B1012801D0122010E001F0C3FB8C
+:10C8800020B10EF080FC08B10C2008E0207801F007
+:10C89000A2FB04F11703E21D611C0EF081FB28715D
+:10C8A000012068713221E970287070BD70B51F4C8D
+:10C8B0000546207828B1BDE870400B210F2001F01B
+:10C8C00095BB287818B1012801D012200EE0FFF79F
+:10C8D0005FFD08B10C2009E0287801F07CFB691CA1
+:10C8E0000EF0CDFA08B1002000E0072020710120F1
+:10C8F00060710B21E170207070BD10B50B4C217878
+:10C9000029B13021BDE810400F2001F06FBB008835
+:10C910000EF03CFC302158B10020207109E00000ED
+:10C9200048000020FFFFFFFF1F0000000C06002052
+:10C93000217101206071E170207010BD70B5FF4C55
+:10C940000546207828B1BDE8704031210F2001F064
+:10C950004DBB01F058FB08B10C2005E0287800F031
+:10C9600001000EF00DFC00202071012060713121CA
+:10C97000E170207070BD10B5F04C207828B13421E2
+:10C98000BDE810400F2001F031BB01F03CFB20B1AD
+:10C990000EF0F9FB08B10C2002E00EF058FB00206D
+:10C9A0002071012060713421E170207010BD10B53C
+:10C9B000E24C217829B13621BDE810400F2001F06A
+:10C9C00015BB0378411CA21D18460EF041FC08B1AE
+:10C9D000002000E002202071012060713621E1700A
+:10C9E000207010BD70B5D54C0546207828B1BDE843
+:10C9F000704037210F2001F0F9BA287801F0EBFAE6
+:10CA0000691C0EF0D1FB022508280AD00EF00FFD9C
+:10CA100038B10168C4F80610808860810020207158
+:10CA200000E02571012060713721E170207070BD38
+:10CA3000C248017819B10F21084601F0D7BA002188
+:10CA400001710F218170C170FF2181714FF6FF715B
+:10CA50000181BB4949680A7882728A888281498843
+:10CA6000C1810121417101707047B4490A781AB13E
+:10CA700047210F2001F0BABA0088A1F85600012022
+:10CA800081F8580000220A7148714722CA70087064
+:10CA9000704710B5A94C207828B12B21BDE8104073
+:10CAA0000F2001F0A3BA0821A01D05F0F5FB00201E
+:10CAB0002071012060712B21E170207010BD70B5D4
+:10CAC0009E4C217829B1BDE870403F210F2001F034
+:10CAD0008DBA90F90000042816D0032814D098B11C
+:10CAE000011D11D010F1080F0ED010F10C0F0BD05A
+:10CAF00010F1100F08D010F1140F05D010F1280F0D
+:10CB000002D01220207103E0002506F0DEF9257125
+:10CB10003F20E07001206071207070BD10B5874C1F
+:10CB2000217829B12A21BDE810400F2001F05EBA1A
+:10CB3000A31D012200F110010FF097F800202071D1
+:10CB40000F20A0702A20E07001206071207010BDBD
+:10CB50002DE9FF41794C207828B146210F2001F0C2
+:10CB600045FABDE8FF814FF0000884F80680B4F86C
+:10CB70005600ADF8040002A9FFF725FC20B1002102
+:10CB800001A8FFF7D4FCE8BBBDF80400ADF8000035
+:10CB900002A980B2FFF717FC00B1FFDFBDF800006B
+:10CBA00002F0F4F9050000D1FFDF2846039F01F0F1
+:10CBB00085FC80F0010697F86950BDF8000002F08E
+:10CBC000D3F9070000D1FFDF384601F070FC80F098
+:10CBD000010255EA020019D0A179BDF8000004EB6A
+:10CBE000410108815549A3791831585C65F300006B
+:10CBF0005854A37962F341005854A27966F3820035
+:10CC0000505400E00DE0A079401CA071002168465E
+:10CC1000FFF78DFC28B9BDF80000BDF8041088426C
+:10CC2000B6D1012084F8048060714621E170207043
+:10CC300097E770B5414C0546207828B1BDE87040B3
+:10CC400042210F2001F0D2B909F0F1FB052804D0F0
+:10CC5000284609F08DF9002000E00C202071012009
+:10CC600060714221E170207070BD10B5334C2078A6
+:10CC700028B10E21BDE810400F2001F0B7B9A11D69
+:10CC8000002006F029FF00202071012060710E2194
+:10CC9000E170207010BD70B5284C0546207828B191
+:10CCA000BDE8704040210F2001F0A0B901F0ABF9C0
+:10CCB00038B10C202071012060714021E17020709A
+:10CCC00070BD2946002006F0F4FE0020F2E770B5A2
+:10CCD0001A4C0546207828B1BDE870403E210F204F
+:10CCE00001F084B909F0C4F910B90AF0EBFA68B19F
+:10CCF00028780AF060F8287808F0EBF80020207116
+:10CD0000012060713E21E170207070BD0C20F6E7BB
+:10CD100070B50A4C0546207828B1BDE8704017214F
+:10CD20000F2001F063B901F06EF958B10C202071A9
+:10CD3000012060711721E170207070BD0C06002089
+:10CD4000480000202946012006F0B3FE0020EEE74F
+:10CD500038B5FF4D0446287828B1BDE838404A214F
+:10CD60000F2001F043B9227961798A4215D0A07968
+:10CD7000E379984211D01F2A0FD81F290DD800221D
+:10CD8000114610F0D7FB40B90022E079114610F0AF
+:10CD9000D1FB10B9207A072801D9122015E04FF6EF
+:10CDA000FF70ADF8000009F0FFFBA8B909F002FC24
+:10CDB00090B909F03CFB78B900216846FFF7B7FB52
+:10CDC00050B1204605F09AFF0020287101206871BB
+:10CDD0004A21E970287038BD0C20F6E72DE9FC47A0
+:10CDE000DB4C054694F82E0028B12821102001F0D4
+:10CDF000FDF8BDE8FC87282084F83000012184F884
+:10CE00002E10A8784FF000091A2825D00EDC16281D
+:10CE100031D2DFE800F03030303030213030303087
+:10CE20003030303030303030302121212A2822D0AB
+:10CE30000BDCA0F11E000C281DD2DFE800F01C1C4A
+:10CE40001C1C1C1C1C1C1C1C1C0D3A38042812D257
+:10CE5000DFE800F0110211022888B0F5706F0AD2E5
+:10CE60001F20884684F82F0028886946FFF7ABFA10
+:10CE700018B1022019E0122017E09DF80000019F70
+:10CE8000002806D007F1F607019E05D106F1DD0660
+:10CE900004E007F1DC07F7E706F1F706684601F062
+:10CEA000D5F808B1387818B10C2084F82F00A0E725
+:10CEB00087F80080A878307084F82F90684601F0D9
+:10CEC000D0F896E77CB5A24C0546207820B1252104
+:10CED0000F2001F08BF87CBD28886946FFF773FAB4
+:10CEE000002160B102202071A1602173E1800F2038
+:10CEF000A0702520E0700120607120707CBD019A37
+:10CF00001046503282F83E108368A360037B23737F
+:10CF100092F83E30002BF5D12888E080E7E710B585
+:10CF200040B10478406813B1B0F8440003E0B0F8B1
+:10CF3000460000E0FB201B2908D3814206D8B2F549
+:10CF4000A47F03D340F64800824201D9122010BDCD
+:10CF5000002010BD70B57E4C0546207828B1BDE894
+:10CF600070404C210F2001F041B8012666711F204E
+:10CF700020710F20A0704C20E0702670EA88A988EC
+:10CF800033460020FFF7CBFF30B900236A88298899
+:10CF90001846FFF7C4FF08B12071CEE604F8426FCF
+:10CFA000A888E080E8882081288860806888A08040
+:10CFB0000020207004F83E0CBFE67CB5644D0446AA
+:10CFC000287820B13A210F2001F010F87CBD01260D
+:10CFD0006E711F2028710F20A8703A20E8702E7003
+:10CFE00020886946FFF7EFF908B102200DE0A2881A
+:10CFF000618801236846FFF792FF30B9A2886188F3
+:10D0000000236846FFF78BFF08B128717CBD9DF8AF
+:10D0100000100020002901990988E98028710199F0
+:10D0200018D081F81961019A6188A2F81E11019A3D
+:10D03000A188A2F82011019A6188A2F81A11019A18
+:10D04000A188A2F81C11019981F81861019981F851
+:10D0500019017CBD81F8F160019A6188A2F8F6108F
+:10D06000019AA188A2F8F810019A6188A2F8F2103A
+:10D07000019AA188A2F8F410019981F8F060019951
+:10D0800081F8F1007CBD70B5314C0546207828B19F
+:10D09000BDE870403C210F2000F0A8BF012666715A
+:10D0A0000F20A0703C20E07026706A8829883346E3
+:10D0B0000020FFF734FF30B900236A88298818461A
+:10D0C000FFF72DFF08B1207137E604F8426F28887A
+:10D0D00060806888A0802888E0806888208100209F
+:10D0E000207004F83E0C28E670B5194D287828B158
+:10D0F000BDE870403B210F2000F078BF95F842005A
+:10D100002C1D00B1FFDFB5F848006080B5F84A007B
+:10D11000A08001206070002121700F21A9703B21A7
+:10D12000E970287009E670B5094D287828B1BDE886
+:10D1300070403D210F2000F059BFFB262C1DEE80D2
+:10D14000304600F04FFFA080E680304602E000004D
+:10D150000C06002000F046FF2081012060700021B5
+:10D1600021700F21A9703D21E9702870E5E52DE9B6
+:10D17000FC41FC4C064694F82E0028B110210846CC
+:10D1800000F034FFBDE8FC811F2084F82F00102040
+:10D1900084F83000012784F82E7030886946FFF744
+:10D1A00012F978B9684600F051FF58B1019D9DF819
+:10D1B000000050350028019806D000F585700178F0
+:10D1C00041B904E0022006E0D0F8E400F7E795F862
+:10D1D000351019B13A2084F82F00D3E795F83610AE
+:10D1E00089070CD1042101709DF8000020B9019934
+:10D1F0003088D1F8E4104880684600F032FF002003
+:10D2000084F82F0085F83570BCE72DE9F041D54C46
+:10D210000546207828B1BDE8F0411D210F2000F01F
+:10D22000E5BE1F202071012060711D21E17020707A
+:10D2300009F0FDF80C2604283CD005283AD0A9793D
+:10D240001220012904D019B1022901D0032926D1C5
+:10D25000297809B1012922D1E97929B1012903D01D
+:10D26000022901D003291AD1698843F6FD720B1FE8
+:10D270003020934213D2AB881B1F93420FD22187D9
+:10D28000A88860870027A87907F05DFD90B1E8794C
+:10D2900007F0B0FD2878012804D030B10CE02071EF
+:10D2A000BDE8F0810021022001E00021012007F00B
+:10D2B000D0FD08B12671F3E72771F1E770B5A94CED
+:10D2C000217829B1BDE870401E210F2000F08EBEEC
+:10D2D0001F212171012161711E22E27021700278EB
+:10D2E0001221012A00D01AB9407818B1012801D0C2
+:10D2F000217122E500260C25012A08D009F097F8B3
+:10D30000052802D008F071FD40B1257115E507F040
+:10D3100031FD618F208F08F0B8FEF5E726710CE52E
+:10D320002DE9F0478F4C0746B0F84600B4F844505A
+:10D330000E46854200D3054600F054FE0146B4F87F
+:10D340004600814203D8B7F8460000F04BFE804605
+:10D35000A146B4F84840B7F84400844200D30446DC
+:10D3600000F040FE0146B9F84A00814203D8B7F800
+:10D37000440000F037FE4FF4A4721B2C01D0904201
+:10D3800003D11B2D08D0904506D0F580A6F8088063
+:10D390007480B08001203070BDE8F0872DE9FC5F1B
+:10D3A0000546AFF680216F4ED1E900A196F82E0018
+:10D3B000884628B1BDE8FC5F2121102000F016BE90
+:10D3C0001F2086F82F00212086F830004FF0010B37
+:10D3D00086F82EB0284600F052FE002811D109F040
+:10D3E00026F805280CD009F022F8042808D096F871
+:10D3F000340028B907F04FFAA0F57F41FF3901D07A
+:10D400000C20D0E0062101A801F01CFC04007DD016
+:10D4100003210EF061FAB6F85400A4F84400B6F8FF
+:10D420005400A4F8460096F84D000090B6F8541049
+:10D4300096F84C3020880A4601F0E1FC04287CD0A4
+:10D4400000B1FFDF208806F0C5FA04F10D07B4F83B
+:10D4500000900421384604F01FFF494638460EF07C
+:10D4600078FB41A03F1D006800900321684604F04E
+:10D470009EFE002069460A5C3A54401CC0B2032854
+:10D48000F9D3288A6080688AA080A88AE08096F80C
+:10D490004F2096F84E1020460EF0FFFC0146204625
+:10D4A0000EF034FD4FF0000984F8569084F8579040
+:10D4B0004F46687900F08FFD6076D5F80600C4F815
+:10D4C0001A006889E083C4F808A084F80C8084F806
+:10D4D000ECB004F1F0012046FFF722FF8DF8007058
+:10D4E0000121684604F063FE9DF8000000F007018A
+:10D4F000C0F3C1021144C0F3401008448DF800008D
+:10D50000401D2076092804D2083001E013E014E021
+:10D510002076002120460EF0DFF9287B07F013FC6F
+:10D5200098B107F027FC69792879AA1D07F06DFCEE
+:10D5300007001BD027E0092035E02088062101F0F4
+:10D54000C2FB00B1FFDF07202DE0208806F043FA80
+:10D550002088062101F0B7FB00283FF451AFFFDF20
+:10D560004EE700000C060020112233002146032064
+:10D5700007F06FFC070006D16A882988204608F06A
+:10D5800036FD07000CD0208806F025FA20880621F9
+:10D5900001F099FB00B1FFDF86F82F70BDE8FC9F1A
+:10D5A000484684F8E09086F82F00F7E738B5FE4C3F
+:10D5B000207820B122210F2000F018FD38BD1F2057
+:10D5C0002071012565712220E070257094F83400E7
+:10D5D00010BB08F02CFF052805D007F05CF9A0F57A
+:10D5E0007F41FF3918D000202071684608F083FD84
+:10D5F0000028E3D10098008806F0EDF90098062194
+:10D60000008801F060FB00B1FFDFE84884F8345087
+:10D610000078FCF74FFC38BD0C20207138BD2DE997
+:10D62000F041E14D044695F82E0028B1BDE8F041E7
+:10D630002321102000F0DABC1F2085F82F002320C2
+:10D6400085F83000012085F82E00618840F67B4384
+:10D650008A1F30209A4251D2A288961F9E424DD2F4
+:10D6600091424BD8E188B1F5FA7F47D2218940F643
+:10D670007746A1F10A03B34240D2B1EBD20F3DD9B4
+:10D680006189A289914239D84FF00008208806218B
+:10D6900001F007FB06004FF0020707D000F0C8FCBE
+:10D6A00020B1D6F8E400017839B902E085F82F708E
+:10D6B000F6E5D6F81011097809B13A201EE00521E7
+:10D6C0008171D6F8E4004146A0F80880D6F8E4203D
+:10D6D000A0885081D6F8E420E0889081D6F8E42034
+:10D6E0002089D081D6F8E400028943899A4204D87F
+:10D6F0008279082A01D89A4203D3122085F82F0094
+:10D70000CEE522884280D6F8E400077085F82F1015
+:10D71000C6E52DE9FE43A44C0646207830B103B09F
+:10D720002421BDE8F0430F2000F060BC01256571A5
+:10D730002420E070257030460EF02DFA08B100204C
+:10D7400000E01220207100282CD184F83C50306871
+:10D75000C4F83D00307984F841004FF0000884F8A7
+:10D760003C806946062001F028FA00B1FFDF6846D8
+:10D7700001F001FAA0B9BDF8047000BFBDF80400C3
+:10D78000062101F08EFA060000D1FFDF86F8EC508A
+:10D79000684601F0F0F918B9BDF80400B842EDD1BF
+:10D7A00084F80480BDE8FE8370B57F4D064695F889
+:10D7B0002E0028B1BDE870402621102000F016BCD4
+:10D7C0001F2085F82F00262085F83000012085F8DD
+:10D7D0002E003088062101F064FA040007D000F022
+:10D7E00027FC20B1D4F8E400017831B901E002202F
+:10D7F0000CE0D4F81011097809B13A2006E00521AF
+:10D800000170D4F8E41030884880002085F82F009B
+:10D810005AE46548017819B106210F2000F0E6BBF3
+:10D82000002202710F2181700621C170C0F806200C
+:10D83000C0F80A20F1218171012141710170704706
+:10D840002DE9F041584D064695F82E0028B1BDE867
+:10D85000F0412C21102000F0C9BB1F2085F82F00BB
+:10D860002C2085F83000012085F82E003088062114
+:10D8700001F017FA040007D000F0DAFB20B1D4F869
+:10D88000E410087830B901E0022026E0D4F8100155
+:10D89000007808B13A2020E08C200027005D10F0CD
+:10D8A000010F19D0D6F802004860D6F8060088604B
+:10D8B00054F8E40F718910228181206806F10C016F
+:10D8C0000E3010F0F1FA21680320087021683088CA
+:10D8D000488085F82F70E3E40C2085F82F00DFE402
+:10D8E00070B5314D04460C26287828B1BDE870404B
+:10D8F00018210F2000F07ABB08F056FE03284BD009
+:10D9000008F058FE032847D0A07908B101282DD18E
+:10D91000607928B1012803D0022801D0032825D13D
+:10D92000A07B28B1012803D0022801D003281DD1F3
+:10D93000607BD8B1C00819D162884FF48040824220
+:10D9400002D82188814203D9207901280ED118E01C
+:10D95000207930B1012814D0022805D0032805D140
+:10D9600002E0202A0BD30CE0A0290AD22079042857
+:10D9700005D12088202802D36188884201D9122647
+:10D980000AE0607906F010FA30B1207985F83600A7
+:10D99000204606F073FA064601202E7168711821A0
+:10D9A000E9702870A5E400000C0600204800002063
+:10D9B00010B5FE4C217829B11A21BDE810400F2086
+:10D9C00000F014BB01781F2902D91220207106E053
+:10D9D000002121710278411C104606F0C6FA012090
+:10D9E00060711A21E170207010BD10B5EF4C2178E4
+:10D9F00029B12021BDE810400F2000F0F7BA0178CE
+:10DA00001F2902D91220207106E00021217102781D
+:10DA1000411C104606F098FA012060712021E17047
+:10DA2000207010BD2DE9FC41E04C217829B1BDE802
+:10DA3000FC411B210F2000F0D9BA012767710C218E
+:10DA4000217100780026012804D0002879D0122006
+:10DA5000207190E006F072F9002819D006F0B7F9AD
+:10DA600094F83600A8B1012813D0042811D008F08A
+:10DA7000A1FD00287FD108F097FD18B108F094FDB2
+:10DA8000022878D1002009F099F900B1FFDF267152
+:10DA900071E008F089FD00286DD108F08BFD0028A9
+:10DAA00069D106F0D6F8A0F57F41FF3963D107218F
+:10DAB00001A801F0C7F8BE4905468860280000D1DA
+:10DAC000FFDF032128460DF00BFE284606F081FB00
+:10DAD00034F8540FA5F8440034F80409A5F84600BA
+:10DAE000E278A17828460EF043FA01460022284643
+:10DAF0000EF077FA6078009014F8043B288834F828
+:10DB000054190A4601F07BF980B1042800D0FFDFE8
+:10DB10002888072101F0D7F800B1FFDF0720207126
+:10DB200005F58C712846FFF7FBFB24E0288805F0FB
+:10DB300051FF284609F042F900B1FFDF2671EFE7F7
+:10DB4000FFE708F031FD032803D008F033FD032878
+:10DB500011D108F02CFD0546002009F052F850B90B
+:10DB6000267145B1288805F036FF2888072101F085
+:10DB7000AAF800B1FFDF1B20E0702770BDE8FC8130
+:10DB80002DE9F041894C0646207828B1BDE8F041E6
+:10DB90002D210F2000F02ABA3088072101F081F8EA
+:10DBA00005004FF0010720D095F8F90040B995F82D
+:10DBB0005C00112801D0122802D195F8360150B12D
+:10DBC0000C2020710F20A0702D20E0703088E080A4
+:10DBD000677127706CE51022B11C05F1FA0010F096
+:10DBE00063F985F8F9700020EBE70220E9E770B5EA
+:10DBF0006E4C0546207828B1BDE870402E210F20DC
+:10DC000000F0F4B92888072101F04BF8022178B11F
+:10DC100090F8F9202AB990F85C20112A04D0122A31
+:10DC200002D00C20207104E080F8F9100020F9E700
+:10DC300021710F20A0702E20E0702888E080012044
+:10DC400060712070E4E52DE9FC47584C06462078C9
+:10DC500028B138210F2000F0C9F9BDE8FC87708891
+:10DC60004BF68032122190420AD848B14FF000089A
+:10DC700030886946FEF7A7FB20B10220207110E032
+:10DC800021710EE0019800F15009851C2F887288DF
+:10DC9000394648460DF01AFD2888B842F6D184F876
+:10DCA0000480012060713821E1702070D5E77CB5D7
+:10DCB0003E4C0546207820B145210F2000F096F912
+:10DCC0007CBD28886946FEF77EFB38B102202071B2
+:10DCD000012060714521E17020707CBD01987F2298
+:10DCE000014680F8582080F85920002280F85A20F8
+:10DCF000A87801F8280FE878487028798870227190
+:10DD0000E6E71CB5294C217821B113210F2000F042
+:10DD10006DF91CBD00886946FEF755FB08B102206D
+:10DD200005E0019890F82810012902D00C202071FC
+:10DD300006E0582100222271095C21720088E080EF
+:10DD4000012060711321E1700F21A17020701CBDB2
+:10DD50002DE9F041154C0546207828B1BDE8F04189
+:10DD600043210F2000F042B9A87808B1012803D15F
+:10DD7000A888B0F5FA7F01D91220207128880721E0
+:10DD800000F08FFF0126C8B1002780F8F070A98845
+:10DD9000A0F8F21080F8CC60A978012900D0002109
+:10DDA00080F8F01090F8CD0030B103E00C060020B0
+:10DDB0004800002009F04EF9277101E0022020718F
+:10DDC00066714320E070267072E42DE9F041CF4C7B
+:10DDD0000546207828B1BDE8F04148210F2000F029
+:10DDE00005B92888072100F05CFF012358B3828819
+:10DDF0006D88C688418803EB4207BD4217D342F2C3
+:10DE000010777E43BF107943B6FBF1F1491E89B20A
+:10DE10004FF4FA76B14200D931468D4200D22946FC
+:10DE2000491C521CB1FBF2F15143491E8AB290F8D1
+:10DE3000221101B90284E280002020716371482020
+:10DE4000E070237034E40220F7E770B5AF4C05466C
+:10DE5000207828B1BDE8704041210F2000F0C6B8FD
+:10DE600008F0A2FB08B10C2017E0297889B10A2933
+:10DE70000FD014290DD01E290BD0282909D0322902
+:10DE800007D04B2905D0642903D0FF2901D01220E7
+:10DE900003E0284609F04FF800202071012060714E
+:10DEA0004121E1702070B3E498490A781AB14D21FC
+:10DEB0000F2000F09BB8427862B1827852B1C278EC
+:10DEC00042B1027932B1C2881B2A03D303781BB155
+:10DED000012B01D0122007E0A1F854200278D0F8DD
+:10DEE000010042B1086500200871012048714D22EF
+:10DEF000CA7008707047C864F5E770B5834C054672
+:10DF0000207828B1BDE870404E210F2000F06EB897
+:10DF1000287800F0010008F019F9287800F00100D5
+:10DF200009F061F800202071012060714E21E1703C
+:10DF300020706DE470B5754D0446287828B1BDE8B1
+:10DF400070404B210F2000F051B800F05CF808B190
+:10DF50000C200DE0601C0DF063FA207800F0010049
+:10DF600005F031FF207800F0010006F0FFFE0020F0
+:10DF70002871012068714B21E970287048E470B560
+:10DF8000624C0546207828B1BDE8704049210F2039
+:10DF900000F02CB808F008FB10B908F00BFB08B132
+:10DFA0000C2003E0287805F0F0FF0020207101200C
+:10DFB00060714921E17020702AE410B501784F2981
+:10DFC00007D2534A52F8211019B1801C884701200A
+:10DFD00010BD002010BD18B1022801D001207047EB
+:10DFE00000207047C000703080B27047474A92F8F6
+:10DFF0003130002B06D182F8320082F83310012034
+:10E0000082F83100704710B508F011FA04280DD0DD
+:10E0100008F00DFA052809D008F0C6FA032805D043
+:10E0200008F0C8FA032801D0002010BD012010BD5F
+:10E0300090F8691041B990F8C01029B190F8C0006B
+:10E04000042801D001207047002070470178406803
+:10E0500021B190F8690010B100207047E8E7012075
+:10E0600070470178012909D1406890F8CD10002946
+:10E0700004D0002180F8CD1008F0ECBF704710B537
+:10E08000038843F6FD711A1F8A4223D24288141F67
+:10E090008C421FD29A421DD8C28940F67B43911F01
+:10E0A000994217D2018A8C1F9C4213D28A4211D8FE
+:10E0B000428AB2F5FA7F0DD2828A40F67744A2F105
+:10E0C0000A03A34206D2B2EBD10F03D9C18A028B55
+:10E0D000914201D9302010BD017911B1012910D12F
+:10E0E00007E0417929B1012903D0022901D0032990
+:10E0F00007D1007B38B1012805D0022803D00328BE
+:10E1000001D0122010BD002010BD00000C06002020
+:10E110009CE301003F3070470844C01D424301F1B9
+:10E120003F00104480B2704770B51D460446A818E1
+:10E13000049BC01D00FB03F205F13F00104486B2B2
+:10E14000B14238BFFFDF1E2120460FF024FFA6F1A9
+:10E150001E0080B2A5756080B0F5004F88BFFFDF5C
+:10E16000608805F13B01884238BFFFDF6088401BB3
+:10E17000A0F13B011B2934BF1B203B38208070BD20
+:10E18000408870472DE9F04F0D46C188044600F1E4
+:10E190001E08008921F4004320F4004221F40046C7
+:10E1A00020F400474FF0010A4FF000099A4208D1CD
+:10E1B00000F4004001F4004188421CBF0020BDE88B
+:10E1C000F08FB7420BD9A17DB81B401AC01F854202
+:10E1D0001BDC08EB06000021058041801EE0608802
+:10E1E000A17D801B401AB0F1070B0ED4BBF11B0FB1
+:10E1F000B8BFFFDF5D45D4BF29461FFA8BF1681A0F
+:10E200000204120C18BFBA4204DD84F814900020F6
+:10E21000BDE8F08F08EB06000180428084F814A06E
+:10E22000BDE8F08F2DE9F041044600F11E02C088E0
+:10E2300020F40043207D002808BFBDE8F081D018FD
+:10E240000288438813448B423CBF0020BDE8F08124
+:10E25000002791429CBF0180478013D9891A0D0481
+:10E260002D0C45800ED0E088A61D20F4004085428C
+:10E2700088BFFFDF30884FF4004121EA00002843C7
+:10E28000308009E0A27D0088D31D1044C01D81B2FA
+:10E290006288A01D00F044FB27750120BDE8F081D5
+:10E2A00030B4B0F804C0C488034600F11E052CF455
+:10E2B00000402844A44503D10020188230BC704798
+:10E2C000B3F80CC00488A44509D34088ACEB040C17
+:10E2D000A0EB0C0084B20CEB0500C01E06E0A4EB22
+:10E2E0000C049D7DA4B2AC446044001DB1F800C094
+:10E2F000A44588BF0C80B3F80CC0BCF1000F0CBF64
+:10E300004FF0010C4FF0000C82F800C00988198210
+:10E3100030BC70472DE9F041044600F11E018088B1
+:10E3200020F400404518208A002808BFBDE8F0818D
+:10E33000A189084480B2A08129886A881144814259
+:10E3400038BFFFDF28886D88A289411900279142D4
+:10E3500019D175B1A088261D20F40040A84238BF0D
+:10E36000FFDF30884FF4004121EA0000284330806D
+:10E3700008E0A27D1044C01D81B2D31D6288201D1B
+:10E3800000F0CEFAA78127820120BDE8F0812DE9B7
+:10E39000F0474189B0F804800027044600F11E0AC6
+:10E3A000414518BF4FF400493AD000BF21F4004066
+:10E3B000504446886EB1608904F10A0520F400409B
+:10E3C000B04238BFFFDF288829EA000030432880A8
+:10E3D00021E0A37D008803F1070C18446389C01D68
+:10E3E00023F400456288284480B204F10A01904277
+:10E3F0000BD2121A92B20CF11B0C62452CBF03F423
+:10E40000004229EA030004D204E0801A80B229EA1B
+:10E41000030210430880781C618987B24145C5D149
+:10E420003846BDE8F0872DE9F047B0F808800B4684
+:10E43000044600F11E01B0F80A90808828F4004CD0
+:10E4400001EB0C05804504BF0020BDE8F087002AE1
+:10E450001CBF281D106023B1A27D291D18460FF096
+:10E4600023FD2F886D888DB1E81987B2208904F1CA
+:10E47000080620F40040A84238BFFFDF30884FF480
+:10E48000004121EA00002843308009E0A07D628835
+:10E49000C119C91DC31D89B204F1080000F040FA7A
+:10E4A000C84504BF208960813846BDE8F08781886F
+:10E4B000C08881420CBF01200020704781880089FC
+:10E4C00088420CBF01200020704730B48488C28885
+:10E4D00000F11E0324F4004C22F4004163449442F2
+:10E4E0001BD08289048A15191C885A88A3189D425A
+:10E4F00016D312B18A4210D212E0837D0CF1070CC0
+:10E500001A196244408892B2801A80B2223398422B
+:10E5100001D211B104E08A4202D130BC0020704720
+:10E5200030BC012070472DE9F007B0F806C004891F
+:10E5300000F11E0702462CF400457E1924F4004920
+:10E540002CF4004A002024F400434FF00108D14588
+:10E550000AD104F400440CF4004C644504D0508209
+:10E56000BDE8F00700207047AB4207D992F816C00B
+:10E570005B1BA3EB0C03DC1F002308E0B2F802C016
+:10E58000947DACEB050CACEB040CACF10704002C57
+:10E59000E5DBB2F80EC0BCF1000F0DD0B6F800C03C
+:10E5A00075884DB15B1B50758B42D8DBD0893844E0
+:10E5B000A0EB0C00C01E09E0A4EB0C0450758C42CB
+:10E5C00008DB907DD38918443044001D5182BDE89A
+:10E5D000F00770478B42A8BF82F81580E6DABEE7E5
+:10E5E0002DE9F05F044600F11E0AC088934620F42E
+:10E5F00000400AEB0005608A894608B1484502D20E
+:10E600000020BDE8F09FE089002804BF4FF000081B
+:10E61000464607D0B5F800806E8808EB06018842B0
+:10E6200018BFFFDF607D4FF0000750EA060101D000
+:10E6300048B332E0E08938B1A17D01444819B4F80B
+:10E6400017108180617E8171E18908EB09004944DE
+:10E65000E18128806F80BBF1000F0BD0A07D29885D
+:10E66000C31D0144C91D89B26288A01D00F058F97C
+:10E67000E78137E0A07DE189084428448188A4F837
+:10E68000171080792DE0E089B4F817105044A0EB02
+:10E69000080020F8031D617E817006EB090086B238
+:10E6A000E089BBF1000F4844E081A5F800806E804E
+:10E6B0000ED0E088A51D20F40040B04238BFFFDF37
+:10E6C00028884FF4004121EA000030432880CFE73A
+:10E6D000E0895044A0EB080030F8031DA4F817109F
+:10E6E00080786076678227750120BDE8F09F01463B
+:10E6F0001E308A88CB8822F4004C60449A4203D0B2
+:10E700008989002908BF70470020704700F11E0367
+:10E71000807D01F1040C604410600888002804BF6B
+:10E72000D81E106008884988084480B270472DE9D7
+:10E73000F04115460A4600F11E061C46807D131D59
+:10E74000034410885788069900281CBFC01C80B25B
+:10E7500026D088429CBF081A80B213D9401AA04222
+:10E76000A8BF20461FFA80F85818424629460FF0E5
+:10E770006FFB002818BFBDE8F0814544A4EB0800FA
+:10E7800084B2002001198F423CBF4FF0FF30BDE83A
+:10E79000F081304422462946BDE8F0410FF058BBD5
+:10E7A000FA1C97B2F61ED4E72DE9F04100F11E07DE
+:10E7B0001D46807D0B1D0344164608880024B1F8D1
+:10E7C0000280069A00281CBFC01C80B21FD0904255
+:10E7D0009CBF101A80B20DD9801AA842A8BF284643
+:10E7E00084B29918224630460FF05EFB281B85B292
+:10E7F000264400204119414506D839182A4630469A
+:10E800000FF052FB601984B22046BDE8F08108F198
+:10E8100003011FFA81F8FF1ED9E72DE9F0411646E2
+:10E820000A4600F11E071D46807D131D0344108813
+:10E830000024B2F80280069900281CBFC01C80B2D8
+:10E840001FD088429CBF081A80B20DD9401AA84236
+:10E85000A8BF284684B25818224631460FF024FB40
+:10E86000281B85B2264400204119414506D838446A
+:10E870002A4631460FF018FB601984B22046BDE8E5
+:10E88000F08108F103021FFA82F8FF1ED9E770B584
+:10E89000044600F11E01C288808820F40043194418
+:10E8A000904205D0A289002A04BF228A002A01D002
+:10E8B000002070BDB1F800C04D8885B1261D20F440
+:10E8C0000040A84238BFFFDF30884FF4004121EA02
+:10E8D00000002843308000202082012070BDA07DF0
+:10E8E0000CF10701C31D084481B26288201D00F0AD
+:10E8F00017F8F0E70021C181417541820175704729
+:10E9000003881380C289002A04BF00207047C28890
+:10E9100000F11E0322F400421A440A60C0897047C5
+:10E9200010B4B0F800C02CF40044214489B24FF474
+:10E93000004491420AD2521A92B21B339A422CBF1F
+:10E940000CF4004224EA0C0104D204E0891A89B2D2
+:10E9500024EA0C021143018010BC70472DE9F041FC
+:10E9600088464FF6FC7102F103021E46040002EADB
+:10E97000010509D00027E01C20F00300A04200D0D0
+:10E98000FFDF201D01210CE00127F4E702462844A7
+:10E990002FB9B14201D2034600E000231360491CA5
+:10E9A000C9B2B142F2D9011BC8F80010002F04D13E
+:10E9B0000EB1201D00E000202060BDE8F08102467D
+:10E9C00000201168002902D00846096811607047CC
+:10E9D00002680A60016070474FF6FC73C91C194059
+:10E9E000101A001F90FBF1F0C0B270474FF6FC7395
+:10E9F000C91C1940001D01FB02007047F8B5D24D3B
+:10EA000004460E46A878A04200D8FFDF05EB860733
+:10EA1000B86A50F8240000B1FFDFB868FFF7CFFFF5
+:10EA200005000DD0B86A062E40F824500AD0082EF2
+:10EA300000D3FFDFC548294650F8262020469047DE
+:10EA40002846F8BDC048C24B7A30A0F12E02009093
+:10EA50002946204609F0A0FCF2E72DE9F84F804650
+:10EA6000DDF828901E4603EB090093468A46C4B29F
+:10EA70005FEA080707D00025FF2800D9FFDFBAF1B9
+:10EA8000000F03D101E00125F6E7FFDF08F10300E5
+:10EA900020F00301414500D0FFDFCB4500D9FFDF67
+:10EAA00065B9A94A00204C324FF6FF7110705180B1
+:10EAB000A74A1070A44A7A3210705180A24880F898
+:10EAC00000B046708470C4700471447180F8069080
+:10EAD000DFF878B2C67100260BF1400B8146FF1CAF
+:10EAE00027F003000746002D02D109EB860188605C
+:10EAF0003BF8162019F8063001D04FF000006946A7
+:10EB0000FFF72CFF0098761CF6B20744082EE6D3D8
+:10EB1000FF1C27F003002346064675B100200222A1
+:10EB20006946FFF71BFF00983118002003464E4648
+:10EB3000C91C21F003021DB110E0C9F84800EEE73E
+:10EB400006EB80070021BA6206E000BFD7F828C0B4
+:10EB50004CF82130491CC9B2A142F7D3401CC0B2C5
+:10EB600002EB84010828E3D3A1EB0800AAF8000017
+:10EB70000020BDE8F88F10B5044603F005FF08B18A
+:10EB8000102010BD2078704A618802EB80009278D6
+:10EB90000EE0836A53F8213043B14A1C6280A180A1
+:10EBA000806A50F82100A060002010BD491C89B285
+:10EBB0008A42EED86180052010BD70B505460C462E
+:10EBC000084603F0E1FE08B1102070BD082D01D306
+:10EBD000072070BD25700020608070BD0EB56946AD
+:10EBE000FFF7EBFF00B1FFDF6846FFF7C4FF08B196
+:10EBF00000200EBD01200EBD10B50446082800D32C
+:10EC0000FFDF5148005D10BD3EB505460024694652
+:10EC1000FFF7D3FF18B1FFDF01E0641CE4B26846E0
+:10EC2000FFF7A9FF0028F8D02846FFF7E5FF001BF3
+:10EC3000C0B23EBD44498978814201D9C0B2704713
+:10EC4000FF2070472DE9F0410C460546062901D00A
+:10EC5000072C10D13C4FB86CFFF7B1FE02004FF605
+:10EC6000FF7604D00221B86CFFF7B6FE00E0304614
+:10EC70002880B04202D10020BDE8F0812146FFF794
+:10EC8000BDFE040002D1288800F050F82046F3E7CA
+:10EC9000A0F57F42FF3A01D0082901D30020704738
+:10ECA000ACE6A0F57F42FF3A0BD0082909D2264AEC
+:10ECB0009378834205D902EB8101896A51F82000DB
+:10ECC0007047002070472DE9F04104460D46A4F539
+:10ECD0007F4143F20200FF39CED0082D01D3072037
+:10ECE000CAE719494FF000088A78A242C4D901EB5B
+:10ECF00085072146BA6A52F82460002EBCD0134A18
+:10ED000008462032314652F825209047B96A062D30
+:10ED100041F8248001D0072D02D1204600F006F8EA
+:10ED20003146B868FFF754FE0020A5E710B5064C41
+:10ED3000C2B20221A06CFFF759FE0146A06CBDE8EB
+:10ED40001040FFF745BE000068060020D8E401002F
+:10ED50005400002001469F48002200680260037AA8
+:10ED600000EB830040F80C2F8180114600F022B99F
+:10ED70002DE9F05F9846DDF830B0DDF828A01546A3
+:10ED8000894604004FF0000623D00027E01C20F045
+:10ED90000300A04200D0FFDF65B30120FFF7BAF9FE
+:10EDA00000FB05620AEBCB0016180120FFF7B2F951
+:10EDB00000FB05620B9805EB450108EBC000104411
+:10EDC00000EB4100143000EB850000EB850617B125
+:10EDD00010E00127DAE77F48A6EB8507A900046069
+:10EDE000257204F10C000C3F60600FF0F6F8B8B229
+:10EDF000FFF7B0FF0020C9F80060BDE8F09F2DE9E3
+:10EE0000FF4F744C814681B020689A468B4600B90A
+:10EE1000FFDF2068027A4A4503D9426852F8291078
+:10EE200021B143F2020005B0BDE8F08F006800B9DF
+:10EE3000FFDF01210E9A0398FFF76EF9C61C4FF60B
+:10EE4000FC752E40584601215246FFF765F9C01C5B
+:10EE500000EA050808EB0600001D85B25D480027A2
+:10EE60000068046801E027460446206838B1A1889C
+:10EE7000A942F8D13946204600F0A4F813E005F184
+:10EE80000800A18880B2814229D33946204600F08B
+:10EE900099F8A0880022411B6019026081803946E0
+:10EEA00000F088F8A580A08860802680251D0E9F30
+:10EEB0000123039A314628460097FFF735F9208849
+:10EEC000414628445A460123CDF800A0FFF72CF90B
+:10EED000404800684168002041F82940A3E7042029
+:10EEE000A1E770B53B4C0546206800B9FFDF2068FC
+:10EEF000017AA94210D9426852F8250060B14188D0
+:10EF0000002342F8253003608180194600F052F852
+:10EF1000216800200A7A08E043F2020070BD4B68C5
+:10EF200053F820306BB9401CC0B28242F7D80020A1
+:10EF300002E08A88104480B209680029F9D1FFF7FD
+:10EF400009FF002070BD70B5224D286800280AD046
+:10EF5000002404E02046FFF7C4FF641CE4B22868E4
+:10EF6000007AA042F6D870BD70B51A4E054600244E
+:10EF7000306800B9FFDF3068017AA94204D94068DF
+:10EF800050F8250000B1041D204670BD70B5114E2B
+:10EF900005460024306800B9FFDF3068017AA942D5
+:10EFA00006D9406850F8251011B131F8040B441807
+:10EFB000204670BD19B10A680260086070470549B3
+:10EFC0000968F8E7006809B10860704701490968F5
+:10EFD000FAE700005C00002070B5044600780E4699
+:10EFE00001281AD0072802D00C281AD115E0A068F1
+:10EFF000216905780B2D0CD0052003F05EFC052D52
+:10F000000FD0782300220520D4F8101003F0B8FBAD
+:10F0100007E0782300220620F8E70520216903F0A5
+:10F020004CFC31462046BDE8704001F0A7B910B550
+:10F0300000F13902C3799478411D64F00304234040
+:10F04000C371DB070DD04B79547923404B710B7999
+:10F05000127913400B718278C9788A4200D9817085
+:10F0600010BD00224A710A71F5E74178012900D0EC
+:10F070000C21017070472DE9F74F86B000208C6994
+:10F080000D468DF8040009780127FA4816464FF01E
+:10F09000070A4FF011094FF00A0B2A2978D2DFE84E
+:10F0A00011F02A00110352036903A803B303CC0330
+:10F0B000FA030F043B04620481049A04D504E604B5
+:10F0C000050510053005540577059C05C605E005C6
+:10F0D000EE050F062706300663068506D6060D07E1
+:10F0E0001B074B076A0779078A07C407FB0727082E
+:10F0F000E407E807ED0714B120781D2829D0D5F8DA
+:10F1000008805FEA080043D001208DF80400686A97
+:10F11000059003208DF808008DF809B0286A039047
+:10F12000A8880028EFD098F8001091B10F2910D2CC
+:10F130007ED2DFE801F07D144CDCFDFCFBFAF9F82F
+:10F14000F7089FF6F500022822D124B120780C2878
+:10F1500001D0002770E302208DF80400ACE1062006
+:10F16000696A03F0AAFBA8880728EDD1204601F0C0
+:10F1700000F9022809D0204601F0FBF8032808D93D
+:10F18000204601F0F6F8072803D20120207005E0A0
+:10F1900011E2002CB7D020780128D5D198F80400CE
+:10F1A000C11F0A2903D300BF85F81CB089E2A070F3
+:10F1B000D8F80010A163B8F80410A18798F80600E9
+:10F1C00084F83E00012028700320207046E00728C4
+:10F1D000BAD1002C97D020780D28B5D198F803101B
+:10F1E00094F83B20C1F3C000C2F3C002104201D02A
+:10F1F0000E2000E00F20890707D198F80510014282
+:10F20000D2D198F806100142CED194F83D2098F85A
+:10F21000051020EA02021142C6D194F83E2098F867
+:10F22000061090430142BFD198F80400C11F00E0CE
+:10F2300045E20A29B8D2617F814201D90620C2E3A2
+:10F24000D8F800106160B8F80410218198F8060021
+:10F25000A072012028700E20207003208DF8040079
+:10F26000686A059004F139000290601D0390173020
+:10F27000049067E2412890D1204601F07AF80428F2
+:10F2800002D1E078C00704D1204601F072F80F28BF
+:10F290009ED1A88CEF6880B24FF0400AD4F8248049
+:10F2A000FFF762FE39460827424653460097FFF7AC
+:10F2B0007BFA0E208DF80400686A0590606A02905F
+:10F2C000002101A8FFF788FE2078042806D0A07F3F
+:10F2D00038B1012805D0032806D0AEE30520207000
+:10F2E0000BE284F8009034E71220207066E01128C9
+:10F2F000C1D1204601F03DF8042802D1E078C007D2
+:10F3000019D0204601F035F8062805D1E078C0076D
+:10F3100011D1A07F02280ED0204601F02AF808E083
+:10F32000AFE07DE09AE16EE14EE106E1E5E0CBE0A1
+:10F330001CE011289FD1102208F1010104F14800BE
+:10F340000EF0B2FD607801280DD012202070E07818
+:10F35000C00703D0A07F88B301282FD085F800B064
+:10F360008DF804B0F0E384F800A027E011288FD1D5
+:10F37000204600F0FEFF082804D0204600F0F9FFE8
+:10F38000132885D12869D8B16869C8B104F178001B
+:10F39000102208F1010107460EF086FD20780828AA
+:10F3A00012D014202070E078C0070FD0A07F022870
+:10F3B00018D06178022912D00328CFD10420FDE3B0
+:10F3C00000208DF80400F6E00920EBE70B20287000
+:10F3D000296901204870206CC1E9010792E208B157
+:10F3E000012870D10B202870296981F801A0606A7A
+:10F3F0004860206AC1E9020778E2206CE278006880
+:10F40000C2F34402521ED04000F0010040F08000E0
+:10F4100000E000200874E06A48617CE20746F9E3F6
+:10F420001128D0D1204600F0A4FF0A2802D1E078AC
+:10F43000C00704D1204600F09CFF1528C3D110223C
+:10F4400008F1010104F148000EF02EFD20780A2891
+:10F4500012D01620207012202870296909204870C7
+:10F4600004F158004860203088601038C860206C73
+:10F470000861ACE314E601000B202070E4E2287080
+:10F48000D9E102289FD1204600F073FF042804D35D
+:10F49000204600F06EFF082809D3204600F069FFDF
+:10F4A0000E2890D3204600F064FF12288BD2A07F54
+:10F4B000022888D18DF80490686A059098F80100B8
+:10F4C0008DF80800FBE36CE20228AAD1204600F088
+:10F4D00050FF00286FD0204600F04BFF0128F9D0E4
+:10F4E000204600F046FF0C28F4D005208DF80800D7
+:10F4F00098F801008DF8090065E71128FCD1002C6F
+:10F50000FAD020781728F7D16178E06A022912D062
+:10F510005FF0000101EB4101182606EBC10110224A
+:10F52000405808F101010EF0BFFC0520696A00F0A7
+:10F5300013FF26700DE60121ECE70B28DCD1002C2F
+:10F54000DAD020781828D7D16178E06A02292CD047
+:10F550005FF0000101EB4101102202EBC1014158B3
+:10F56000B8F8010008806078E16A022820D0002005
+:10F5700000EB4002142000EBC2000958404650F84E
+:10F58000032F0A60406848600520696A00F0E4FEC5
+:10F590006078022810D04FF000002044407A20F01C
+:10F5A00001000CD14FF001010BE04FF00101D1E758
+:10F5B0004FF00100DCE77FE24FF00100EDE74FF094
+:10F5C00000012144487279E3112895D1002C93D091
+:10F5D0002078192890D16078E16A022811D00020A3
+:10F5E00000EB40021C2000EBC2001022085808F17A
+:10F5F00001010EF059FC0520696A00F0ADFE1A20E9
+:10F60000F5E00120ECE7082898D1002C98D020786C
+:10F610001A2893D1E06A98F80120017862F3470133
+:10F620000170E16AD8F8022041F8012FB8F806000D
+:10F6300088800520696A00F08FFE6078022807D074
+:10F640004FF000002044407A20F002012BD033E03C
+:10F650004FF00100F6E7204441722FE31128B4D1A6
+:10F66000002CB4D020781B28AFD16178E06A022941
+:10F670001CD0002101EB4101202202EBC10110222C
+:10F68000405808F101010EF00FFC0520696A00F0F6
+:10F6900063FE607802280CD04FF000002044407ACE
+:10F6A00020F0040108D14FF00100D4E74FF0010130
+:10F6B000E0E74FF00100F1E74FF00000CBE785F8FD
+:10F6C0001CA0FAE33078012884D11C2204F11C002C
+:10F6D00071680EF02EFCE079C10894F83B0001EA55
+:10F6E000D001E07861F30000E070217FF1BB217868
+:10F6F00003290AD0C0073FF4F9AD032028708DF824
+:10F7000004B0686A059041209EE3607FA17888423A
+:10F710003FF694AD02272771E179204621F0E00100
+:10F72000E171617A21F0F0016172A17A21F0F001BA
+:10F73000A172FFF77CFC2F708DF804B0686A059009
+:10F740008DF808A0F2E33078112888D18DF804A054
+:10F75000696A0591B1680391ADF808A0084661682F
+:10F76000016021898180A17A817100E06AE0042032
+:10F770002070A4E230781128A6D18DF804A0686A20
+:10F780000590301D02AB07C883E807004120ADF8A3
+:10F79000080008460C210170A88CD6F80C8080B2B5
+:10F7A0004027D4F82090FFF7F1FB41464FF00808BE
+:10F7B0004A463B46CDF80080FFF72FF8002101A80C
+:10F7C000FFF70AFCE07820F03E00801CE070207813
+:10F7D000052801D00F200AE0A07F00283FF4C3AD28
+:10F7E0000128FBD003287DD184F80080B1E420708B
+:10F7F000AFE430780328A8D170680168A16640683A
+:10F80000E0660520287035E2317803299DD17168C2
+:10F810000A68226749686167216C51B9A17F19B1F3
+:10F82000012901D0062029E185F800A02064606448
+:10F8300001E085F800A00327F3E33178022984D1A1
+:10F84000317909B1297737E1A17F022910D0032945
+:10F85000EFD16178012910D0A17994F83A200129DB
+:10F860000FD02064E178C90713D0012A0ED010E030
+:10F87000B0680028E7D020640BE0A27994F83A1031
+:10F88000EDE7B1680029DED02164EBE7F0680028DD
+:10F89000D9D06064CDE78DF804B0696A0591E1784C
+:10F8A0005846C90709D06178022903D1A17F29B13F
+:10F8B000012903D0A17F032900D00820287012E27B
+:10F8C00030781128BFD1B068286209202870E0780C
+:10F8D0002969C0070FD081F801A0206A4860606ADA
+:10F8E000886000E0ABE004F16800C860A07F0228F7
+:10F8F0007FF48FAD81E501204870206C486004F1F1
+:10F900006800886004F13800C860201D0861206B21
+:10F910004861606B88611FE2E1783078C90701D0E7
+:10F92000062100E00A2188428DD12078072817D0CF
+:10F9300084F800908DF804A0686A0590286A039006
+:10F94000ADF80890032100F8011B102271680EF039
+:10F95000ABFA002101A8FFF73FFB00202862C2E4B8
+:10F9600008202070E6E730781128ABD18DF804A08C
+:10F97000686A0590B0680390ADF80890042100F81B
+:10F98000011B102204F168010EF08EFA002101A87B
+:10F99000FFF722FB2078092801D0132027E784F8FD
+:10F9A00000B016E0E1783078C90701D0062100E008
+:10F9B0000A21884286D1102204F1480071680EF0B5
+:10F9C00047FA10B104202877A2E3207809283FF4F1
+:10F9D000C5AC0C2053E5E078C10735D0A17F0129E3
+:10F9E00002D002291BD02CE00D202870296981F853
+:10F9F00001B06078012809D0206A4860606A886098
+:10FA000004F16800C8601030086104E5606A48606D
+:10FA1000206A886004F17800C8601038F4E7C0F309
+:10FA2000440114290DD24FF0006101EBB0104FEAF0
+:10FA3000B060E0706078012801D0102055E4062005
+:10FA4000D5E6607801288AD00E2018E5307809289C
+:10FA50008BD185F800B010208DF80400686A0590FD
+:10FA600070680290002101A8FFF7B6FAE9E7E07894
+:10FA7000C00706D0A07F01281FD10F2028700420C6
+:10FA8000F8E015202870296902204870206C486031
+:10FA90006078012805D004F1780088601038C860CB
+:10FAA0005AE104F1680088601030F8E730780228E5
+:10FAB000CED1307908B1287728E3102028700F20A4
+:10FAC000D8E030781328F7D185F80090296908200C
+:10FAD000487070684860607801280DD004F16800B3
+:10FAE00088601030C860206B0861606B486104F169
+:10FAF00058008861A06A21E004F17800886010381D
+:10FB0000F0E730780728D7D1607801281AD1A0789B
+:10FB1000A16A0A18C0F1100110460EF03CFA12203A
+:10FB2000287029690920487004F158004860203085
+:10FB300088601038C860206C086141E0C861E06AE4
+:10FB4000086209E11320C9E0CBE030780828B3D17E
+:10FB5000102204F1480071680EF07AF908B10B2008
+:10FB600031E720780B28EDD02046FFF760FAA07827
+:10FB7000A16A0A18C0F1100110460EF00CFA162006
+:10FB8000287008208DF80400686A0590002049E07C
+:10FB90003078112890D1B068286214202870296923
+:10FBA0000920487004F15800486010308860103017
+:10FBB000C860606C08616078012800E09EE006D0B3
+:10FBC00004F139004861206B8861606BB6E7601D05
+:10FBD0004861606B8861206BB0E73078082892D16B
+:10FBE0008DF804A0686A0590286A0390ADF8089023
+:10FBF0000D2100F8011B102271680EF055F900214B
+:10FC000001A8FFF7E9F9002028626178012902D0F4
+:10FC10001520ECE569E21621297008218DF8041001
+:10FC2000696A05910290A0788DF80C007EE1307829
+:10FC30000B288CD1162028706078022802D120462B
+:10FC4000FFF7F5F9A07871680A18C0F110011046A5
+:10FC50000EF0A1F908208DF80400686A059070681C
+:10FC6000E0E730780F2895D1E079C0077BD01720E6
+:10FC7000287009208DF80400686A059056E13078F4
+:10FC8000102887D11422311D04F11C000EF051F907
+:10FC9000E16A208DA1F80900E16AA078C871E179D4
+:10FCA000E26A01F003011172E16A627A0A73E16AA1
+:10FCB000A07A81F824006078012876D0B3E13EE292
+:10FCC0006078022801D0012000E000202044407A22
+:10FCD000C0070BD0E078C00708D1192028708DF834
+:10FCE00004B0686A05908DF808901FE11E2071E647
+:10FCF0003078112874D1B06828621A202870052045
+:10FD0000B8E7307803286BD16078E26A022801D026
+:10FD1000012000E0002000EB4001142000EBC101B5
+:10FD20005158726813680B6052684A601B21297031
+:10FD3000D5E9041205234B70636A4B606778E36A68
+:10FD4000022F01D0012700E0002707EB470700EB57
+:10FD5000C7001858C1E90202686A4862069800F0B4
+:10FD600024FBFFF75BBB87E130780E2838D1607841
+:10FD7000E26A022801D0012000E0002000EB4000F0
+:10FD8000102101EBC00002231058093271680CF0F9
+:10FD90006DFC1C202870296904204870206A486086
+:10FDA000E06A09308860F84879E65AE130780D2831
+:10FDB00016D16178E06A022901D0012100E000211A
+:10FDC00001EB4101182707EBC101A2784058716887
+:10FDD0000EF06AF86178E06A022902D0012101E0A0
+:10FDE000A9E0002101EB410107EBC1014058A178D6
+:10FDF0000844C1F110010EF0CEF88DF804A0686A35
+:10FE00000590286A0390ADF8089006210170627889
+:10FE1000E16A022A01D0012200E0002202EB420244
+:10FE200007EBC202401C895810220EF03DF8002159
+:10FE300001A8FFF7D1F8002028621D2028708DF856
+:10FE400004B0686A05900B208DF808006EE03078E9
+:10FE5000112870D18DF804A0686A0590B0680390ED
+:10FE60000B20ADF80800039880F800A06278E16AE2
+:10FE7000022A01D0012200E0002202EB42021023FC
+:10FE800003EBC20289580988A0F801106178E26A80
+:10FE9000022901D0012100E0002101EB41031421DE
+:10FEA00001EBC30151580A6840F8032F49684160CB
+:10FEB000002101A8FFF790F818E729E160780228EF
+:10FEC00001D0012000E000202044407A800701D5C5
+:10FED0001F2003E721207DE5307811282BD18DF8F4
+:10FEE00004A0686A0590B0680390ADF808900827F0
+:10FEF00007706178E26A022901D0012100E0002147
+:10FF000001EB41031C2101EBC301401C515810229D
+:10FF10000DF0CAFF002101A8FFF75EF8202028702D
+:10FF20008DF804B0686A05908DF80870314601A814
+:10FF3000FFF752F815E775E03078112872D18DF887
+:10FF400004A0686A0590B06803900820ADF8080026
+:10FF5000039809210170E169097849084170E16954
+:10FF600051F8012FC0F802208988C180002101A822
+:10FF7000FFF732F8AEE76078022801D0012100E0F7
+:10FF800000212144497A490701D52220A6E601280B
+:10FF900049D068E03078112844D1B0682862232025
+:10FFA0002870296904204870206A4860E06A093096
+:10FFB0008860764873E530780D2833D16178E06A3F
+:10FFC000022901D0012100E0002101EB410120279D
+:10FFD00007EBC1011022405871680DF065FF8DF8E4
+:10FFE00004A0686A0590286A0390ADF8089080F82C
+:10FFF00000B06278E16A022A01D0012200E000220A
+:020000040001F9
+:1000000002EB420207EBC202401C895810220DF09D
+:100010004BFF002101A8FEF7DFFF00202862607877
+:10002000B5E791E037E02420D4E4607802280BD0D3
+:1000300000202044407AC10702D0E178C90705D0EA
+:10004000810705D51920A9E40120F2E71720A5E4CE
+:10005000400701D51B20A1E41C20207060780128F6
+:1000600001D01820B6E42720B4E4282028700B2003
+:1000700000E63078122849D12920ABE42078012805
+:1000800044D00C2842D02046FEF7EFFF0C208DF81C
+:100090000400686A059039E030784FF0260811288E
+:1000A00005D012203070032785F800804CE08DF8D1
+:1000B00004A0686A0590B06803900220ADF80800BB
+:1000C000039805210170297F4170002101A8FEF7E6
+:1000D00083FF0B208DF80400686A0590314601A863
+:1000E000FEF77AFF074685F80080012F0ED02BE03F
+:1000F00001208DF80400686A059004208DF808003E
+:10010000287F8DF809000020287712E0287F80B131
+:100110001D202070252028708DF804B0686A059095
+:1001200002208DF80800314601A8FEF755FF07466A
+:100130000AE00CB1FE2020709DF8040020B10021DF
+:1001400001A8FEF749FF0AE409B03846BDE8F08F80
+:100150002DE9F04F0C4601274E69097885B090468D
+:10016000BA464FF00209072021B101294ED00229D9
+:100170001FD1C8E0217901290AD0022915D003290D
+:1001800010D0042915D11BE00CE6010028E5010080
+:10019000707801280CD10620616A02F067FB002804
+:1001A00007D11AE01D20307017E07178022901D0C4
+:1001B000052796E031780C2927D18DF804000EE050
+:1001C0003078011F042902D30E3803281DD2B07FD6
+:1001D00002281AD12089022817D38DF8049084F8B8
+:1001E00000A020899DF80410884203D20A208DF8CF
+:1001F00000003FE01121083488F8001094E80E0058
+:10020000C8E901120327C8F80C306AE098F800101A
+:10021000112966D18DF80000616A0491D8F8085060
+:10022000029521794FF00B0B012906D0022929D024
+:10023000032911D0042954D15AE0ADF8049085F86F
+:1002400000B0207E4F4600F01F0068700021684615
+:10025000FEF7C2FE377043E0ADF804900520287029
+:10026000207E68704E4600216846FEF7B5FE267077
+:100270008DF800B0606A049041466846FEF7ACFE17
+:1002800007462EE0ADF8040085F800A0207F6870D6
+:10029000607F00F00100A870A07F00F01F00E870F0
+:1002A000E17F2971C0071FD094F8200000F00F00F3
+:1002B000687194F8210000F00F00A87100216846D1
+:1002C000FEF78AFE2868B063A888B087A87986F808
+:1002D0003E00A069407870772879B0700D203070AA
+:1002E0000027384605B031E70020A8716871E5E7BE
+:1002F000ADF804900E202870207E687000216846BA
+:10030000FEF76AFEECE7FE2030708DF800A0606A10
+:10031000049004208DF80400207E8DF80500EDE7A0
+:1003200000B50023012285B005280FD006280BD187
+:1003300002208DF8002004918DF804008DF805301E
+:1003400000216846FEF748FE05B000BD8DF800208C
+:1003500004918DF80420F1E770B50C46054602F0D3
+:10036000ACFA21462846BDE870407823002202F00E
+:1003700007BA08B1007870470C20704770B50C00C0
+:1003800005784FF000010CD021702146F3F727FAD1
+:1003900074482178405D884201D1032070BD02205D
+:1003A00070BDF3F71CFA002070BD027B032A05D054
+:1003B00000220A704B780B2B02D003E00420704718
+:1003C0000A770A62027B9300521C0273C150032019
+:1003D0007047F0B585B00F4605460124287B05EB34
+:1003E000800050F8046C7078411E0C290AD25D49D7
+:1003F0003A46123101EB8000314650F8043C284661
+:10040000984704460CB1012C11D1287B401E10F0F6
+:10041000FF00287301D00324E0E70D208DF80000D1
+:10042000706A0490002101966846FFF7A7FF032C2D
+:10043000D4D005B02046F0BD70B515460A46044636
+:1004400029461046FFF7C5FF064674B12078FE28FE
+:100450000BD1207E30B100202870294604F10C0019
+:10046000FFF7B7FF2046FEF700FE304670BD70472D
+:1004700070B50E46044688210DF0AFFD0225012E11
+:1004800003D0022E04D0052070BD0120607000E072
+:1004900065702046FEF7E9FDA577002070BD28B104
+:1004A000027E1AB10A4600F10C01C5E7012070472F
+:1004B00030B5044687B00D46062002F0FEF9294605
+:1004C000052002F0FAF92078FE2806D000208DF8E9
+:1004D000000069462046FFF7E2FF07B030BD7FB558
+:1004E0000E4600218DF80C1041780B2903D00C2901
+:1004F00003D0002405E0846900E044690CB1217E4A
+:1005000091B16D4601462846FFF74FFF032809D1F8
+:10051000324629462046FFF78FFF9DF80C10002930
+:1005200000D0042004B070BD04F10C05EAE710B55A
+:1005300090B00C4607900B480421801E08900A4892
+:100540008DF8191009900F92694606A8FFF7C7FFAA
+:10055000002805D11022204601990DF0A5FC0020AD
+:1005600010B010BD2EE501000CE6010070B50D467F
+:10057000040011D085B1210128460DF00CFD102298
+:100580004E4928460DF090FC4C4801210838018066
+:1005900044804560002070BD012070BD70B5474E9D
+:1005A00000240546083E10E07068AA7B00EB0410AA
+:1005B000817B914208D1C17BEA7B914204D10C221C
+:1005C00029460DF045FC30B1641C30888442EBDBD9
+:1005D0004FF0FF3070BD204670BD70B50D4606006F
+:1005E00006D02DB1FFF7DAFF002803DB401C14E032
+:1005F000102070BD314C083C20886288411C91421B
+:1006000001D9042070BD6168102201EB0010314651
+:100610000DF04AFC2088401C20802870002070BD0E
+:1006200070B514460D0018D0BCB10021A17002288D
+:1006300002D0102811D105E0288870B10121A170E5
+:10064000108008E02846FFF7A9FF002805DB401CC2
+:10065000A070A8892080002070BD012070BD70B5F9
+:10066000054614460E000BD000203070A8780128F3
+:1006700008D005D91149A1F108010A8890420AD988
+:10068000012070BD24B1287820702888000A50709D
+:10069000022008700FE064B14968102201EB0011DC
+:1006A000204610390DF000FC287820732888000AB5
+:1006B000607310203070002070BD000068000020C2
+:1006C0002DE9F041FE4C207EE17D884208BFBDE867
+:1006D000F0810126FB4D0027E07D215C01EB8102CA
+:1006E00005EB8200037C052B18D0037C062B23D05E
+:1006F000037C072B34D0437C002B08BFFFDF29D0BD
+:100700004774E07D16280EBF0020E07D401CE07598
+:10071000481CC0B255F8222007211AE00674E07D7B
+:1007200016281ABFE07D401C0020E075481CC0B2AE
+:1007300055F8222002210CE00674E07D16281ABF2D
+:10074000E07D401C0020E075481C55F82220C0B216
+:1007500003219047207EE17D8842BDD1BDE8F08134
+:100760000674E07D16281ABFE07D401C0020E0756D
+:10077000481CC0B255F822200821EAE770B5D24DD6
+:100780000C2085F82900A5F53B70002480F8CD41A8
+:1007900080F8CC4100F5F4700476C47505F12C00A6
+:1007A0000CF0C0FDA5F58E70047585F82B40601E19
+:1007B0002C60A86085F8254085F8224085F8234004
+:1007C00085F8244085F82140C048A5F1E80104706F
+:1007D0004470002000EB800201EB82021474401C84
+:1007E000C0B20B28F6D30120F8F708FF0020F8F775
+:1007F00005FF012085F82600F9F72EFBB448F9F72C
+:100800003AFBB44C2070B448F9F735FB6070BDE892
+:100810007040F8F787BE10B5F8F7B2FEAD4C2078FF
+:10082000F9F742FB6078F9F73FFBA74C94F82800F2
+:10083000002808BF10BDF9F7B2F8002084F828009E
+:1008400010BD0B20704770B59F4C94F8260000280F
+:100850001CBFFFDF70BD94F82B00002808BFFFDF2E
+:10086000F8F777FF62690025811A6FF07F43B1F5D1
+:10087000800F24BFA2EB000CBCF5800F0DD38B4280
+:1008800003D2991A0844411C07E0634528BFFFDFE3
+:1008900005D2181A1044401C4142002900DBFFDF3A
+:1008A000012684F8266084F82B5094F8291004203F
+:1008B000844A01EB810102EB81010874A068B0F168
+:1008C000FF3F04D0B01EA0600120F8F797FE002083
+:1008D000F8F794FEF8F778FE25600CF0C7FEF8F7FD
+:1008E000C1FF7E48056005604FF0E0214FF40040F5
+:1008F000C1F88002F2F7E5FA74480078022804D0C3
+:10090000032805D194F8230010B184F8226001E097
+:1009100084F82250BDE87040F8F788BF0346694963
+:100920000B2000BF00EB800201EB820212F8042CC6
+:1009300022B1401E10F0FF00F4D1704700EB80029E
+:1009400001EB8201012241F8143C01F8042C7047AC
+:10095000012804D0032808BF002926D000E021B3D5
+:10096000594B4FF0000C83F821C0584A0028907072
+:1009700014BF022882F803C00BD0072915D2DFE884
+:1009800001F01404060C0E1012001B2000E03A20A7
+:10099000D070012083F8210070475820F8E77720B5
+:1009A000F6E79620F4E7B520F2E7002070474748C5
+:1009B00010B54078F8F75FFF80B210BD30B5421E29
+:1009C0004049002500EB800001EB80040A2A02D890
+:1009D00014F8040C00B9FFDF14F8040C012818BF48
+:1009E000FFDF04F8045C30BD70B53D4C94F8CD01D8
+:1009F00094F8CC1188420CBF01250025F8F7A9FE18
+:100A0000F8F739FF94F8CD1194F8CC2191420CBF3E
+:100A100001210021A942E9D170BD30B50D46314A0E
+:100A200044190021101A71EB010038BFFFDF2E4876
+:100A30008542C8BFFFDF2D488542B8BFFFDF2C4885
+:100A40008442A8BF2B4804DA002CAABF20462848BD
+:100A500030BD201830BD70B51A4900EB800001EBA5
+:100A60008004254A54F8101D607A002852F820208E
+:100A700011440CBF04200220084420F07F40F8F706
+:100A8000FAFE94F90850174A44190021101A71EB24
+:100A9000010038BFFFDF14488542C8BFFFDF13489D
+:100AA0008542B8BFFFDF12488442A8BF114804DA6C
+:100AB000002CAABF20460E4870BD201870BD000053
+:100AC000DC080020F8080020E00900207A0000205F
+:100AD0002D26010078000020C106010000F500402D
+:100AE000F4060020FF7F841E0020A10700E05EF8CE
+:100AF0000080841E00807BE170E501002DE9F04F4D
+:100B00000646FF4885B00068C005C00D11D01038FA
+:100B100040B20028B8BF00F00F0000F1E020B4BFE1
+:100B200090F8140D90F80004400908BF4FF0010A36
+:100B300001D04FF0000A307800281FBF01280020A4
+:100B400005B0BDE8F08F307900280CBF04210221E8
+:100B5000EC4ABAF1000F52F8200001EB000903D172
+:100B6000E949002081F827006C4602AA2146B068B6
+:100B7000F8F78EFE9DF90820F068211D104401222F
+:100B8000C01C1F28B8BF019208DB03AAF8F780FE3B
+:100B90009DF80C0010B10198401C0190DDE9001097
+:100BA0000844401D20F07F400190A1EB090020F097
+:100BB0007F40009070798DF80A0000980390F8F754
+:100BC000C8FD009A019B121A181AD04922F07F42E0
+:100BD00020F07F40B2F5800F26D2814224D3CA484C
+:100BE00090F82950009CCA4F181B20F07F486FF0E6
+:100BF0007F40001BAB4604900C2D24D005EB8500F4
+:100C000007EB80026FF07F435068011BB1F5800F46
+:100C100012D3A4EB000CBCF5800F0DD38B4205D290
+:100C200004990844411C07E000205FE0634509D2B5
+:100C3000191A0819401C41420029BCBFAB46957CDB
+:100C4000DADB00E0FFDF5D4525D00BEB8B0007EB27
+:100C500080026FF07F4091680B1BB3F5800F12D3B9
+:100C6000A4EB010CBCF5800F0DD3984203D204987D
+:100C70000844431C07E0604528BFFFDF0BD2431A3E
+:100C80001819401C4342002B05DD9DF80A00927B99
+:100C9000904228BF0C460C2D18BF9DF80A1010D0AA
+:100CA00005EB850007EB80004268121B22F07F42B3
+:100CB000424506D2827B914228BF8468857C0C2DF8
+:100CC000EED10098A04205D004EB080020F07F4050
+:100CD0000094019000990398814206D001EB09002D
+:100CE00020F07F40F8F7C7FDB0600120864991F8F9
+:100CF0002710002904BF05B0BDE8F08FBAF1000F3E
+:100D00003FF42EAF05B0BDE8F08F2DE9F04F064659
+:100D100087B00C467F480CF00DFB4FF0010800280F
+:100D200035D07D4F387D002818BFFFDF3E74207915
+:100D3000794D05F10C022872607968722946A06825
+:100D4000F8F7A6FD95F90C000F2804DD1F3828736D
+:100D50002868401C286095F90C00E1682E1D0844A5
+:100D6000C01C1F28B8BFC6F8008009DB6A463146A0
+:100D7000F8F78EFD9DF8000010B13068401C30601F
+:100D80002078A87287F8148007B0BDE8F08F634D13
+:100D900095F8CD0116281ED095F8CD0195F8CC1107
+:100DA000401C884200D1FFDF55480068C005C00DD7
+:100DB0001AD0103841B20029BDBF01F00F0000F178
+:100DC000E02090F8140D01F1E020A8BF90F8000495
+:100DD000400909D104E095F8CC010028E4D1E2E70C
+:100DE0002078002818BFFFDF4C4890F8CD1101EBA8
+:100DF000810100EB810006742078012800F04A810F
+:100E0000022843D0454890F8CD1101EB810100EB59
+:100E10008105207928726079687205F10C022946F3
+:100E2000A068F8F735FD95F90C000F2804DD1F3890
+:100E300028732868401C286095F90C10E0682E1D66
+:100E40000844C01C1F28B8BFC6F8008009DB6A46EA
+:100E50003146F8F71DFD9DF8000010B13068401CC8
+:100E600030602078A8722D4890F8CD1116290EBF59
+:100E7000002190F8CD11491C80F8CD1125480CF0C7
+:100E80006FFA07B0BDE8F04FF8F7D0BC234890F8F0
+:100E9000CD1101AA01EB810100EB81076946E068F1
+:100EA000F8F7F6FC9DF904000F28CCBF01200020C4
+:100EB00000993D1D08440190A068C01C1F28B8BFC0
+:100EC000C5F8008009DB6A462946F8F7E1FC9DF881
+:100ED000000010B12868401C28600220B8726079B8
+:100EE00078722079387200280CBF04210221054A4B
+:100EF00052F82000014403917A68481D10440FE025
+:100F000004ED00E070E50100E0090020FFFF3F0074
+:100F1000F80800200C0A0020C4080020F406002075
+:100F20000199009008440399401A0590FD4C002057
+:100F300084F82700F8F70DFC3860019980460844D2
+:100F400020F07F40F86094F829000C287ED02146DC
+:100F500091F8290000EB8002A1F1E80000EB820289
+:100F60005668009A324422F07F42029297F809B004
+:100F700091F829503446111B21F07F4A6FF07F41D0
+:100F8000891BA94604910C2D23D0E74805EB850168
+:100F900000EB81026FF07F435068011BB1F5800FB9
+:100FA00024BFA4EB000CBCF5800F0BD38B4203D203
+:100FB00004990844411C05E0634509D2191A08192F
+:100FC000401C41420029BCBFA946957CDBDB00E008
+:100FD000FFDF4D4524D0D44809EB890100EB8103A4
+:100FE0006FF07F429868011BB1F5800F12D3A4EB1C
+:100FF000000CBCF5800F0DD38A4203D20499014442
+:10100000491C07E0624528BFFFDF09D2121A1119F7
+:10101000491C4942002903DD997B8B4528BF0446C2
+:101020000C2D18BFC04910D005EB850001EB8000E6
+:101030004268121B22F07F42524506D2827B9345C2
+:1010400028BF8468857C0C2DEED100E01BE0A64211
+:1010500005D004EB0A0020F07F4026460290029A59
+:10106000A6EB080020F07F40A2EB0802059922F0D1
+:101070007F42B0F5800F06D2914204D303983044EA
+:1010800020F07F403860A74890F8270000287FF4C0
+:101090004DAFE8E6A548851915F8010C002818BFE2
+:1010A000FFDF05F8018CADE60020F8F797BA0120C4
+:1010B000F8F794BA9E48007870472DE9F0419A4EAF
+:1010C00000274FF00308012506F1E80450B301287A
+:1010D0005BD0022800F0E98003281CBFFFDFBDE8D9
+:1010E000F08194F829000C2808BFFFDF84F82670EF
+:1010F00084F82B5094F8290000EB800006EB800068
+:1011000080F81080F8F799FB94F8290094F82910DA
+:10111000401CC0B201EB810156F82120BDE8F0412E
+:101120000521104794F829000C2808BFFFDF84F838
+:10113000267084F82B5094F8290000EB800006EB11
+:10114000800080F81080F8F778FB207F002818BF17
+:10115000FFDF84F825500020F8F750FAA168B1F1BC
+:10116000FF3F04D0012300221846F8F78BFA94F8C9
+:10117000290094F82910401CC0B201EB810156F8F7
+:101180002120BDE8F0410121104794F829000C28E6
+:1011900008BFFFDF84F8267084F82B5094F82900EC
+:1011A00000EB800006EB800080F81080F8F745FB2C
+:1011B0000120F8F723FA94F8250000281CBFA06846
+:1011C000B0F1FF3F0DD094F8290094F82910401C8D
+:1011D000C0B201EB810156F82120BDE8F0410621A3
+:1011E0001047207F012815D002281FD0032833D0B4
+:1011F00004281CBFFFDFBDE8F08194F82010606870
+:101200000123411A00221846F8F73CFA94F8280006
+:10121000B8BB37E094F8240028B184F82470F8F7BC
+:1012200013FB84F823502777BDE8F08194F8280059
+:1012300018B9F8F78BFB84F8285094F8290094F833
+:101240002910401CC0B201EB810156F82120002179
+:1012500090472777BDE8F081217B60680123411A20
+:1012600000221846F8F70EFA94F8240028B184F802
+:101270002470F8F7E9FA84F8235002202077BDE8BB
+:10128000F08103E0F8F762FB84F8285094F8290015
+:1012900094F82910401CC0B201EB810156F82120BE
+:1012A000002190472577BDE8F08121480078BDE80E
+:1012B000F041F8F7FFBD10B51A4C94F829000C283E
+:1012C00008BFFFDF94F8290094F82910401CC0B231
+:1012D000154A01EB810152F82120BDE8104004219C
+:1012E00010472DE9F84F8046087C104C401EC6B2CE
+:1012F0000D46A05D01281DD0022825D0297CDFF8ED
+:1013000028A0481EC4B204EB84020AEB8206371DF3
+:101310000A2821D801EB81000AEB800010F8040CA8
+:10132000D8B919E0E0090020F8080020D40900200D
+:1013300078000020A87A012814BF02200020A055C0
+:1013400018BFBDE8F88FD9E7A87A012818BFFFDFDA
+:101350000021A972A155D1E7FFDF307CDFF8289486
+:1013600007280BD11720009099F8172009F11803CE
+:10137000494620460BF02AFD01203074307C0128BC
+:1013800004D0A87A012818BFFFDF02D0A87A01286C
+:101390004BD1FE4B307C022818D099F81800162843
+:1013A00072D099F8180099F81710401C884200D1A3
+:1013B000FFDF0120707499F8180009F8004099F8CF
+:1013C0001800162800F09E8100F093B9F04A92F8B8
+:1013D00029000146A04207D0014600EB810003EB43
+:1013E0008000807CA042F7D192F829C084450CD1BE
+:1013F00092F8291001EB810103EB8101897C82F8CD
+:101400002910012182F82A1009E000EB800203EB89
+:10141000820201EB810103EB8101927C8A7400EB73
+:10142000800003EB80000C218174287AD9490028C0
+:1014300051F820A02968A1EB0A010CBF042002206A
+:10144000081A20F07F423A60D5E90001084420F0F4
+:101450007F407860A87A022818BF287B1ED0387297
+:101460007868401D20F07F407860687AB872287AEA
+:1014700006257872032872D2002870D000F022FE70
+:1014800000286DD0A1E0FFE799F81700002890D15F
+:101490008EE700BF89F81800BDE8F88F287A002889
+:1014A0000CBF0420022000EB0A036868591D00EB02
+:1014B000010BB9484078504503D9B54991F823103C
+:1014C00011B10BF1060003E0A0EB0A005844801DA7
+:1014D000AF4991F829C0BCF10C0F25D091F829C073
+:1014E0000CEB8C0EA1F1E80C0CEB8E0CDCF804C0BC
+:1014F000624519D0DFF8A4C291F8291001EB8102EE
+:10150000A24901EB82014A688968A2EB080222F035
+:101510007F42A1EB080121F07F41904298BFB2F5D4
+:10152000800F9DD28C459BD34044A0EB0B0020F054
+:101530007F4139601944E86821F07F410A1A6FF051
+:101540007F4CB2F5800F24BF431AB3F5800F11D33F
+:10155000944506D2ACEB00000844421C0AE034E09B
+:101560002FE09C4528BFFFDF1DD2ACEB01010844F2
+:10157000401C4242002A16DD0520307499F81800FC
+:10158000162819D099F8180099F81710401C8842AD
+:1015900000D1FFDF99F8180009F8004099F8180009
+:1015A00016287BD0A5E03868ABF10501084420F08F
+:1015B0007F407860002052E799F817000028E9D1B1
+:1015C000E7E7CAF138054FF0320A7348017801297C
+:1015D00018BF03290AD14078504507D96C4991F8C2
+:1015E0002310002904BFA0EB0A0005446B4B3868A8
+:1015F000A0EB0802786822F07F41A0EB080020F001
+:101600007F4C8D4298BFB1F5800F1BD2634519D333
+:101610005F4991F829300C2B30D091F829504FF0C8
+:101620000C0BDA46594905EB850301EB8303D3F82C
+:1016300008C0ACEB080C944531D8AB469D7C0C2D12
+:10164000F0D193E00520307499F81800162810D0D6
+:1016500099F8180099F81710401C884200D1FFDF54
+:1016600099F8180009F8004099F81800162849D090
+:101670003FE099F817000028F2D1F0E7022030741B
+:1016800091F829000C2818BF91F82900B07481F84E
+:101690002940012081F82A00BDE8F88F32E00C2DA6
+:1016A0001CBFAA46002261D00AEB8A0301EB830328
+:1016B000D3F804C0ACEB080C84452CD29A7B97F885
+:1016C0000AC0944520D30520307499F818001628D4
+:1016D00013D099F8180099F81710401C884200D1CF
+:1016E000FFDF99F8180009F8004099F8180016284B
+:1016F00008D099F81800401CCCE699F8170000288B
+:10170000EFD1EDE70020C5E693F812A00122BAF16F
+:101710000C0FC9D103E0002A08BFAA4626D02F46E5
+:101720001A4807EB870100EB8108062288F8102091
+:1017300099F81800162838D099F81800411C99F823
+:101740001700814200D1FFDF99F8180009F80070F6
+:1017500099F8180016280EBF002099F81800401CB0
+:1017600089F8180098F81270BA45D9D10220074FAD
+:10177000307407F1E80090F82910A9421AD186F8D0
+:1017800012A080F829400BE0DC080020F8080020B7
+:10179000E009002070E501007A000020FFFF3F0013
+:1017A000012180F82A10BDE8F88F99F81700002869
+:1017B000CAD1C8E70C2D0CD0BBF10C0F08BFFFDF5E
+:1017C0000BEB8B0007EB8000847486F812A0BDE859
+:1017D000F88FBBF10C0F08BFFFDF0BEB8B0007EBA3
+:1017E000800084740C20B074BDE8F88F2DE9F04FB0
+:1017F00083B0F7F7AEFF05464FF00C0BFE4C94F8A4
+:1018000029100026A4F1E8094FF001080C292FD077
+:1018100094F82920214602EB820209EB8202127C15
+:10182000042A25D091F8292002EB820209EB8202DA
+:10183000127C032A04BF03B0BDE8F08F2A4620695A
+:101840006169801A491BED4B20F07F4021F07F41F8
+:1018500006283CBF03B0BDE8F08FB0F5800F24BF71
+:1018600003B0BDE8F08F8B423CBF03B0BDE8F08F02
+:10187000A068B0F1FF3F18BFFFDF84F8256094F83F
+:101880002900DF4F0C2809D094F8290000EB8000D4
+:1018900009EB8000007C042808D01AE094F82100AD
+:1018A000B8B1F8787870B878387012E094F829B048
+:1018B0000BEB8B0009EB800080F8108094F8290076
+:1018C00000EB800009EB8000807C84F8290084F81C
+:1018D0002A80DFF830A39AF8CD019AF8CC1188421B
+:1018E00019D000BF9AF8CC0100EB80000AEB800110
+:1018F0002846FFF7F6FC9AF8CC0116280EBF002008
+:101900009AF8CC01401C8AF8CC019AF8CD019AF8DB
+:10191000CC118842E6D1DFF8F0A29AF8140028B181
+:1019200051462846FFF7DDFC8AF81460BBF10C0F26
+:1019300006D00BEB8B0009EB8000017C01292BD03A
+:1019400094F829000C2800F0ED8094F82A00002873
+:1019500000F0F78084F82A6094F8290000EB8001F9
+:10196000AA4800EB8102A0F50173D2E90101D26817
+:10197000C3F80423C3E9BF01607E00280CBF4FF009
+:1019800004094FF00209A249022811F8201021731E
+:1019900018BF012834D123E007210174DFF874A2B5
+:1019A0009AF81800162816D09AF818009AF8171006
+:1019B000401C884200D1FFDF9AF818000AF800B0F6
+:1019C0009AF8180016280EBF00209AF81800401C3C
+:1019D0008AF81800B4E79AF817000028ECD1EAE773
+:1019E00020690844421B22F07F42382A08D903218B
+:1019F0003238617620F07F4020613220207309E088
+:101A0000322907D294F8280058B9F7F79FFF84F8D5
+:101A1000288006E094F8280018B1F7F7C0FF84F892
+:101A200028607B7884F8203094F80CA03878062160
+:101A3000A3EB0A02012818BF032804D184F82480EC
+:101A4000002AC8BF911D94F822B0BBF1000F18BF47
+:101A5000891C206901905044484420F07F40606018
+:101A6000BAF1000F14BF02200020207794F8240060
+:101A7000002808BFBBF1000F37D060480090D4F8B1
+:101A800010E0D4F814C0AEEB050E2EF07F4EACEB98
+:101A9000050C20462CF07F4C714598BFBEF5800F99
+:101AA0001FD2009961451CD3002A0FDD0199BAF1BC
+:101AB000000FA1EB020101611944494421F07F416B
+:101AC00041600CBF0121032121770EE004DA002BD5
+:101AD0000CBF02210421F7E7BBF1000F08BFFFDFB5
+:101AE00003E080F8246084F82260207F40B1206900
+:101AF000012300EB090100221846F7F7C3FD02E0BD
+:101B00000120F7F77BFD94F82900012300EB800109
+:101B10003E4800EB8100616890F90C200020F7F747
+:101B2000B1FD0EE00120F7F769FD0020F7F766FD33
+:101B3000F7F74AFD94F8280018B1F7F730FF84F85A
+:101B4000286094F8220028B1F7F77EFE84F823601D
+:101B500084F8226094F8210018B1F8787870B87889
+:101B6000387094F8240030B184F823603878002865
+:101B700008BF84F824602748017EC07D814203D0DD
+:101B800025484078F8F796F984F8278003B0BDE837
+:101B9000F08F70B5184C054682B094F829000C28D7
+:101BA00008BFFFDF94F8290000EB8000174E06EB1A
+:101BB0008000007C032818BFFFDFA068B0F1FF3F62
+:101BC00018BFFFDF94F8290001AA00EB800006EBA4
+:101BD0008000694690F90C002844F7F759FE9DF9FA
+:101BE00004000F28CCBF0120002000990844616840
+:101BF000084420F07F4111E0E0090020FFFF3F0092
+:101C00007A000020F4060020C4080020F808002014
+:101C100070E50100DC08002078000020A16094F845
+:101C20002500002804BF02B070BD012302B00022CD
+:101C3000BDE870401846F7F725BD744A0B1A02F14B
+:101C4000010CB3EB9C0F3CBF1846704710B5441A0B
+:101C5000B4EB9C0F3CBF184610BD9A4203D2101A39
+:101C60000844401C10BD94429EBFFFDF002010BD01
+:101C7000511A0844401C404210BD01230022014675
+:101C80000220F7F7FFBC0220F7F7B8BCF7F761BDF9
+:101C90002DE9F0415E4C054682B094F82B000028F7
+:101CA00008BFFFDF642D50D35A480022401B72EB5F
+:101CB00002004AD3584890F8CD1190F8CC018142E7
+:101CC00043D15648007D00283FD194F82900DFF821
+:101CD000508100EB800008EB8006206801AA2844B0
+:101CE0006946F7F7D5FD9DF90400002802DD00984C
+:101CF000401C0090B168009872680F18BA1A22F060
+:101D00007F42B2F5800F20D2B27C0C2A09D002EBC0
+:101D1000820208EB82025268511A21F07F4181420F
+:101D200013D3A068B0F1FF3F05D00120F7F766FCA0
+:101D30004FF0FF30A06020682844206027F07F40EB
+:101D4000606102B00120BDE8F08102B00020BDE872
+:101D5000F0812DE9F8430646401EC7B2304807EB34
+:101D6000870100EB8104207C002808BFFFDF2A4A9E
+:101D700092F8CC1192F8CD0181420DD001EB810394
+:101D800002EB83031B7CB34210D016290CBF002149
+:101D9000491CC9B28142F1D120484FF0170800F127
+:101DA0001805017D29B3007CB04222D10020BDE896
+:101DB000F883207C05281FBF207C0628207C07286C
+:101DC0000AD184F81090CDF80080EA7D05F118035F
+:101DD000144938460AF0FAFF607C68B16674CDF8A1
+:101DE0000080EA7D05F118030E4938460AF0EEFF3F
+:101DF00002E04FF001090026207C012804BF607C2E
+:101E00000028D6D10120BDE8F8830000FF7F841EA2
+:101E1000E0090020FF1FA107F4060020C4080020ED
+:101E2000F8080020DC080020F0B5734AD2F8003230
+:101E3000724D002401212E7856B9714E3460704FD6
+:101E400003263F1D3E606E4F04260C373E6029700E
+:101E5000C2F80042D1601160694C4834D1642568F1
+:101E60008542FBD35160D160C2F80032F0BD2DE94C
+:101E7000F041044680074FF000054FF0010604D5FD
+:101E800060480560066024F00204E0044FF0FF376C
+:101E900005D55D484660C0F8087324F4805460009E
+:101EA00003D55A48056024F08044E0050FD5524818
+:101EB000C0F80052C0F8087351490D60091D0D604B
+:101EC0004F4A04210C321160066124F48074A0048E
+:101ED00009D54F484660C0F80052C0F808734D4815
+:101EE000056024F40054C4F38030C4F3C031884248
+:101EF00000D0FFDF14F4404F14D047484660C0F8CC
+:101F0000087346488660C0F80052C0F80873444918
+:101F10000D600A1D16608660C0F808730D601660BB
+:101F200024F4404420050AD53E4846608660C0F847
+:101F30000873C0F848733C48056024F400640BF053
+:101F40006FFB3A48044200D0FFDFBDE8F08170B576
+:101F5000202500224FEA020320FA02F1C90719D016
+:101F600051B201F01F060124B4404E09B60006F13B
+:101F7000E026C6F88041C6F88042002906DA01F062
+:101F80000F0101F1E02181F8143D03E001F1E021AE
+:101F900081F80034521CAA42DED370BD70B5174CD4
+:101FA0000D466060FFF763FF6068FFF7D0FF2846CB
+:101FB000F7F7A9FD0AF064FF00F0D5F80BF030FB4D
+:101FC0000BF07BFAF7F748FFBDE870400BF006B85E
+:101FD00010B50A4C6068FFF74AFF6068FFF7B7FF6B
+:101FE0000BF01EFBF7F753FE0020606010BD0348A6
+:101FF0004068704702207047008000408000002049
+:1020000004850040FC1F004000C0004004E5014082
+:1020100000D0004004D5004000E0004000F0004047
+:1020200000F5004000B0004008B50040FEFF0FFC86
+:1020300070B51F490A68BAB100231D4601244A68D9
+:10204000521C4A60092A00D34D600E7904FA06F248
+:102050000E6816420AD072B60B6893430B6062B6E4
+:1020600049680160002070BD052070BD5B1C092B14
+:10207000E5D3FFDFF8E74FF0E0214FF48000C1F82F
+:1020800000027047EFF3108111F0010F72B64FF0AC
+:10209000010202FA00F20648036842EA0302026003
+:1020A00000D162B6E7E70248002101604160704755
+:1020B0008800002001208107086070470120810707
+:1020C0004860704712480068C00700D00120704780
+:1020D0000F48001F0068C00700D0012070470C485F
+:1020E00008300068C00700D0012070470848103051
+:1020F0000068704706490C310A68D20306D50968A2
+:1021000001F00301814201D1012070470020704796
+:102110000C040040C84911F8210F4978884201D3C6
+:10212000401A02E0C1F121010844C0B27047C2491F
+:10213000233111F8210F4978884201D3401A02E077
+:10214000C1F121010844C0B27047BB49463111F8C2
+:10215000210F4978884201D3401A02E0C1F12101E0
+:102160000844C0B27047B54910B5802081F800041A
+:10217000B1490020233101F8210F4870AE4901F820
+:10218000210F4870AC49463101F8210F4870AC4826
+:102190000BF0C8F8AA48401C0BF0C4F8F0F7A4FEF6
+:1021A000BDE8104000F03DB920207047B2E770B59F
+:1021B0000C4605460026FFF7ADFF01469E48A142AA
+:1021C00012D30022641EE4B20DD390F82210435CB7
+:1021D000491CC9B205F8013B80F822102129F1D130
+:1021E00080F82220EEE7012600F01BF9304670BD92
+:1021F000202070479BE770B50C4605460026FFF788
+:1022000096FF01468C482330A14212D30022641E5F
+:10221000E4B20DD390F82210435C491CC9B205F812
+:10222000013B80F822102129F1D180F82220EEE72D
+:10223000012600F0F6F8304670BD20210170002024
+:10224000704710B50446FFF780FF2070002010BDD6
+:1022500070B50C460546FFF778FF014676484630D4
+:10226000A14213D30022641EE4B20DD390F82210D1
+:10227000435C491CC9B205F8013B80F822102129B2
+:10228000F1D180F82220EEE7002401E042F20704B9
+:1022900000F0C7F8204670BD70B50C4605462129F0
+:1022A00000D9FFDF67480068103840B200F0A0F89E
+:1022B000C6B20D2000F09CF8C0B2864204D2FFDF07
+:1022C00002E000BFF0F760FE21462846FFF76FFFEF
+:1022D0000028F7D070BD2DE9F047DFF86481564C37
+:1022E000A8F101080746233498F80000DFF8489168
+:1022F000002604F1230A38B994F8221094F821003A
+:10230000212200F084F890B14D4699F8221099F8F6
+:102310002100212200F07BF8B8B155469AF822102E
+:102320009AF82100212200F072F848B335E094F8C1
+:102330002100275494F82100401CC0B284F82100E9
+:1023400021282AD184F8216027E095F821002F5414
+:1023500095F82100401CC0B285F82100212801D148
+:1023600085F8216098F800004746B0B195F8221032
+:1023700095F82100212200F04AF870B13E700CE07F
+:1023800095F821002F5495F82100401CC0B285F823
+:102390002100212801D185F8216094F8221094F8B9
+:1023A0002100212200F033F800281FD099F82210D4
+:1023B00099F82100212200F02AF8002816D09AF876
+:1023C00022109AF82100212200F021F800280DD0D7
+:1023D000F0F7B0FD1A480AF0ADFFB0F5005F00D08D
+:1023E000FFDFBDE8F04716480AF0BABFBDE8F08746
+:1023F000002806DA00F00F0000F1E02090F8140D3C
+:1024000003E000F1E02090F8000440097047401C10
+:10241000884204D0904200D109B1002070470120C9
+:10242000704710B506480AF085FF002803D1BDE8C3
+:102430001040F0F76ABD10BD100A00200DE000E06A
+:102440009100002004ED00E0164908784A78401C0D
+:10245000C0B2904205D0144B01221A60BFF34F8FD7
+:10246000087070472DE9F0410E4C4FF0E02600BF98
+:10247000F7F7A0FC20BF40BF20BF677820786070CE
+:10248000D6F80052EEF73EFF854305D1D6F8040298
+:1024900010B92078B842EBD0F7F787FC0020BDE8F0
+:1024A000F081000093000020180502402DE9F04162
+:1024B000012528034FF0E0210026C1F880011E4CC1
+:1024C000C4F800610C2000F02CF81C480168026878
+:1024D000C94341F3001142F010020260C4F80453F2
+:1024E0002560491C00E020BFD4F80021002AFAD062
+:1024F00019B9016821F01001016011480768656091
+:10250000C4F80853C4F800610C2000F00AF83846FB
+:10251000BDE8F08110B50446FFF7C8FF2060002039
+:1025200010BD00F01F02012191404009800000F120
+:10253000E020C0F88012704700C0004010ED00E0BD
+:1025400008C500402DE9F047F84C0646FF216068B9
+:1025500000EB061211702178FF2916D04FF0080900
+:1025600009EB011109EB06174158C059491E21F02A
+:102570007F4100F0DDF918B194F80080454614E081
+:102580006168207801EB061108702670BDE8F087BD
+:10259000626809EB0510D159105800F0C9F930B93B
+:1025A0006068A84600EB08100578FF2DF0D1606840
+:1025B00000EB061100EB08100D700670E6E7F0B5B1
+:1025C000DA4B0446002001255A680C261B7A0BE0E2
+:1025D00005EB0017D75DA74204D106EB0017D759CA
+:1025E0008F4204D0401CC0B28342F1D8FF20F0BD1E
+:1025F00070B5FFF74BFBCD4C01460825227860688B
+:1026000005EB0212805800F093F9012808D92178CF
+:10261000606805EB01114058BDE87040FFF72DBB25
+:10262000FEF748FDBDE87040F7F744BC2DE9F041E6
+:10263000BE4C2578FFF72AFB0146FF2D6FD04FF0E7
+:102640000808626808EB0516905900F071F9022835
+:10265000606801D980595EE000EB051109782170AE
+:10266000022101EB0511425C5AB1521E42548159BC
+:1026700001F5000121F07F4181512846FFF762FFFB
+:1026800034E00423012203EB051302EB051250F89A
+:1026900003C0875CBCF1000F10D0BCF5806F10D96F
+:1026A000CCF3090250F806C00CEB423C2CF07F4CF6
+:1026B00040F806C0C3589A1A920A09E0FF218154D3
+:1026C0000AE0825902EB4C3222F07F428251002212
+:1026D00042542846FFF736FF0C21606801EB0511D4
+:1026E0004158E06850F82720384690472078FF2866
+:1026F00015D0FFF7CBFA01462278606808EB02128A
+:102700004546805800F014F9012891D92178606875
+:1027100005EB01114058BDE8F041FFF7AEBABDE846
+:10272000F081F0B51D4614460E460746FF2B00D338
+:10273000FFDFA00700D0FFDF7C48FF210022C76039
+:10274000446005720674017042701046012204E074
+:1027500002EB0013401CE154C0B2A842F8D3F0BD14
+:1027600070B5724C06466578207C854200D3FFDF49
+:10277000E06840F825606078401C6070284670BDB5
+:102780002DE9FF5F1D468B460746FF24FFF77EFAC3
+:10279000DFF89891064699F80100B84200D8FFDFAB
+:1027A00000214FF001084FF00C0A99F80820D9F8E1
+:1027B00004000EE008EB0113C35CFF2B27D0BB42E3
+:1027C00005D10AEB011350F803C0DC4521D0491CA8
+:1027D000C9B28A42EED8FF2C1BD008EB04110AEBD9
+:1027E0000412475440F802B00421029B0022012B3E
+:1027F00001EB041111D042504FF4806808234FF0D0
+:10280000020C454519D9A905890D08D008E00C46E8
+:10281000DDE7FF2004B0BDE8F09F4550ECE74146FE
+:1028200006EB413203EB041322F07F42C250691AD7
+:102830000CEB0412890A81540BE005B9012506EB63
+:10284000453103EB041321F07F41C1500CEB04111F
+:10285000425499F800502046FFF774FE99F80000A2
+:10286000A84201D0FFF7C4FE3846D3E770B50C4646
+:102870000546FFF70BFA064621462846FFF79FFE5E
+:102880000446FF2817D0294D082101EB0411686880
+:102890004058314600F04CF800F58050400B0221C2
+:1028A0006A6801EB0411515C09B100EB812000283A
+:1028B00000D1012070BD002070BD2DE9F0410F4610
+:1028C0008046FFF77CFEFF281BD0184E35787168D4
+:1028D0002A462C4605E0844206D0254601EB051326
+:1028E0001C78FF2CF7D10CE0FF2C0AD0A5420CD1AC
+:1028F00001EB021000783070FF2804D0FFF778FE5B
+:1029000003E000200BE7FFF7BEF939464046FFF72A
+:10291000ADFFFF220123716803EB0413CA5401EBDE
+:10292000041201EB051112780A70F8E67C0A002007
+:10293000401A20F07F40B0F5000F00D9002070470A
+:1029400070B50446A0F500002C4EB0F1786F02D2AD
+:102950003444A4F500042A48844201D2012500E051
+:10296000002500F041F830B1B4420BD3254800688F
+:1029700004E0284370BDB44204D32348844201D20A
+:102980000120F6E70020F4E710B50446A0F50000AA
+:10299000B0F1786F03D219480444A4F5000400F0A4
+:1029A00023F84FF0804130B11648006804E08C42B3
+:1029B00004D2012003E014488442F8D2002080F0C1
+:1029C000010010BD10B520B1FFF7DEFF08B10120F6
+:1029D00010BD002010BD10B520B1FFF7B1FF08B148
+:1029E000012010BD002010BD084809490068884238
+:1029F00001D1012070470020704700000000002036
+:102A000000F00100200000200800002098000020B5
+:102A1000BEBAFECA0548064A0168914201D10021AA
+:102A20000160044901200860704700009800002000
+:102A3000BEBAFECA40E50140534800210170417012
+:102A400010218170704770B5054616460C4602206D
+:102A5000F0F7E7F94C49012008704C49F01E086076
+:102A60004B480560001F046070BD10B50220F0F7F0
+:102A7000D8F945490120087046480021C0F80011E6
+:102A8000C0F80411C0F8081143494FF40000086071
+:102A900010BD3D480178C9B1404A4FF400011160B2
+:102AA0003C49D1F800310022002B1CBFD1F8043181
+:102AB000002B02D0D1F8081111B14270102103E0AF
+:102AC0000121417036490968817002700020F0F7D9
+:102AD000A8B92D480178002904BF407870472D48D7
+:102AE000D0F80011002904BF02207047D0F800116F
+:102AF00000291CBFD0F80411002905D0D0F8080126
+:102B0000002804BF01207047002070471E4800B510
+:102B10000278204B4078C821491EC9B282B1D3F84F
+:102B200000C1BCF1000F10D0D3F8000100281CBF79
+:102B3000D3F8040100280BD0D3F8080150B107E006
+:102B4000022802D0012805D002E00029E4D1FFDFED
+:102B5000002000BD012000BD0B480178002904BF02
+:102B6000807870470B48D0F8001100291CBFD0F8BE
+:102B70000411002902D0D0F8080108B110207047D4
+:102B800007480068C0B270479C00002010F5004064
+:102B900008F5004000F0004004F5014008F5014050
+:102BA00000F400403148002101704170704770B559
+:102BB000064614460D460120F0F733F92B49012053
+:102BC00008702B480660001D0460001D056070BD84
+:102BD0002DE9F04105460120F0F723F923480126AD
+:102BE0002449067045F080700860234C0027C4F823
+:102BF000047122494FF040700860002D02BFC4F8F4
+:102C000000622660BDE8F081012D18BFFFDFC4F827
+:102C1000007226604FF0007019490860BDE8F0812D
+:102C20001248017879B1154A4FF04071116012498C
+:102C3000D1F804210021002A08BF417002D0114AB6
+:102C40001268427001700020F0F7EBB80748017875
+:102C5000002904BF407870470748D0F804010028D5
+:102C600008BF704707480068C0B270479F00002047
+:102C700008F5004004F5004000F0004008F5014070
+:102C800004F5014000F4004070B5FE4C0025012021
+:102C90006570257025626572A572E07284F829500E
+:102CA000256304F13C00A5630AF03CFB002818BF33
+:102CB000FFDF84F82450F4480BF0A2FAF3494FF0F8
+:102CC00011300860091D0860091D0860091D0860B1
+:102CD000091D0D60091D0860091D0860091D0860B7
+:102CE000091D0860091D0860091D0860091D0860AC
+:102CF000091D0860091D0860657770BD30B4E149A1
+:102D00000268DFF890C34A6142688A61007A0877F6
+:102D10000A7DDF4BACF1040401204AB10A7E00FABF
+:102D200002F21A608D7D002D0CBF2260CCF80020CD
+:102D30004A7D002A04BF30BC70474A7E904018602C
+:102D4000C97D00290CBF2060CCF8000030BC704762
+:102D5000D249D1480860091DD14808607047CF4A60
+:102D600000B5D0491160C0B240F44030111D40F0B0
+:102D700000700860CC48D0F80001002818BFFFDFC1
+:102D800000BD012070B502244FF0E0250022C5F8F7
+:102D90008041C6490A600860C5490B6823F0770383
+:102DA00043F0880343F000430B60C24B40F25B6189
+:102DB00019601B1F40F203111960191F0860BE48FB
+:102DC00003230360BD4996200860AE4EBC4896F9C7
+:102DD000241011F1080F08BFF8213CD014DC11F1C8
+:102DE000280F08BFD82136D011F1140F08BFEC21ED
+:102DF00031D011F1100F08BFF0212CD011F10C0FC0
+:102E000008BFF42127D010E011F1040F08BFFC2106
+:102E100021D0002908BF026008D0032908BF036041
+:102E200004D0042908BF016000D0FFDF707F0028B4
+:102E300014BF4FF4C020A348A3490860A449A34885
+:102E40000860091FA3480860C5F880429649102011
+:102E5000C1F8040370BD0160E8E78A4A0368C2F85C
+:102E600002308088D08011727047864890F829001F
+:102E70007047844A517010707047F0B50546800065
+:102E800000F1804000F580508B88C0F820360B7828
+:102E9000D1F8011043EA0121C0F8001605F108003D
+:102EA000012707FA00F68C4C002A04BF2068B043C3
+:102EB00004D0012A18BFFFDF20683043206020685B
+:102EC00007FA05F108432060F0BD10B57C490446BF
+:102ED00010F1080F08BFF8202CD014DC14F1280FD3
+:102EE00008BFD82026D014F1140F08BFEC2021D041
+:102EF00014F1100F08BFF0201CD014F10C0F08BF04
+:102F0000F42017D011E014F1040F08BFFC2011D0F9
+:102F1000002C08BF00200DD0032C08BF032009D0CF
+:102F2000042C04BF0420086000D0FFDF554880F85F
+:102F3000244010BD0860F9E7524890F8340070470B
+:102F4000504890F836007047644AC17811600068B4
+:102F50006349000208607047252808BF02210ED08F
+:102F6000262808BF1A210AD0272808BF502106D0DA
+:102F70000A2894BF0422062202EB4001C9B2594A32
+:102F800011605949086070473E49086270473D49E1
+:102F90008A7A012A49D0022A18BF70474B7D002B3C
+:102FA00008BF7047DFF844C1012A42D0CA7D4B7E7A
+:102FB000002A18BF01227D30CCF80000DFF830C1B4
+:102FC0000020CCF84C01180282F0010240EA0250C5
+:102FD00040F00312087F830003F1804303F5C043F0
+:102FE000C3F81025434A02EB8002887EC30003F138
+:102FF000804303F5F833C3F81425DFF8FCC0C3F8A9
+:1030000010C5C97ECB0003F1804303F5F833C3F844
+:103010001425304AC3F81025012202FA00F002FA02
+:1030200001F108433549086070470B7D002BB9D189
+:1030300070478A7D0B7E002A18BF01227E30BBE7D5
+:103040002DE9F84F00280CBF012202220D4D164C2D
+:103050000320AA72C4F80002687F002814BF4FF44E
+:10306000C0201848254F38604FF00108002974D05F
+:10307000012971D002291CBFFFDFBDE8F88F286A43
+:1030800000283DE0900A0020A40A0020000E004025
+:10309000180500500C0500500601020014150040F0
+:1030A000250003020801100000100040FC1F004032
+:1030B0003C170040381500401015004044150040F2
+:1030C0000C1500400000040408F501404080004059
+:1030D000A4F50140101100404016004024150040A6
+:1030E0001C15004008150040541500404C85004058
+:1030F00000800040006000404C81004004F5014029
+:1031000008BFFFDF296A286B0844FC490860FD49B5
+:10311000FB480860A97AFC4801290EBF0460FB49FE
+:103120000160A86B40F40020A863D4F800924FF02F
+:10313000100AC4F808A30026C4F80062F4484FF44B
+:10314000802BC0F800B0FF208DF80000C4F810619B
+:10315000C4F810803DE000E01CE0012A13D0C4F860
+:103160000480022A18BFBDE8F88F687D002808BFD8
+:10317000BDE8F88FE748C0F84C80E7480068BDE834
+:10318000F84F0A3003E7C4F80080287D0028F1D109
+:10319000BDE8F88FE148012A806B07D0022A18BFEA
+:1031A000FFDF09D0BDE8F84F0A20F0E640F48010B8
+:1031B000A8634FF4801004E040F40010A8634FF4BB
+:1031C00000103860EEE700BF9DF80000401E8DF84B
+:1031D00000009DF8000018B1D4F810010028F3D0C9
+:1031E0009DF80000002808BFFFDFC4F80061C4F8A4
+:1031F0000C61C4F81061C4F80461C4F81461C4F827
+:103200001861C4F82861C64800680090C4F80092AC
+:10321000C7F800B0C4F804A34FF400203860296A4E
+:10322000286BBDE8F84F08440A30B0E62DE9F847AE
+:10323000BC4CD4F8000220F00309D4F804034FF08A
+:10324000100AC0F30018C4F808A30026C4F80062EE
+:10325000B24D687F002814BF4FF4C020B248AC497B
+:103260000860A87A0127012802D0022803D014E0C0
+:10327000287D10B911E0687D78B1A87EEA7E07FA52
+:1032800000F007FA02F210430860287F800000F186
+:10329000804000F5C040C0F81065FF208DF80000A8
+:1032A000C4F81061276104E09DF80000401E8DF80D
+:1032B00000009DF8000018B1D4F810010028F3D0E8
+:1032C0009DF80000002808BFFFDFC4F81061C4F8B3
+:1032D00028616E72AE72EF72C4F80092B8F1000FFE
+:1032E00018BFC4F804A3BDE8F88700688F4920F030
+:1032F0007F40086070474FF0E0200221C0F8801145
+:10330000C0F8801270474FF0E0210220C1F80001A0
+:10331000704787490870704710B586480AF00AF868
+:10332000002818BFFFDF10BD82480AF019B8824993
+:103330000860704730B5794C0546206BA84228BF1D
+:10334000FFDF012020732561607F40B1A81C206150
+:103350007448D0F8001241F04001C0F800126D49E5
+:103360000020C1F84401754920690860A06B7449C8
+:1033700040F48000A0634FF48000086030BD6748CF
+:1033800002210173CA210161417F41B1CC21016158
+:103390006449D1F8002242F04002C1F800225D4A9F
+:1033A0000021C2F844110269016B1144634A1160A3
+:1033B000816B41F48001816361494FF480000860B2
+:1033C00070475649012048775E49022008605F49EE
+:1033D0005D480860091F5E48086070474F4900203B
+:1033E000487770474A494FF4800008604B48816B2A
+:1033F00021F4800181630021017370474548012158
+:103400004160C1600021C0F844114C48016043484C
+:1034100001637047414800B5407F002818BFFFDFB7
+:103420004020484908603F48D0F8001241F0400170
+:10343000C0F8001200BD394800B5407F002818BF11
+:10344000FFDF3848D0F8001221F04001C0F8001228
+:103450003C490020086000BD3248D0F8001221F03D
+:103460001001C0F800120121816170472D48002130
+:10347000C0F81C11D0F8001241F01001C0F8001281
+:103480007047284981B0D1F81C21012A1EBF0020B5
+:1034900001B070472F4A126802F07F025242027058
+:1034A0000020C1F81C012C4800680090012001B0E8
+:1034B000704730B50C00054608BFFFDF14F0010F60
+:1034C0001CBF012CFFDF002D0CBF0120022013497F
+:1034D00001284872CC72134904BFD1F8000240F0B1
+:1034E000040007D0022807BFD1F8000240F008000E
+:1034F000FFDF30BDC1F8000230BD0000488500404C
+:1035000048810040A8F50140ACF50140041000409E
+:1035100008F50140008000404C850040900A0020E2
+:103520001811004000100040000004043C15004049
+:10353000A1000020CC0A0020041500404485004072
+:1035400004F5014060150040448000409CF50140B6
+:1035500028110040481500401C11004070B5EF4C88
+:103560000022E17A11F0020F18BF10F0040F16D1FB
+:1035700011F0100F1CBF94F83530002B02D094F8D6
+:10358000373063B111F0080F1CBF94F82830002BBE
+:1035900005D111F0040F03D094F8291001B90122CC
+:1035A000657ADF4900234FF0010C35B100F00200CD
+:1035B000104314D0BDE8704038E6607F002814BF87
+:1035C0004FF4C020D748D84A1060D1F8000220F04C
+:1035D0000300C1F80002A37284F80BC070BD012D76
+:1035E00014D0022D18BFFFDF1CD0A07A01280CBF19
+:1035F000CE48CF484FF47A7100F2E730B0FBF1F0DB
+:10360000216BBDE87040081A8C30C0E4D1F800028C
+:1036100020F00400C1F80002637284F80BC084F843
+:103620000AC0E2E7D1F8000220F00800C1F8000269
+:10363000637284F80BC00220A072D6E72DE9F84F20
+:10364000BC4FD7F84C21B54CB7494FF00108A07AD0
+:103650000026CAB1012802D0022803D014E0227D3E
+:1036600012B911E0627D7AB1A27EE37E08FA02F21D
+:1036700008FA03F31A430A60227F920002F18042A3
+:1036800002F5C042C2F81065A26B0A60A663217BF6
+:1036900029B1D7F84411012908BF012200D0002226
+:1036A0009F4DD5F8101101290CBF402100210128A0
+:1036B00005BFD5F80C31012B002320231943012825
+:1036C00005BFD5F80431012B002310230B439A4981
+:1036D000022804BFD1F800C0BCF1010F07D1D5F812
+:1036E0000CC1BCF1010F08BF4FF0080C01D04FF026
+:1036F000000C4CEA0303022804BF0968002905D125
+:10370000D5F80C11012908BF042100D0002119436C
+:10371000022803D1002A18BF022200D1002211433F
+:10372000022804BFD5F80401012805D1D7F84401C7
+:10373000012818BF012000D1002040EA01097F487C
+:10374000016811F0FF0F03D0D5F81411012900D042
+:10375000002184F83410006810F0FF0F03D0D5F872
+:103760001801012800D0002084F835007448006852
+:1037700084F836007348006818B1FFF7AAF90128E9
+:1037800000D0002084F83700C5F80061C5F80C614E
+:10379000C5F81061C5F80461C5F81461C5F8186171
+:1037A000C5F82861684800680090C7F84461674818
+:1037B00000684D46DFF898910090D9F80000E0626B
+:1037C000617F00291CBF801EE062624800682063A0
+:1037D000A07ADFF884A102280CD1607850B1DAF821
+:1037E000001009780840217831EA000008BF84F809
+:1037F000288001D084F82860DFF8608115F0010F7F
+:1038000016D098F80010564A4908E06A52F821107C
+:103810008847012198F80020524B5208206B53F83A
+:103820002220904798F8000010F0010F0BD01FE005
+:1038300015F0200F18BF0221ECD115F0020F18BFB0
+:103840000021E7D1EEE7DAF80000062200F10901D5
+:10385000A01C0AF0FDFA40B9207ADAF800100978C5
+:10386000B0EBD11F08BF012000D0002084F8290050
+:103870002846FFF773FE15F0020F05D03A4898F876
+:10388000001050F82100804715F00C0F07D0374882
+:1038900098F8001050F82110C5F3C000884715F0C3
+:1038A000200F05D0324898F8001050F821008047CA
+:1038B00098F80000022805D105F06E00402806D1D6
+:1038C00001F00BFB98F80000042828BFFFDFA07A66
+:1038D000022818BFBDE8F88F207B002808BFBDE88C
+:1038E000F88FC7F84461022814D0012818BFFFDF01
+:1038F000216B2069884298BFFFDF2069C9F800006A
+:10390000A06B1C4940F48000A0634FF48000086065
+:10391000BDE8F88F2169206B0844EFE7900A00208A
+:10392000001000400000040408F50140F0FE010012
+:10393000B0F8010000800040001400404016004034
+:1039400008140040601500401811004044810040F8
+:10395000448500404085004004150040A10000203F
+:1039600088E5010090E5010098E50100A8E5010067
+:10397000B8E5010004F5014010B54A4808F0C3FC61
+:103980000021484808F0EEFC0121464808F0BEFC42
+:103990004549002081F822004FF6FF708884434992
+:1039A0000880488010BD10B53E4808F0ACFC0021EE
+:1039B0003C4808F0D7FC01213A4808F0A7FC3A49F6
+:1039C000002081F822004FF6FF7088843749088074
+:1039D000488010BD704734498A8C824218BF7047B6
+:1039E000002081F822004FF6FF70888470472D492F
+:1039F000016070472D49088070472B498A8CA2F5D9
+:103A00007F43FF3B03D0002101600846704791F8D7
+:103A100022202549012A1ABF016001200020704799
+:103A2000214901F1220091F82220012A04BF00203F
+:103A30007047012202701D48008888841046704734
+:103A40001A49488070471849184B8A8C5B889A42FB
+:103A500006D191F82220002A1EBF01600120704784
+:103A6000002070471048114A818C5288914209D138
+:103A70004FF6FF71818410F8221F19B100210170E7
+:103A800001207047002070470748084A818C5288FF
+:103A9000914205D190F8220000281CBF00207047F9
+:103AA00001207047F60A0020D00A0020A200002062
+:103AB0007047514A012340B1012818BF7047137065
+:103AC0000868906088889081704753700868C2F8D1
+:103AD00002008888D0807047474A10B1012807D07B
+:103AE0000EE0507860B1D2F802000860D08804E09F
+:103AF000107828B19068086090898880012070470C
+:103B0000002070473C4910B1012803D006E04878F6
+:103B100010B903E0087808B1012070470020704711
+:103B200030B58DB00C4605460D2104A80AF055FAB3
+:103B3000E0788DF81F0020798DF81E0060798DF8EF
+:103B40001D002868009068680190A8680290E868E5
+:103B50000390684609F02EFA20789DF82F108842CD
+:103B60000CD160789DF82E10884207D1A0789DF87E
+:103B70002D10884202BF01200DB030BD00200DB0D5
+:103B800030BD30B50C4605468DB00321E01CFEF774
+:103B900032FB60790D2120F0C00040F040006071E0
+:103BA00004A80AF01AFAE0788DF81F0020798DF841
+:103BB0001E0060798DF81D002868009068680190EB
+:103BC000A8680290E8680390684609F0F3F99DF848
+:103BD0002F0020709DF82E0060709DF82D00A070C1
+:103BE0000DB030BD10B504460621FEF704FB607928
+:103BF00020F0C000607110BDA600002070B5F94D26
+:103C0000044695F88C000026012814D095F86A0027
+:103C100001281CBF002070BD667012202070202279
+:103C200005F16C01A01C0AF03FF90120A07185F894
+:103C30006A60012070BD667017202070D5F88D0075
+:103C4000C4F80200D5F89100C4F8060085F88C602D
+:103C5000EFE7E44890F86A10002914BFB0F86E004E
+:103C60004FF6FF70704770B5DF480178002918BF24
+:103C70000C2601D0304670BDDA4D0026344685F85A
+:103C8000626085F8636085F8646085F8656085F832
+:103C9000666085F85E6085F8606085F8566085F836
+:103CA000366085F868607F21817095F8670028B1DB
+:103CB000FFF7C1FBFEF7EDFE85F8674085F86A4027
+:103CC00085F88C40C94808F0C1F9C94808F0BEF928
+:103CD000D0E770B5C44800240470017800291CBFE7
+:103CE000FFDF70BDBF4D85F8624085F8634085F801
+:103CF000644085F8654085F8664085F85E4085F843
+:103D0000604085F8564085F8364085F868407F2148
+:103D1000817095F8670028B1FFF78DFBFEF7B9FEBB
+:103D200085F8674085F86A4085F88C40AF4808F010
+:103D30008DF9BDE87040AE4808F088B9A94890F800
+:103D400062007047A74900B591F8580091F85710E4
+:103D5000C0F38002C0F340031A4400F00100104495
+:103D6000052910D2DFE801F00B070B030900A14978
+:103D700031F8100000BDA04800BDA04900E0A049F6
+:103D800031F8100000BDFFDF002000BD954840F273
+:103D90007121B0F85A0048437047924890F8690082
+:103DA000002818BF0120704710B5040016BF022C70
+:103DB00000200120FFF7A6FE002808BF10BD89489B
+:103DC0000472012010BD874981F86000704710B56A
+:103DD000844C207A002816BF02280020012060723F
+:103DE00004F10A01FFF778FE207A022816BF0328A3
+:103DF0000121002184F85F10082084F85D00607ABA
+:103E000004F10A02012804BF527912F0C00F0AD04F
+:103E100004F10A02012804D1507900F0C0004028C2
+:103E200001D0002000E0012084F85E0029B994F858
+:103E30005700012818BF042806D1207C04F1110185
+:103E400007F0B2F984F85D004AF2B8102060FCF780
+:103E5000CBFD606004F10A01644808F01DF9617A45
+:103E6000624808F035F904F10A01614808F014F9D4
+:103E7000617ABDE810405E4808F02AB970B5594C27
+:103E8000417B84F85810017984F8571001290CBF40
+:103E900000220288A4F85A20827B84F86920827963
+:103EA000002A16BF022A002201222274D0F807201D
+:103EB000C4F81120B0F80B00A4F8150094F85600CF
+:103EC0000125002818BF84F8635094F836000028B4
+:103ED00018BF84F8645005292DD2DFE801F00308EB
+:103EE000222708000021414808F0B3F824E001210E
+:103EF0003E4808F0AEF804F111013C4808F0DAF849
+:103F0000207C20B1012818BFFFDF05D014E000217C
+:103F1000364808F0EAF80FE00121344808F0E5F8E7
+:103F20000AE00621314808F094F805E002212F4804
+:103F300008F08FF800E0FFDF04212D4808F089F831
+:103F400084F86250002070BD70B5264C05460020F4
+:103F500084F864002A4604F1170009F0A5FF84F8EC
+:103F60003650012084F8640070BD10B51D4C00224D
+:103F700084F8632084F85600024604F1370009F003
+:103F800093FF012084F8630010BD164981F8680092
+:103F90007047F0B5144E83B0307810BB114C94F8D4
+:103FA0006200F0B1FFF7B8F9002584F86150757030
+:103FB0002846FFF7AEF9FEF7E4FEFEF7C9FE11480A
+:103FC000FEF7C2FF1048FFF790F9FFF7D8F994F811
+:103FD000580010F0010F1CD02520FEF7BDFF012670
+:103FE00026E013E0180B0020B4000020B00B0020E6
+:103FF000D80B0020D8E5010091891300E0E501000D
+:10400000D0E50100CBE50100C8E5010003B00C20BC
+:10401000F0BD10F0020F04D02620FEF79DFF02260F
+:1040200006E010F0040F03D02720FEF795FF0426CA
+:10403000FEF78EFE84F85C60FFF765F90121002031
+:10404000FEF7FEFF0F210520FEF713FF94F85E0038
+:10405000002804BF94F85F00002805D194F85700A9
+:10406000012818BF04286ED1FCF7BEFC0646314675
+:104070006068FDF7E2FDF949B0FBF1F701FB1700BD
+:1040800041423046FCF7C9FC60602068384420603B
+:1040900007F087F8216888426CD8C4E9005694F884
+:1040A0005D0007F09DF8064694F85F0001270028A0
+:1040B00018BF002E04D01021304607F0A1FD68B1D2
+:1040C00094F8600000281CBF94F85E0000281AD005
+:1040D000607A04F10A0101280DD011E0677204F141
+:1040E0000A013046FFF74DFD94F85D1004F10A0017
+:1040F00007F067F907E0487900F0C00040281BD0BE
+:104100000846FFF76FFD04F10A01D54807F0C4FF28
+:10411000617AD34807F0DCFF04F10A01D14807F0C7
+:10412000BBFF617ACF4807F0D3FF94F8570001280E
+:1041300018BF04281ED107E007F077F904F10A013F
+:10414000FFF71FFDDFE715E094F85D0007F051F879
+:1041500006000FD0102107F053FD58B969463046CC
+:10416000FFF70FFD6946BE4807F0A4FF0121BC48D8
+:1041700007F0BBFF617A04F10A00FEF76EFE94F8C7
+:10418000570001281EBF042894F86300002808D0B7
+:1041900094F8562004F13701B14807F0C4FF84F8C1
+:1041A000635094F8640040B194F8362004F117018C
+:1041B000AC4807F0E4FF84F8645007F076F8AA48AA
+:1041C00007F0F0F884F86700FFF7AEF803B00020BE
+:1041D000F0BDA6494860704770B5A54C06002AD0CE
+:1041E00094F8582094F85C1022EA010010F0010FB6
+:1041F00004D02520FEF7B0FE012515E012F0020FD5
+:1042000002D011F0020F06D012F0040F0CD011F002
+:10421000040F05D008E02620FEF79EFE022503E0ED
+:104220002720FEF799FE0425FEF792FD94F85C0026
+:10423000284384F85C0094F8610040B194F857007A
+:10424000012808BFFFDFBDE8704000F067BA1EB16B
+:1042500002210020FEF7F4FE94F865008048FFF785
+:1042600066F894F85700052809D2DFE800F0030348
+:104270000309030001210846FFF71BF900E0FFDFF7
+:1042800094F8580094F85C1030EA01014FF00100F6
+:1042900002D07649087070BD94F85710012912BFFA
+:1042A00084F86100002184F85C10F2E710B5FFF794
+:1042B00033F86E48007840B96D4890F8620020B13C
+:1042C0000020FFF789FF002010BDFFF797F8FFF7E8
+:1042D00089F8FEF7ABFFFFF70EF8FFF725F80C2083
+:1042E00010BD6249012048707047614981F866003D
+:1042F000704770B5002502F07AFE68B14FF49670F1
+:10430000FEF742FE594E3078012809D0022801D02C
+:1043100003282ED0FFDF70BDBDE8704000F0FEB96D
+:10432000534C94F85700032823D094F8670018B131
+:10433000FEF79BFBFFF76EF84B48FEF7F8FF94F88B
+:104340005700012818BF04280AD094F869000128F2
+:1043500014BF0328102545F00E010020FFF7A9F82F
+:1043600094F86800012808BFFFF780F80220307039
+:1043700070BDBDE8704001202EE770B53C4C3B4D50
+:1043800094F8680001281FD094F8670018B1FFF76F
+:1043900052F8FEF77EFB02F02AFEF8B128780228D8
+:1043A00018BFFFDF94F85700012804BF4FF41970BD
+:1043B000FEF7EAFD0120FFF70FFF287800281EBF57
+:1043C00028780128FFDF70BD2A48FFF75AF8002837
+:1043D00004BF7F20A870FFF73FF8D5E7BDE8704025
+:1043E00000F09CB92DE9F05F07464FF00009FEF799
+:1043F000A3FD1E4E82463078022818BFFFDF1C4DF9
+:104400007F2495F8680001283BD0174807F040FE4C
+:1044100083464FF0FF08002F7ED0134807F03FFF80
+:10442000002879D0FEF721FD002875D095F86700A7
+:104430000D4F68B106F01EFF8046FF2808D00146E8
+:10444000F81C06F0F6FE404606F01FFF40EA0A0A96
+:1044500058464FF0010B06285ED20DE040420F0097
+:10446000B00B0020D80B0020000C0020B40000206E
+:10447000180B0020B6000020DFE800F08888880CC8
+:104480008857C848FEF7FDFF002808BFB470FEF744
+:10449000E3FFBAE795F85700012818BF042875D044
+:1044A000BAF1000F05D195F86900002818BF02285D
+:1044B0006CD195F86800012804BF95F88C0000289D
+:1044C00005D0B948FEF733FF0320307060E085F86F
+:1044D0008CB0B8F1FF0F0FD005F18E02511E40468F
+:1044E00006F090FE002808BFFFDF95F88D0040F031
+:1044F000020085F88D000CE03878C0F3801085F854
+:104500008D00D5F8EB00C5F88E00B5F8EF00A5F8E2
+:10451000920005F1940700E038E0B0787F2808BFEA
+:10452000FFDFB0783870B470CBE73878297CC0F3FF
+:1045300080102C46884209D1062204F11101F81C92
+:1045400009F086FC002808BF012000D0002094F864
+:104550005D10414504D1B8F1FF0F18BF012100D112
+:104560000021014394F85700012818BF042800D106
+:1045700049B958B9BAF1000F05D194F8690000287B
+:1045800018BF012802D194F86600D8B14FF0010994
+:1045900095F8670018B1FEF74EFFFEF77AFAB9F109
+:1045A000000F1CBF0120FFF717FE307800281ABF4C
+:1045B00030780128BDE8F09F3078032818BFFFDF6E
+:1045C000BDE8F09F7068D4F8F710C0F80D10B4F88B
+:1045D000FB10A0F8111094F8FD10C174B97D01759D
+:1045E000B7F81710C182B7F819104180B7F81B103F
+:1045F0008180B7F81D10C1806C49083009F005FEB4
+:1046000097F8240000F01F017068017697F82410D5
+:10461000490980F8F41094F86A00002818BFFFDFF9
+:104620004FF0000A204684F86CA074682188A0F836
+:104630006E106188A0F88410A188A0F88610E18827
+:10464000A0F8881094F8F41080F88A1090F85F10A1
+:1046500049B1417A00F10A02012904D1517901F0EE
+:10466000C001402934D090F8601041B1427A00F185
+:104670000A01012A04BF497911F0C00F28D0C0F8FF
+:1046800078A0A0F87CA039780546C1F38011617646
+:10469000D0F8EB00C4F81A00B5F8EF10E183B8F1D8
+:1046A000FF0F1CD0C5F87E00E08BA5F8820005F155
+:1046B00072022F46511E404606F0A4FD002808BF96
+:1046C000FFDF97F8710040F0020087F8710013E0F7
+:1046D000D0F80A108167C189A0F87C10D3E734486C
+:1046E00009F08AFD617E85F87110D4F81A10C5F8BA
+:1046F0007210E18BA5F8761085F86AB086F800A0F4
+:10470000FEF77CFEFEF76EFEFEF790FDFEF7F3FD72
+:10471000FEF70AFE012002F076FD39E770B5FEF7DC
+:104720006DFEFEF75FFEFEF781FDFEF7E4FD214C16
+:10473000002694F8670028B1FEF77DFEFEF7A9F980
+:1047400084F867601C4D2E70FEF7EEFD94F857005C
+:10475000012804D0BDE87040002002F054BD0220C2
+:1047600002F051FD94F86A00002818BFFFDF687856
+:10477000002808BF70BD207C84F87100D4F81100B7
+:10478000C4F87200B4F81500A4F876003C2084F850
+:104790006C0068680088A4F86E00012084F86A0044
+:1047A0006E7070BDB6000020D80B00201F0C0020DA
+:1047B000960B0020180B0020B40000202DE9F041DA
+:1047C000FA4F044600207978F94D4FF0010806466B
+:1047D00011B1012925D007E095F84D10002918BF27
+:1047E00087F8018000D0012079782B2211FB02F19B
+:1047F000294491F8222010431AD02A22A01C2331E8
+:1048000009F052FB66700420207084F802807878EA
+:104810002B2110FB01F0284480F822600120BDE824
+:10482000F08195F82210002918BF7E70DBD1DBE7FC
+:1048300095F87800D0B1D5F87900C4F80200D5F821
+:104840007D00C4F80600D5F88100C4F80A00D5F848
+:104850008500C4F80E0095F88900A07466701120D8
+:10486000207084F8028085F8786011E028780128AB
+:104870001CBF0020BDE8F08166701220207020224D
+:10488000A91CA01C09F010FBA6712E7085F8A86069
+:104890000120BDE8F081C6480178002914BF808856
+:1048A0004FF6FF7070472DE9F041C14C064694F871
+:1048B0002200002818BFBDE8F081304607F0E8FB71
+:1048C000014601250020072938D2DFE801F00A045B
+:1048D00007373737090084F8245009E0032000E047
+:1048E000022084F8240004F12D01304607F031FC49
+:1048F00084F82C0094F8AD0018B1FEF7EAF801280E
+:1049000020D0304607F0EDFB84F8250004F12601A5
+:10491000304607F0C8FB00BFA44E04F14C073078C6
+:104920007F2808BFFFDF307838707F20307084F830
+:104930002250BDE8F041032001F0A2BC84F82C0015
+:10494000BDE8F081FEF708F904F12602511E06F0D9
+:1049500059FC002808BFFFDF94F8251041F0020140
+:1049600084F82510D8E710B5002001F0F2FB904C38
+:10497000A0B1FEF7C8FC00210120FEF761FB04F1A5
+:10498000BC00FEF7D4FCD4F8B400FEF7D3FC94F8D6
+:104990009C00032818BF02281FD022E0FEF72EFD3E
+:1049A000FEF720FDFEF742FCFEF7A5FC94F8AD00F3
+:1049B00030B1FEF740FDFEF76CF8002084F8AD0042
+:1049C000012084F8B800022084F8B000FEF7ACFCA7
+:1049D000BDE81040002001F053BC01210020FEF78B
+:1049E00068FDFEF743FD94F8AD0018B1FEF73DF801
+:1049F000FEF710FD032084F8B00010BD6C490028BC
+:104A0000B1F8BA202DD0FF2A0CD24FF6FF7000EA81
+:104A10004200A1F8BA00FF2888BFFF2002D900BFDA
+:104A2000A1F8BA0061484268012A12BF002A0D228B
+:104A30004260D243C2EBC20303EB021291F8B930D9
+:104A4000DB4303EB830CCCEB83131A444260900CE2
+:104A5000B1F8BA20B0FBF2F302FB130081F8B90001
+:104A60007047012ADED95008A1F8BA0008BF01201A
+:104A7000D8D1D5E770B54E4C94F8B000022819BFD4
+:104A800094F8B0000128002005461CBF0C2070BD22
+:104A90002B2101FB004181F82250401CC0B20228AA
+:104AA000F6D3257094F8AD0028B1FEF7C4FCFDF7ED
+:104AB000F0FF84F8AD5084F8A85084F8A95084F829
+:104AC000AC50012084F89700394884F89C5084F851
+:104AD000AF5040F2011120F8941F8170002070BD8A
+:104AE00070B5334C002584F8B050012684F8B060CE
+:104AF00094F8B00002281BBF94F8B00001280020F1
+:104B0000FFDF18BF70BD2B2101FB004181F822504F
+:104B1000401CC0B20228F6D3257094F8AD0028B12D
+:104B2000FEF789FCFDF7B5FF84F8AD5084F8A85076
+:104B300084F8A95084F8AC5084F897601C4884F835
+:104B40009C5084F8AF5040F2011120F8941F8170FE
+:104B500070BD2DE9F041164C05460C2794F8B000C5
+:104B600001281FBF94F8B00002280C20BDE8F08196
+:104B7000FEF7D2FBFEF705F9FEF7EAF894F8940089
+:104B80000126002801BF94F89500002894F89600AB
+:104B900000281CBF94F8A900002873D094F89C004A
+:104BA000032807D002280AD00DE00000BC00002036
+:104BB000280C00200521FE4800F07BFE03E00321C5
+:104BC000FB4800F076FE94F8AA00002804BF94F891
+:104BD000AB0000283CD0FBF707FF07463946D4F866
+:104BE000A400FDF72AF8F349B0FBF1F801FB180027
+:104BF00041423846FBF711FFC4F8A400D4F8A000E6
+:104C00004044C4F8A00006F0CCFAD4F8A0108842C2
+:104C10001ED80020C4E9280794F8AB00002818BF6C
+:104C200006F0DBFB94F8AC0000281CBF94F8AA0047
+:104C300000280DD094F88D0004F18E01012804D1D4
+:104C4000487900F0C00040280ED00846FEF7CAFFA1
+:104C500094F88D1004F18E00FEF7FFF894F8B00080
+:104C60000027012817D106E006F0DFFB04F18E01D2
+:104C7000FEF787FFECE784F8B860022084F8B00004
+:104C800009E0FFE794F8B000022802BF84F8B060A2
+:104C90000C20BDE8F08194F89700A0B194F89C0036
+:104CA000032818BF06F022FBC34806F07BFB84F8FC
+:104CB000AD00C248C4F8B450FEF717FBFEF734FB52
+:104CC0003846BDE8F08106F0F0FAEDE770B5FEF782
+:104CD00023FBBB4C94F8B000022803D0FEF724FB62
+:104CE0000C2070BD012084F8B900A4F8BA0002209D
+:104CF000FEF70FFBB348FEF727F9B34B002004F192
+:104D0000940200BF94F8AF10491CA3FB015C4FEA6A
+:104D10005C0CACEB8C0C6144C9B284F8AF10895CBC
+:104D2000012907D0401CC0B20328EBD3FFF71BFEBC
+:104D3000002070BD94F8AF00A449085CFEF70CF9A0
+:104D4000FEF706F8F2E710B5040016BF022C0020AB
+:104D50000120FEF7D7FE002808BF10BD98480021AB
+:104D600080F88C4080F8A910012010BD944981F88A
+:104D7000AC00704710B5924C94F88C00002816BF18
+:104D800002280020012084F88D0004F18E01FEF736
+:104D9000A3FE012084F8A90094F88C00022816BF15
+:104DA00003280121002184F8AB1094F88D0004F150
+:104DB0008E02012804BF527912F0C00F0AD004F10C
+:104DC0008E02012804D1507900F0C000402801D0A3
+:104DD000002000E0012084F8AA00002804BF002978
+:104DE00010BDFBF701FEC4F8A4004AF2B810C4F8E5
+:104DF000A00010BD002816BF022801220022704921
+:104E000081F8972081F89D00704770B56C4D0C4675
+:104E100000280CBF0121002185F8971085F89E001D
+:104E20004FF0080085F89F000BD1002C1ABF022C10
+:104E300001200020114606F0B7F985F89F000828E8
+:104E400001D0002070BD022C14BF032C1220F8D119
+:104E500070BD5B4A032808BFC2F8981082F89C0016
+:104E600000207047564991F89C00032804D001287F
+:104E700018BF022807D004E091F89E00012808BF5F
+:104E800070470020704791F89D00012814BF032847
+:104E90000120F6D1704710B5FEF7B0FAFEF7A2FA7E
+:104EA000FEF7C4F9FEF727FA454C94F8AD0030B18F
+:104EB000FEF7C1FAFDF7EDFD002084F8AD000120FA
+:104EC00084F8B800022084F8B000FEF72DFA002024
+:104ED00010BD3B4981F8B100704710B5FEF78EFA5E
+:104EE000FEF780FAFEF7A2F9FEF705FA344C94F8C3
+:104EF000AD0030B1FEF79FFAFDF7CBFD002084F83E
+:104F0000AD00012084F8B800022084F8B000FEF75C
+:104F10000BFABDE81040002001F0B2B92DE9F84FBE
+:104F2000274DFF2100247F27DFF8A48085F8AE10ED
+:104F3000002800F0D78205F1BC0007F080F930B9F5
+:104F400005F1BC0007F09BF9002800F0CB8295F832
+:104F5000B000194E052880F0C282DFE800F0F0F0C2
+:104F6000F003EF00144807F093F888F8020095F872
+:104F7000970028B9FDF7E0FF002808BF002400D003
+:104F8000012495F8AD0070B106F074F985F8AE0013
+:104F9000FF280CD00146F01C06F04BF995F8AE0046
+:104FA00006F073F9044395F8AE00FF281ED111E016
+:104FB0000C0D002040420F00E40C0020E8E5010049
+:104FC000280C0020EEE50100ABAAAAAAEBE501003F
+:104FD000BC00002095F8970098B195F89C00032834
+:104FE00004D006F0D4F900BF85F8AE0098F80200AE
+:104FF000072880F0B181DFE800F03FAA07FCFCFC45
+:10500000240006F092F9EFE795F8AD0018B1FEF72D
+:1050100012FAFDF73EFDFE48FEF733FA002808BFFE
+:1050200088F80070FEF718FA002C00F03F8195F820
+:105030009C00012818BF022840F03881FEF7F6F8DE
+:1050400068E095F8AD0018B1FEF7F5F9FDF721FD20
+:10505000EF48FEF716FA002808BF88F80070FEF740
+:10506000FBF9002C00F0228195F89C0002284AD020
+:1050700001284FD000F01AB995F8AD0018B1FEF72D
+:10508000DAF9FDF706FDE248FEF7FBF9002808BF54
+:1050900088F80070FEF7E0F9002C00F0078195F821
+:1050A0009C0002282FD0012834D003281CBFFFDF2A
+:1050B000BDE8F88FF178D5F89800827E91421BD137
+:1050C0003179C27E914217D17179027F914213D119
+:1050D000B179427F91420FD1F179827F91420BD118
+:1050E000317AC27F914207D13178427EC1F380117B
+:1050F000914208BF012100D0002195F89E20012A8D
+:105100000ED0E9B1CEE0C348FFF7CDFBBDE8F84FC4
+:1051100000F0F4BABF48FFF7C6FBBDE8F84F22E441
+:10512000002967D100F11A01BA4806F0BCFFB9485E
+:1051300006F0D7FFD5F898104876B3E01BE1CEE132
+:1051400095F8AE0095F89F1088427DD1AAE095F8B9
+:10515000AD0018B1FEF76FF9FDF79BFCAC48FEF708
+:1051600090F9002808BF88F80070FEF775F995F8E7
+:10517000AB0000280CBF4FF0010B4FF0000B4FF0BD
+:105180000009307806F10901C00907D0487900F01C
+:10519000C000402808BF4FF0010A01D04FF0000ABC
+:1051A00095F89C00032806D195F89700002818BFB1
+:1051B00095F89F0001D195F8AE0006F011F8009027
+:1051C00078B1102106F01CFD002818BF4FF0010B2C
+:1051D000BAF1000F05D006F109010098FEF7A0FC16
+:1051E000814695F89C0003280FD0FEF71FF864B3A2
+:1051F00001E0B1E056E0FDF738FE50EA09005BD06F
+:105200008448FFF750FB00F03EB9D5F89800F178DC
+:10521000827E91421ED13179C27E91421AD171793A
+:10522000027F914216D1B179427F914212D1F17938
+:10523000827F91420ED1317AC27F91420AD1317878
+:10524000407EC1F3801101E030E035E0814208BFCB
+:10525000012600D00026B9F1000F05D1BBF1000FE7
+:1052600004D0FDF702FE08B1012200E0002295F80B
+:105270009E00012801D010B10AE03CB908E02EB927
+:1052800095F8AE1095F89F30994201D1012100E0C8
+:1052900000210A420AD0012804BF002ED5F8980048
+:1052A0003FF440AFBDE8F84F00F089BAFDF7BEFF0C
+:1052B000BDE8F84FFFF757BB95F89D00032818BFCE
+:1052C00002287DD1BAF1000F7AD0B9F1000F77D161
+:1052D000504E95F87800002872D1012485F87A4064
+:1052E00095F8AD0018B1FDF7F4FB012823D0304646
+:1052F00006F0F7FE85F87B0005F17C01304606F0EC
+:10530000D2FE304606F0FAFE85F8820005F18301F0
+:10531000304606F0D6FE98F8000005F189067F2891
+:1053200008BFFFDF98F80000307088F8007085F83B
+:1053300078400320A5E0FDF70FFC05F17C02511E2B
+:1053400005F060FF002808BFFFDF95F87B0040F004
+:10535000020085F87B00D4E795F8AD0018B1FEF7A0
+:105360006AF8FDF796FB2A48FEF78BF8002872D101
+:1053700088F80070CFE0274806F08AFE88F802001F
+:105380002548F178427A91421ED13179827A914250
+:105390001AD17179C27A914216D1B179027B9142C8
+:1053A00012D1F179427B91420ED1317A827B9142C6
+:1053B0000AD131780078C1F38011B1EBD01F00E041
+:1053C0004AE008BF012600D00026FDF72FFF98F81D
+:1053D000020004286DD1EEB30D48FEF752F8002804
+:1053E00008BF88F80070FEF737F895F8B800002875
+:1053F0001CBF0020FFF702FB4FF0010985F8B890B1
+:10540000044E95F84D0038BB042085F84F0005E0A8
+:10541000BC000020E40C00200C0D002095F8AD002D
+:10542000A6F1910418B1FDF754FB01282FD03046A6
+:1054300006F057FEFE4981F8500004F1260130467F
+:1054400006F031FE05F15801304606F0AEFE85F853
+:10545000570002E02DE05EE015E01F2884BF1F200A
+:1054600085F8570005F1770498F800007F2808BFF9
+:10547000FFDF98F80000207088F8007085F84D90E4
+:10548000042000F0FDFEBDE8F84FFFF76CBAFDF711
+:1054900063FB04F12602511E05F0B4FE002808BF8C
+:1054A000FFDFE34890F8500040F0020084F8250048
+:1054B000C8E7E048FDF7E5FF002808BF88F800705E
+:1054C000FDF7CAFF95F8B800002804BF0120FFF7D8
+:1054D00095FA85F8B840BDE8F84FFFF744BAFFDF0A
+:1054E000BDE8F88F95F8B000052828BFBDE8F88F13
+:1054F000DFE800F0030303041900F1E795F8AD00BD
+:1055000018B1FDF798FFFDF7C4FACA48FDF7B9FFD7
+:1055100000283FF42DAFFDF79FFFFDF787FEBDE8A4
+:10552000F84FFFF720BAC348FDF7ABFF002808BFCC
+:1055300088F80070FDF790FF95F8B800002804BFC8
+:105540000120FFF75BFA85F8B840FDF76FFEBDE874
+:10555000F84FFFF708BA70B5B54C94F8B0000728BB
+:1055600070D2DFE800F08585858585040D00B2489E
+:10557000FDF7DDFEFDF77AFF042084F8B00070BD72
+:10558000FDF73CFFFDF72EFFFDF750FEFDF7B3FEE4
+:10559000012584F8B850022084F8B000FDF7C4FE5D
+:1055A0002078002818BFFFDF0026A670D4F89800E6
+:1055B0000188A180418861838188A183C088E083BC
+:1055C00094F8B10084F8200094F8AB109B4849B1DE
+:1055D0000178C21CC1F3801121B1517901F0C001E1
+:1055E000402927D094F8AC1041B110F8031BC1F347
+:1055F000801119B1407910F0C00F1BD0904808F00D
+:10560000FBFD00BF94F8AD0018B1FDF762FA012868
+:1056100019D0D4F89800417EE171D0F81A10A16039
+:10562000C08BA081666126832570BDE87040022092
+:1056300000F026BED4F8E700C4F80E00B4F8EB0082
+:105640006082DFE714E0FDF787FA04F10802E11D4C
+:1056500005F0D8FD002808BFFFDFE07940F0020028
+:10566000E071D4F8BF006061B4F8C3002083DBE7C9
+:10567000FFDF70BD70B56E4C94F8B00000250528B2
+:1056800028BF70BDDFE800F03939391B03006948D5
+:10569000FDF7F7FE10B967497F200870FDF7DCFEC3
+:1056A00094F8B800002804BF0120FFF7A7F984F898
+:1056B000B850FDF7BBFDBDE87040FFF754B9FDF7EA
+:1056C0009DFEFDF78FFEFDF7B1FDFDF714FE94F88A
+:1056D000AD0028B1FDF7AFFEFDF7DBF984F8AD5062
+:1056E000012084F8B800022084F8B000FDF71CFE09
+:1056F000BDE87040002000F0C3BD70BD70B5012052
+:1057000000F027FD4A4CC8B104F1E401A1F12800E2
+:1057100006F0F7FC04F1E40694F88D10304606F02C
+:10572000D7FC04F18E01304606F0B6FC94F8AB00CD
+:10573000C0B394F89C0003281FD025E0FDF75EFE5F
+:10574000FDF750FEFDF772FDFDF7D5FD94F8AD00B5
+:1057500030B1FDF770FEFDF79CF9002084F8AD0034
+:10576000012084F8B800022084F8B000FDF7DCFDC9
+:10577000BDE87040002000F083BD94F89700002839
+:1057800018BF94F89F0001D194F8AE0005F04FFEC9
+:10579000050007D00121304606F09AFC2946304624
+:1057A00006F07AFC2548FDF7C2FD01210846FDF709
+:1057B00080FEFDF7E4FD052084F8B00070BD2DE902
+:1057C000F041022000F0C5FC194C0126E0B1012097
+:1057D00000F056FD04F1E401A1F1280006F091FC6F
+:1057E00004F1E40794F88D10384606F071FC04F1DA
+:1057F0008E01384606F050FC94F8AB00B8B194F82E
+:105800009C0003282AD030E0FDF7F8FDFDF7EAFD03
+:10581000FDF70CFDFDF76FFD94F8AD0030B1FDF71D
+:105820000AFEFDF736F9002084F8AD000AE02AE010
+:10583000280C0020BC000020E40C00200C0D0020EF
+:10584000360C002084F8B860022084F8B000FDF720
+:105850006BFDBDE8F041002000F012BD94F8970008
+:10586000002818BF94F89F0001D194F8AE0005F00D
+:10587000DEFD050007D00121384606F029FC294647
+:10588000384606F009FCD4F89800C18A334806F07F
+:10589000B8FCD4F89800017D304806F0B6FC2F48DB
+:1058A000FDF745FD84F8A860062084F8B000BDE847
+:1058B000F08170B50C46054606F0C8FB032C47D0B6
+:1058C000052C18BF70BD0521284606F0C2FB244CEC
+:1058D000D4F8980000F10D01284606F07CFCD4F8BD
+:1058E000980000F11101284606F079FCD4F89800E0
+:1058F000017D284606F089FCD4F89800C18A284624
+:1059000006F07FFCD4F898004188284606F06DFC2C
+:10591000D4F898008188284606F06BFCD4F89800EB
+:10592000C188284606F069FCD4F8980000F1080107
+:10593000284606F081FCD4F89800017E284606F03F
+:1059400066FC94F8B1102846BDE8704006F069BCCA
+:105950002846BDE87040032106F07BBB0C0D0020FB
+:10596000280C00202DE9F047FA4E054684B096F841
+:1059700000040C46DFF8E0A340099AF80014490936
+:10598000884218BFFFDF96F800044009F34991F8F8
+:1059900000144909884218BFFFDFF14F6E1E07F15E
+:1059A0003C0909EB45054FF00008092C80F0CF8039
+:1059B000DFE804F005444E4E49CDCDCD7A000B2EE4
+:1059C000A8BFFFDF35F8020C0621F9F76AF90400D9
+:1059D00008BFFFDF0B2EA8BFFFDF35F8020C2188C0
+:1059E000884218BFFFDF94F8C000002808BFFFDF1F
+:1059F000C7F80480A7F8028021460020C7F810806D
+:105A000006F02AFA616A9830814284BF081A00F1D0
+:105A10008D0821460020C7F8088006F01DFA61882D
+:105A200040F2E24251439830081AA0F20F30F86079
+:105A300004B02046BDE8F04702F0FEBB04B0BDE86C
+:105A4000F04702F078BC04B0BDE8F047FDF7F6BDC2
+:105A50009AF8140DC349400991F800144909884285
+:105A600018BFFFDF0B2EA8BFFFDF35F8020C0621A1
+:105A7000F9F717F9040008BFFFDF0B2EA8BFFFDFFF
+:105A800035F8020C2188884218BFFFDF002201236D
+:105A90002146684600F0CEFC94F8CA006946FBF740
+:105AA00034F904B0BDE8F0870B2EA8BFFFDF35F84E
+:105AB000020C0621F9F7F5F8040008BFFFDF0B2EF2
+:105AC000A8BFFFDF35F8020C2188884218BFFFDF2E
+:105AD00094F8C000042818BFFFDF84F8C08094F851
+:105AE000CA504FF6FF76681E0B28A8BFFFDF09EBF0
+:105AF000450020F8026C94F8CA00FAF75FFF84F8BA
+:105B0000CA80D4F8D000002804BFD4F8CC00786153
+:105B100008D0D4E935121144826911448161D4E975
+:105B20003301C860D4F8CC0000281CBFD4F8D010D2
+:105B3000016105D1D4F8D000002818BFC0F8188042
+:105B40008948007804B0BDE8F047F4F7B3B9FFDF47
+:105B500004B0BDE8F0872DE9F047844D0746E88B97
+:105B60006C68401CE88328784FF00008002808BFC4
+:105B7000FFDF07D0DFF8E8A1042814D0052818BFFC
+:105B8000FFDF40D021462869FAF747FFB86087F861
+:105B9000008001203871A86800F22710F86028788A
+:105BA00004287CD185E00029ECD02E69DAF81410A5
+:105BB00039B38946C9680029FBD1B9F1000F20D05B
+:105BC00099F80000002808BFFFDFD9F81410D9F8B1
+:105BD000040001443046FCF730F8002807DA211AA7
+:105BE0004A1E92FBF4F202FB0406214604E090FBFD
+:105BF000F4F202FB140621468E4288BFFFDF3446D2
+:105C0000C0E74446BEE70029BCD0D5F81890B9F1EA
+:105C1000000F08BFFFDF0026D9F8D410DAF81440CF
+:105C20003046721E5CB1A069884228BF824284BFA0
+:105C3000024626462046E468002CF4D106B9064602
+:105C400009F1C004C9F8D060002E04BFC4F80C806C
+:105C5000CAF8144005D0F068F460E060002818BF6E
+:105C60000461D4F81090C4F81880B9F1000F0ED078
+:105C7000D9F8180048B1D4F814A0504538BFFFDF58
+:105C8000D9F81800A0EB0A00A061C9F81880002E0E
+:105C900008BFC5F8208009D03078002800E00DE06A
+:105CA00008BFFFDF716970680844286240F6B834A5
+:105CB00068E7E88B0A2838BF032000D302207871F8
+:105CC000E88B012806D93846696806F08AF8E98B1E
+:105CD0000844E883B8682861BDE8F0872DE9F04101
+:105CE0001C4C804684B094F800040E461A4F4109BB
+:105CF00097F800044009814218BFFFDF94F80004C0
+:105D00004009164991F800144909884218BFFFDF7D
+:105D100000250122092E154C65D2DFE806F0052981
+:105D200042423D6464185500627322736078002813
+:105D30001CBF04B0BDE8F0810948456005612573CA
+:105D4000A068CD38FEF705FF002818BFFFDF04B0BC
+:105D5000BDE8F08101E000E00BE000E018E000E0C9
+:105D6000340D002019E000E0C40000204C0D00209C
+:105D7000607850B1207B002808BFFFF78CF865736E
+:105D800004B0BDE8F041FAF75EBDA273FEF79EFFD6
+:105D9000002818BFFFDFDAE704B0BDE8F041FDF7E7
+:105DA0004DBC97F8140DF849400991F800144909C1
+:105DB000884218BFFFDF00216846FFF7CCFE694626
+:105DC0004046FAF7A2FFC2E72078052818BFFFDF98
+:105DD000207F002808BFFFDF25772570207DFAF798
+:105DE000EDFD2575B3E7FFDFB1E72DE9F041E74CA5
+:105DF00084B00025207804281FBF207805280C20B7
+:105E000004B018BFBDE8F08101276770607B0026F1
+:105E100090B172B6607B00281CBFA07B002805D023
+:105E2000FFF739F86673A673FAF70DFD62B6207DA9
+:105E3000FBF78FFFD0B913E094F8148003208DF89E
+:105E400004008DF80500FAF7CFFD02904FF0FF3007
+:105E500003908DF8007069464046FAF756FFE6E772
+:105E600020BF207DFBF775FF0028F9D0207F28B1E7
+:105E700026772078052818BFFFDF0C25667026706E
+:105E8000207DFAF79BFD267504B02846BDE8F08119
+:105E90002DE9F047BD4884B00078002818BFFFF70F
+:105EA000A4FF0120BA4E307069460620F8F785FE3F
+:105EB000002818BFFFDF00254FF6FF7718E0029893
+:105EC00000281CBF90F8C010002911D00088B842EB
+:105ED00018BFDFF8C08245D00621F8F7E2FE0400C3
+:105EE00008BFFFDF94F8CA00FBF733FF68B905E08D
+:105EF0006846F8F740FE0028E1D033E020BF94F870
+:105F0000CA00FBF726FF0028F8D084F8C05094F8A8
+:105F1000CA904FF6FF7AA9F101000B28A8BFFFDF56
+:105F200008EB490020F802AC94F8CA00FAF746FDE5
+:105F300084F8CA5069460620F8F73FFE002818BFCB
+:105F4000FFDF0AE0029800281CBF90F8C01000296B
+:105F500003D00088B842BFD104E06846F8F70BFED2
+:105F60000028EFD03570756104B00020BDE8F087DF
+:105F700010B50078884C60B101280CBF40F6C41001
+:105F8000FFDF06D0A06841F66A01884228BFFFDF24
+:105F900010BDA060F6E710B57F4C002320707B4851
+:105FA00003704370037703734373837383610375D3
+:105FB000183843703C304FF6FF7101800522418054
+:105FC00020F8041F521EFAD1180008BFA36005D0A4
+:105FD000002B0EBFFFDF40F6C410A060A06841F6A2
+:105FE0006A01884228BFFFDFBDE8104050E770B566
+:105FF000664C0E4684B02178154600291EBF0C2041
+:1060000004B070BD416A01F29731C0F8D410A061AC
+:1060100090F8C000002818BFFFDF40F2712006FB97
+:1060200000F168430A30C4E90110A1F53D718842CE
+:1060300088BF0846A06056490020086105212170EC
+:1060400060702077E0835548FAF768FC20750028D7
+:1060500008BFFFDFFAF7C8FC206101216846FFF79F
+:106060007AFD207D6946FAF750FE04B0002070BD2D
+:106070004648007800281CBF0020704710B5062055
+:10608000F8F7ACFD80F0010010BD10B53F4C84B0B6
+:106090002278002A1EBF0C2004B010BD40F27122ED
+:1060A000424340F2712048430A30C4E90120A2F57E
+:1060B0003D71884298BF01460020A16060700421B4
+:1060C0002170E0833548FAF729FC2075002808BFC5
+:1060D000FFDFFAF789FC40F6B831FAF79EFC206141
+:1060E00001216846FFF737FD207D6946FAF70DFE6E
+:1060F00004B0002010BD70B5244CA1690160FFF709
+:1061000074FE002300BBA169D1F8D0205AB1D1E9B7
+:1061100035C5AC449569AC44C2F818C0D1E9332CFC
+:10612000CCF80C2005E0DFF868C0D1F8CC20CCF822
+:106130001420D1F8CC20D1F8D010002A18BF11615A
+:1061400002D1002918BF8B61A36170BD104948704E
+:1061500070470F4910B54968002801F1980408BF3D
+:1061600004F5BC7409D0012808BF04F5317404D0CB
+:10617000022814BFFFDF04F5B07404488068A04211
+:106180008CBF0120002010BD19E000E04C0D002064
+:10619000340D0020700D0020C4000020DD5C0100E3
+:1061A00010B5FB4C607828B1D4E90201626805F0B3
+:1061B0003FFEA060D4E9010188429CBF20780028FE
+:1061C00014BF0020012010BD042210B584B00029A6
+:1061D00038D0012901BF032180F8C01004B010BDE0
+:1061E000022928D003291EBFFFDF04B010BD0446DA
+:1061F000408840F2E2414843E6490860D4F8E400B0
+:106200000089E082D4F8E40080792075D4F8E400B5
+:1062100040896080D4F8E4008089A080D4F8E4004C
+:10622000C089E0802046616A05F070FE022084F893
+:10623000C00004B010BD80F8C02004B0BDE810401C
+:10624000FAF701BB0446D2480078002818BF84F84A
+:10625000C02004D004B0BDE81040FAF7F4BA01221F
+:1062600000232146684600F0E5F894F8CA00694624
+:10627000FAF74BFDB4F85000401CA4F85000E9E7D1
+:106280002DE9F041C44F0025C44C397884B005286D
+:1062900080F0B780DFE800F0031363AFAF00E58361
+:1062A0000846F3F707FE6078002869D100216846A8
+:1062B000FFF751FC207D6946FAF727FD60E0DFF823
+:1062C000D082206940F2E243D8F804100844A16962
+:1062D00000F251604A88C03102FB03F5D8F814205F
+:1062E0008A4208BF002614D0216AFBF7A6FC0028CA
+:1062F00007DA291A4A1E92FBF5F202FB0506294627
+:1063000004E090FBF5F202FB150629468E4288BF99
+:10631000FFDFB868864208D2A06940F27122418846
+:10632000C1824A4306EB420605E040F2E240B6FB7A
+:10633000F0F0A169C882A06905210175C08A6FF4D7
+:106340001C71484306EB400040F63541C8F8100088
+:10635000B0EB410F28BFFFDF04B0BDE8F081E5835B
+:106360000846F3F7A7FD01202077A0692169C0F84E
+:10637000C41080F8C0502178052918BFFFDF06D06F
+:10638000FAF761FA6573A57304B0BDE8F0810028DF
+:1063900008BFFFDFA06990F8C000002818BFFFDF2A
+:1063A000A06990F8CA00002818BFFFDF7C48FAF700
+:1063B000B5FAA169064681F8CA000F88401E0B286D
+:1063C000A8BFFFDF774800EB460020F8027CA069F9
+:1063D00090F8CA00002808BFFFDF002301226846AA
+:1063E000A16900F027F8A069694690F8CA00FAF799
+:1063F0008CFCA561C4E704B00846BDE8F041F3F7A2
+:1064000059BDFFDF04B0BDE8F081704700B5604AB8
+:1064100059B1012908BF401E07D002291CBFFFDF68
+:1064200000BD5188491C5180C01F506000BD5B48B1
+:10643000007870472DE9F05F05460C46488840F229
+:10644000E24100FB01FBE08A002600FB01FA94F820
+:106450005B0099461746082816BF07284FF0010829
+:106460004FF00008B9F1000F03D00121204602F0DF
+:1064700046F894F8C00040B101282FD0022815D06A
+:10648000032818BFFFDF29D038E0002F08BFFFDF47
+:106490003F4E7068002808BFFFDF70683169C01D7B
+:1064A00008440AF25D414618012014E0DFF8E0B02C
+:1064B000791EDBF80400084308BFFFDF3548006899
+:1064C00000EB0A0637B1DBF8040000F20F30B042EF
+:1064D00088BFFFDF032084F8C0000EE05E4667B18E
+:1064E0002B4F786818B97888002818BFFFDF7868C4
+:1064F00000F20F30B04288BFFFDF06B9FFDF314640
+:10650000D4F8C400FAF789FAC4F8C400A8600020DF
+:10651000287001272F71204602F0D2F8A8F101015E
+:10652000084208BF6F7106D094F8C00001280CBF64
+:10653000022003206871606A00F5E570E86039EABE
+:10654000080008BFBDE8F09F3146284605F049FC29
+:106550001FFA80F8204602F0B3F840450FD8804675
+:106560006F7106FB08F1D4F8C400FAF756FAA86078
+:106570003146284605F035FC40441FFA80F8414674
+:10658000204601F0BCFFA868C4F8C400BDE8F09F35
+:10659000340D0020C8000020C40000204C0D002055
+:1065A00065590100700D0020F948C07E7047F94818
+:1065B00040687047F848C07E70472DE9FF4FF44FA0
+:1065C00083B05FEA0309786A3C6805682069009037
+:1065D000B5F8D6A0D7F820801CBF94F83400002866
+:1065E00003D007B00220BDE8F08FB5F85010059831
+:1065F000401A1FFA80FBB9F1000F19BF04F13806E9
+:1066000004F148003E1D05F1D000019003203071D7
+:106610000398002834D0012800F0E28002287FD0BF
+:10662000032818BFFFDF00F0198100BFB9F1000F88
+:106630001EBF30790328FFDF616A7869FAF7EDF948
+:10664000B060D4E90710814287BF019908600198C2
+:1066500001600198696A0068084400F24F10F06018
+:10666000B5F8C0100598081A00B2002840F335812B
+:106670000398022818BF032040F0308100F02DB9A4
+:10668000B8F1000F08BFFFDFE98A40F271204843EC
+:1066900040F2E24101EB400204990020002906D0BB
+:1066A000BE4801FB02F1B1FBF0F000F101006061B6
+:1066B000698840F2E24201FB02F3049A4FF00001C4
+:1066C00006D0B64902FB03F2B2FBF1F101F1010180
+:1066D000A16108F101016162EA8A40F2712302FBC3
+:1066E00003F2C0EB420202F237420A446262297DA1
+:1066F00040F2E24311FB03F101EB400000F2151000
+:10670000E0612062A2EB0800A549A0F10100091890
+:106710008CD2B0F5387F00E002E098BFFFDF57E091
+:10672000E98A40F271226068514300EB410204980B
+:106730000021002806D000FB02F19848B1FBF0F0E0
+:1067400000F101016161688840F2E24100FB01F261
+:1067500004994FF0000006D0904801FB02F1B1FB14
+:10676000F0F000F10100A061B8F1000F08BFFFDFF9
+:10677000BAF1000FE98A40F27122606801FB02F170
+:1067800000EB4100616918BF401A24D06062A26822
+:106790002168606901FB0200297D40F2E24211FBA1
+:1067A00002F101EB400000F21310E0616988521021
+:1067B000A0695143C0EB4100A0F547702062606AB8
+:1067C000A0EB0800A0F5AA7176484018BFF42EAFE0
+:1067D000012030712AE7411A00980844D338D5E7E0
+:1067E000BAF1000F08BFFFDF698840F27122514300
+:1067F000A0690AEB0B02C0EB410101FB0BF16162E6
+:10680000A368D4F814C0D21AD4F800A0521E0AFB10
+:1068100003C302FB00302A7D40F2E24312FB03F285
+:1068200002EB400000F21310E061A1F54770206216
+:106830005D48406800283FF4F9AE4FF0010AB8F116
+:10684000000F08BFFFDF606AA0EB0800A0F5AA7187
+:106850005448401838BF86F804A0E7E6698840F23B
+:106860007122A0695143C0EB410000FB0BF0606254
+:106870000098BAF1000F25D0002818BFFFDF0AEBFF
+:106880000B00A1690022484302EB400000F2131004
+:10689000E061688840F271225043C1EB4000A0F5EE
+:1068A000477020624048406800283FF4BFAE616AEC
+:1068B0000120A1EB0801A1F5AA723A49891838BF55
+:1068C0003071B3E6002814BFB8F1000FFFDF616A32
+:1068D0000098D33808446062D1E7002070711098A6
+:1068E00080B3B5F8E81000290CBF0020B5F8EA0025
+:1068F000A5F8EA0095F8EC20401C504388420AD2E3
+:106900007079401E002806DD01207071B5F8EA009C
+:10691000401CA5F8EA0086F80090B9F1000F1CBFF2
+:1069200094F8340000287FF45CAE89F0010084F80C
+:106930003500387FF97EBA7E914219D03146FAF798
+:10694000E4F91AE0FFE7698840F27122A069514337
+:10695000C0EB4101304605F044FA0004000CDAD0E7
+:106960001199002918BF0880012007B0BDE8F08FF9
+:106970000020F876B8763860786207B00020BDE86D
+:10698000F08F70B5084D0929D5E9003270D20DE0BD
+:10699000880D0020E8000020B00D002040420F00CC
+:1069A000DBF7FFFFF4F8FFFFD8000020DFE801F07D
+:1069B000056178807493935D8F0000201062D17E12
+:1069C000042953D2DFE801F05252024A516A0C689E
+:1069D0001168C88111680861106890F8350040B9E5
+:1069E000FAF702F869680968096CFBF726F90028CC
+:1069F0001BDC686801684A8EB4F850108A4207D1DF
+:106A0000B4F8C420511AA4F8C610A4F8502006E027
+:106A1000511AA4F8C6100168498EA4F850100268F3
+:106A2000C1681164C168416113E068680168098E3A
+:106A3000B4F85020891AA4F8C6100168098EA4F889
+:106A4000501001680A6CC2600A6C4261886CC4F81C
+:106A5000D0002046BDE8704003F086B9D068506190
+:106A6000FDF797FA002818BFFFDF70BDFFDF70BD8C
+:106A700031E0D07E04280DD2DFE800F00C0C0206D5
+:106A8000BDE8704003F086BAFDF710FC002818BF7F
+:106A9000FFDF70BDFFDF70BDBDE87040FCF7CEBD0D
+:106AA000D87E02280FD0D87E032818BFFFDF06E06B
+:106AB000D87E022807D0D87E032818BFFFDFBDE8A4
+:106AC000704000F023BCBDE8704000F077BCBDE82A
+:106AD0007040F9F773BFFFDF70BD2DE9F047002666
+:106AE000F74DF84F82460C464FF0010909295CD258
+:106AF000DFE801F005495454495B5B545400686871
+:106B0000DFF8C083002818BFFFDF21465046C5F8D4
+:106B10000480FFF736FFF87E022818BFBDE8F08733
+:106B20006868D0F80080406A0568F9F740FF6A8815
+:106B300040F271235A43D8F81810B728C1EB42012C
+:106B4000A1F1AB0A8CBF0446B7242946012005F009
+:106B500083F92044AAEB0000A0F201342946012069
+:106B600005F07AF9696A9C30814288BF0E1AC8F82C
+:106B70002C40A64238BF3446C8F82840386880F810
+:106B80003490BDE8F0875046FFF7FBFEF87E022800
+:106B900004BF386880F83490BDE8F08750462F6015
+:106BA000FFF7EFFE2E60BDE8F087FFDFBDE8F0875E
+:106BB0002DE9F041C24C07460D4609291ED2DFE8F7
+:106BC00001F005101414101D1D1414006068BE4E51
+:106BD000002818BFFFDF294638466660BDE8F0414F
+:106BE000CFE63846BDE8F041CBE6B74820603846EE
+:106BF000FFF7C7FE00202060BDE8F081FFDFBDE8A1
+:106C0000F081F0B5AF4985B00026CA7EAC4C032AAE
+:106C100003D02831CA7E032A64D10025216000B345
+:106C2000012806BF03208876FFDF0AD02068002EE7
+:106C300005604562256055D0A448456005B0002038
+:106C4000F0BD2068C17E29B1C17E827E914208BF1D
+:106C500020BFF6D0C17E00290CBF01260026857614
+:106C6000E4E70026032708468F76C97E032904D06F
+:106C7000C07E002808BF012631E00120FDF735FB6A
+:106C80002068007F002808BFFFDF2068067F8DF89E
+:106C900004708DF80570F9F7A7FE02904FF4FA70B2
+:106CA000039001208DF8000069463046FAF72DF870
+:106CB0002068007FFBF74DF830B920BF2068007FC7
+:106CC000FBF747F80028F8D02068007FF9F776FE38
+:106CD00020680577C57685760560012645622068BF
+:106CE0008576A3E705B00C20F0BD10B5754800F01F
+:106CF000EDFB754800F0EAFB754900200873734905
+:106D000048707049486101F1280250618876907698
+:106D10006B494860086010BD2DE9F0416D4E054695
+:106D200096F800046C4C400994F800144909884214
+:106D300018BFFFDF96F800044009684991F8001475
+:106D40004909884218BFFFDF94F8140D40096449CF
+:106D500091F800144909884218BFFFDF61480024F8
+:106D60000570584DEC76AC7605F12806F476B476CD
+:106D70000121103000F10807017104606C62746237
+:106D80002C60346005F150087C6088F83740284654
+:106D900000F09CFB05F1280000F098FB88F80C40FF
+:106DA0007C706C617461AC76B476A7F110004460BD
+:106DB0000460BDE8F0814C49087170472DE9F84343
+:106DC00040490546CA7E3E4C01F12800002A04BF16
+:106DD000C27E002A72D0C97E022907BFC17E002967
+:106DE0000C20BDE8F88320604048F9F797FD216842
+:106DF0000877364845602168086014384862ADB1AC
+:106E0000012105F1EC00FBF747FA0620F7F7F4FE45
+:106E100006460720F7F7F0FE95F8EC103044B1FB7A
+:106E2000F0F200FB1210401C85F8EC002068007F97
+:106E3000002808BFFFDFF9F7BAFD2D49091838BF50
+:106E400040F2F65000F26B1087B220680326C67637
+:106E5000FCF778FF21680861FCF798FF00254FF0E8
+:106E6000010800284DD0FCF791FF21684A6A1060A4
+:106E70000868012180F800806846FBF798F99DF8C2
+:106E8000000042F210710002B0FBF1F201FB1200AF
+:106E90000744F9F7A9FD3946F9F7BFFD2168C86035
+:106EA0002268167256721571107FD37E111D92F8EA
+:106EB0001AC0634532D0F9F728FF33E01AE000002A
+:106EC000D8000020880D0020B00D0020E800002030
+:106ED000D80D002001E000E00BE000E018E000E049
+:106EE00019E000E0D0000020E0000020B16B0100BC
+:106EF0000AFAFFFFFA482160F9F710FD21680877C8
+:106F000077E7F9F771FD3946F9F787FD2168C86021
+:106F100008680570086880F80180C1E7D576957625
+:106F200015605562206805830020FDF7DEF900201A
+:106F30002560BDE8F88370472DE9F041E94F82B044
+:106F4000F97E19B907F12801C97E19B102B00C20E8
+:106F5000BDE8F0810221F976E34EE44D3E607D62AA
+:106F6000002428603473DFF88883297990F8F420AE
+:106F7000438838F8111038F8122011440A04120C12
+:106F8000214605D002FB03F1DA4AB1FBF2F1491CBC
+:106F90008AB2416A05F025F800940194296828799D
+:106FA000002391F8F41038F810001A4638F8111040
+:106FB000084481B21846FFF700FB002818BFFFDF26
+:106FC000B4600120346030737486348686F83640AD
+:106FD0002868B0F85010491EA0F850103C8302B049
+:106FE0000020BDE8F081C04981F837007047C248F1
+:106FF00010B540680124817E032908BF002409D010
+:107000000168497831B1006ABC49884284BF0024D4
+:10701000FDF767F9204610BD70B5B7484468206891
+:10702000C189491CC1812268D2E90A0192F837203E
+:10703000256A002A1CBF2A4604F0FAFE2168854210
+:10704000886205D82068007B01281CBF012070BD24
+:10705000002070BD2DE9F043A74CA24883B020600A
+:10706000416A006800260D6880F8346095F8CE10FB
+:10707000002904BF007B032856D1F9F7B5FC01466F
+:1070800020684069FAF7D9FD00F2617000284BDDF5
+:10709000216840F271274A6A0B681268D3F818C059
+:1070A00052887A43CCEB4202B0FBF2F0B5F85020A4
+:1070B000401C104418860868B5F8C420018E511A87
+:1070C00009B2002930DD012180F83610B5F87600CC
+:1070D000B5F87410DFF81882401AB5F85010401E49
+:1070E000084487B20DF1080917E0516A097938F8A8
+:1070F0001110CDE90069028E95F8F430007B38F864
+:107100001330194489B20123FFF757FA60B10128FF
+:107110000ED0022818BFFFDF06D022681068018E4B
+:10712000791A09B20029E0DA266003B0BDE8F083DD
+:1071300020680068018EBDF8082011440186ECE744
+:1071400070B56D4C0025062861685AD2DFE800F062
+:10715000141C030E200D002000F0F5F96068C576C0
+:1071600085760560456268B1656070BD2068C5764A
+:1071700085760560456270BD012000F0E4F9606825
+:107180000028F1D1FFDFEFE709680320087370BD25
+:10719000486A0A680068936913604288096840F287
+:1071A000E2435A434A60B0F81011C18290F80E11C0
+:1071B0000175B0F812114180B0F814218280B0F846
+:1071C0001621C280494A4A4B92F804C0126833F82B
+:1071D0001CC092F8F42033F81220624413041B0CF4
+:1071E0004FF0000204D0434A5943B1FBF2F14A1C6C
+:1071F00092B2416A04F0F5FE6168022009680873E2
+:1072000070BDFFDF70BD70B53B4D002470B101282B
+:1072100012D002281CBFFFDF70BD00F0F2F96868D1
+:10722000C47684760460446220B924E000F0E9F971
+:10723000686800B36C6070BD686801684C70C476A3
+:1072400084762F4E046044620021706804F048FA8E
+:10725000706880F80A4180F80B41FFF76DFE002846
+:1072600018BFFFDFF9F7EFFA26486C600078F2F7F5
+:1072700021FE6C6070BDFFDFDCE71F494968CA7EF4
+:10728000022A18BF70470A68D389002B18BF7047BD
+:1072900010610A682838936A034493620968CA6ACD
+:1072A0001044C8627047144A00B5526841B10129C0
+:1072B00008BF401E04D0022916BFFFDFC01F00BD5B
+:1072C000106200BD1048C07E00281CBF002070471F
+:1072D00010B50720F7F782FC80F0010010BD000018
+:1072E000DB6A0100880D0020D80D0020E00000209E
+:1072F000F2E5010040420F00D8000020CF821300C9
+:10730000E8000020D0000020B00D00202DE9F84357
+:10731000DB4D4FF00308002728680126041D80F884
+:107320000880077100684078012836D0012168463E
+:10733000FAF73DFF9DF8000042F210710002B0FB29
+:10734000F1F201FB12002968496A09680E183146FA
+:10735000A068F9F762FBA0603146204604F041FDC9
+:10736000461C2868018B0A299CBF31440183C5490A
+:1073700088421CBF018B0A2992BF84F80580022134
+:107380006171027FC37E214690F81AC063450FD019
+:10739000BDE8F8431046F9F7B8BC4FF47A71A0681D
+:1073A000F9F73BFBA0600021204604F01AFDD8E766
+:1073B000C776877607604762BDE8F8832DE9F04716
+:1073C000AF4E84B03068416A04680D6894F8351097
+:1073D00039B1618EB5F85020914202BF407A002841
+:1073E000FFDFF9F701FB3268526901461046FAF7F0
+:1073F00024FC31684FF0000900284A6A126808BF6F
+:1074000048460AD00B68528840F2712C9B6902FBF7
+:107410000CF2C3EB4202B0FBF2F0B5F85020638EE1
+:1074200002EB000C6345AEBF581C401C1044608644
+:1074300094F8360030B9608EB5F8C420904204BF8D
+:10744000401C6086088B904F401C0883B5F876007E
+:10745000B5F874100DF1080A401AB5F85010401E26
+:1074600008441FFA80F819E03068406A007937F85C
+:107470001000CDE9009A95F8F41037F8111008447F
+:1074800081B2207B0023FFF798F8002804BF04B0E6
+:10749000BDE8F087012818BFFFDF11D0628EA8EB8E
+:1074A000020000B20028DFDA082085F86A00012017
+:1074B00085F8690004B02846BDE8F04702F07CB9C1
+:1074C000608EBDF8081008446086E7E72DE9F047B4
+:1074D000DFF8B8816A4C05464FF01F090027EE7EA1
+:1074E000042E23D2DFE806F02922021D454518BFED
+:1074F000FFDF02202560A8762168C87E28B1C87EFB
+:107500008A7E904208BF20BFF6D0C87E8F760028C2
+:107510001CBF4FF00C0927600CD10F604F62276031
+:107520000BE00120FFF76DFB814600E0FFDFB9F1C2
+:10753000000F02D0E87EB042D1D1E87E002818BF0B
+:10754000FFDFBDE8F087F0B54D4E002583B07268CF
+:107550000128516A0C6847D108794B4B33F8101059
+:10756000106890F80CC00127BCF1030F06D0027B15
+:10757000022A13D0007B012825D035E085601068F1
+:107580000560CDE9007594F8F400B4F8C42033F830
+:1075900010000023084481B2032020E0B4F8D62074
+:1075A0008260CDE9007594F8F400B4F8C42033F893
+:1075B00010000023084481B20220FEF7FEFF71682C
+:1075C00009680F730DE0CDE9007594F8F400B4F884
+:1075D000C42033F810000023084481B20120FEF7D4
+:1075E000ECFF002818BFFFDFF9F72DF9706805835D
+:1075F0000268B4F850105186006880F8365003B025
+:10760000F0BD38B51E4C00200546616809684A780F
+:10761000002A18BF4D702AD1097861B1012168464E
+:10762000FAF7E9FD9DF8000042F210710002B0FB8C
+:10763000F1F201FB12006268516A09680144D068E6
+:10764000F9F7EBF96268D060157103205072107F72
+:10765000D37E111D92F81AC0634502D0F9F755FB8D
+:1076600003E0D57695761560556260680583F9F775
+:10767000EAF807480078BDE83840F2F71BBC000084
+:10768000D8000020B00D0020F2E50100880D002098
+:10769000D000002010B584B004466846FCF7ADF970
+:1076A000002808BFFFDF009804F02DFE032100989A
+:1076B00004F040FE0098017821F01001017021468D
+:1076C00004F09FFE162C80F0E380DFE804F03627FC
+:1076D0000B61E1E1E2199DE1E2E284E1E1E1E1E156
+:1076E000E2E2ABC6FE48806890F8DD10009804F036
+:1076F00007FFFCF795F900281CBF04B010BD80E01F
+:10770000F748806890F8B910009804F049FFFCF73A
+:1077100087F9002840F0DE8000F0DBB8F048806890
+:10772000D0F8E800411C009804F0DBFEFCF778F983
+:1077300000281CBF04B010BD63E0E94CA068D0F87D
+:10774000E4008179009804F0A0FEA068D0F8E4007D
+:107750000189009804F092FEA068D0F8E400418905
+:10776000009804F076FEA068D0F8E40081890098C3
+:1077700004F076FEA068D0F8E400C189009804F017
+:1077800076FEFCF74DF900281CBF04B010BD38E0B0
+:10779000D34CA068D0F8E400011D009804F0B4FEBA
+:1077A000A068D0F8E40000F10C01009804F0B6FEE7
+:1077B000A068D0F8E40000F11E01009804F0B4FEC7
+:1077C000A06800F1B001009804F0BCFEFCF728F9B5
+:1077D000002872D17BE0C24C60690178009804F007
+:1077E000C9FE60698188009804F0C6FE606941881E
+:1077F000009804F0C5FEFCF713F900281CBF04B084
+:1078000010BDFFDF04B010BDB648D0E90010CDE9CF
+:10781000021002A9009804F0C5FEFCF701F9002847
+:107820004BD154E0AE4CA068B0F84010009804F082
+:10783000C3FEA068B0F84210009804F0C1FEA06832
+:10784000818F009804F0C0FEA068C18F009804F0FA
+:10785000BFFEFCF7E5F880BB39E0A14CA068818F42
+:10786000009804F0B1FEA068C18F009804F0B0FE4B
+:10787000A068B0F84010009804F09EFEA068B0F830
+:107880004210009804F09CFEFCF7CAF810BB20E000
+:10789000FFDFFCF7C5F8002808BFFFDF0C2C12BF84
+:1078A000132C04B010BD072C18BF152C12D0012CBE
+:1078B00019BF002C022C04B010BD0021884880683C
+:1078C000A0F87A10012180F87E1004B010BDFFDF0F
+:1078D000F3E7FFDF824900208968A1F8800004B047
+:1078E00010BD2DE9F0437E4C83B0207910F0010FDC
+:1078F00004BF03B0BDE8F083206900230521C578EB
+:10790000A06890F85B20503004F01AFA002818BFE5
+:10791000022D0CD00B2D18BF042D08D0052D1CBF37
+:10792000062D0D2D03D0607840F00800607060785F
+:1079300000281CBF03B0BDE8F0832069C078801E1A
+:10794000142880F00983DFE800F00AF16482E4255E
+:10795000F1F0F157EF9BF1F1F1F1EEEDECEBA068F6
+:107960000023012190F85D20503004F0E9F900284F
+:1079700040F0FF82206904F0C5FDA16881F8DE00B7
+:10798000022081F85D00002081F8820081F87E00ED
+:1079900000F0EFBAA0680023092190F85B20503076
+:1079A00004F0CEF90028A06816D090F85B200023E0
+:1079B0000921503004F0C4F9002800F0E582607815
+:1079C000002840F0D682A16881F8720081F87E001C
+:1079D00081F85B0000F0CDBA90F85B10192940F0F7
+:1079E000C882002180F88F1080F85B10A0F87A1010
+:1079F00080F87E1000F0BDBAA06890F85B100C29EA
+:107A00006DD1002180F85F100F2180F85B1000F02D
+:107A1000B0BAA06890F85B1010297FD1D0F8E410BC
+:107A200000884988814218BFFFDFA068D0F8E400D1
+:107A300000F12601206904F092FDA06800F1B40174
+:107A4000206904F094FD1320A16800F07DBAA268BB
+:107A500092F85B00132861D1D2F8E40002F1A00390
+:107A600000F11E0100220E3004F0FFF8A068002192
+:107A7000C0E92411012180F85F10152100F072B9CE
+:107A8000A06890F85B10132912BF102990F88400A9
+:107A9000002843D102E0607000F06BBA206904F066
+:107AA0007DFDA168002581F8B80081F8835081F838
+:107AB0007E50D1F8E40009884088884218BFFFDF73
+:107AC000A068D0F8E4100D70D0F810110A78002AE0
+:107AD00018BFFFDF40F02B810288CA8004E01DE060
+:107AE000F000002004E60100D0F8102190F8B81052
+:107AF0001171D0F810110D72D0F810210B211170F6
+:107B00000188D0F810014180E078F2F7D3F900F055
+:107B10000EB9A06890F85B10172908D00220BAE7C8
+:107B2000A2E13BE108E121E141E0B8E014E20025F7
+:107B300080F8835080F87E50D0F8E410008849889F
+:107B4000814218BFFFDFA068D0F8E4100D70D0F8B4
+:107B500010110A78002A18BFFFDF40F0E88090F883
+:107B600084207AB180F884500288CA80D0F810113D
+:107B70000D71D0F810210C2111700188D0F810017E
+:107B8000418010E00288CA80D0F810110D71D0F841
+:107B9000102101211172D0F810210B2111700188E0
+:107BA000D0F810014180E078F2F784F9BFE0A068D6
+:107BB0000023194690F85C20503004F0C1F850B909
+:107BC000A0680023082190F85B20503004F0B8F83A
+:107BD000002800F0D9816078002840F0CA81A068B0
+:107BE00090F8860010F0020F17D1206904F0CCFC49
+:107BF000A16881F88700206904F0C8FCA168A1F899
+:107C00008800206904F0C5FCA168A1F88A0091F8F9
+:107C1000860040F0020081F88600A06890F8861087
+:107C200011F0010F15D190F85C2000231946503057
+:107C300004F086F8002808BFFFDF0121A0680422B5
+:107C400080F85C1080F8E02080F882100021A0F815
+:107C50008010A06890F85B10012907D1002180F8FE
+:107C60005B1080F87E10E078F2F724F9A168D1F873
+:107C7000E400098842888A4204BF0178042940F060
+:107C8000788100250570E078F2F714F9A06890F883
+:107C90005B10002908BF80F87E5000F06AB9A06828
+:107CA0000023072190F85B20503004F049F80028A9
+:107CB00000F06A816078002840F05B8169462069A5
+:107CC00004F0B1FCA0689DF80020002590F88C100D
+:107CD000114001F02F0180F88C1080F87E50D0F810
+:107CE000E41000884988814218BFFFDFA068D0F8FF
+:107CF000E4100D70D0F810110A78002A18BFFFDFC9
+:107D000015D10288CA80D0F810110D71D0F8101169
+:107D1000009A8A60019ACA60D0F810210621117079
+:107D20000188D0F810014180E078F2F7C3F8A0682C
+:107D300080F85B5000F01DB9A0680023092190F87D
+:107D40005B20503003F0FCFF002800F01D816078BC
+:107D5000002840F00E81A068002180F8721080F8A1
+:107D60007E1000BF80F85B1000F003B9A06800230C
+:107D7000194690F85C20503003F0E2FF002800F034
+:107D800003816078002840F0F480A0680021A0F80A
+:107D90008010012180F882100B2162E0A06800238E
+:107DA000194690F85C20503003F0CAFF00287CD0C0
+:107DB000206904F019FC28B3206904F00DFC064684
+:107DC000206904F00BFC0546206904F009FC074615
+:107DD000206904F007FCA1688F86CE8608874D874E
+:107DE00091F88F0000281CBF91F85B00192830D053
+:107DF0006846FBF728FE40B3009804F028FB1428DF
+:107E00001DD022E0A0680023194690F85C20503075
+:107E100003F096FF002873D06078002871D12069A4
+:107E200004F015FBA16881F8B900052081F85C0019
+:107E30000020A1F88000012081F8820099E0A1686B
+:107E4000002081F87E00FBF70DFEA168002081F87C
+:107E50008F00A0680021A0F88010012180F8821016
+:107E60001A2180F85C1084E0A06800230A2190F8B1
+:107E70005B20503003F064FFB8B1206904F0B4FB1C
+:107E8000E8B3206904F0ACFB0646206904F0AAFBC5
+:107E90000546206904F0A0FB0746206904F09EFB1C
+:107EA000A168B1F82C80CB8D00E050E0B1F830C073
+:107EB0004A8E8E86CF860D874887B1F83C90B945AB
+:107EC00098BF4F468F85B1F84090B14598BF4E4658
+:107ED000CE85B1F83E90814598BF48460886B1F8F6
+:107EE0004290A94598BF4D464D869E4238BF1E46DA
+:107EF000CE85954238BF15464D86474502E01DE0C8
+:107F000042E036E008BF9E4203D1604508BF95427B
+:107F100014D00A88A1F806218A8DA1F808210A8EBA
+:107F2000A1F80A21CA8D01F1FC00A1F80C21498EAB
+:107F3000418201210172E078F1F7BCFFA1680020C5
+:107F400081F88F0081F87E0081F85B0011E0607895
+:107F500040F0010060700CE0A0680023194690F822
+:107F60005C20503003F0ECFE70B1607800283FF4E4
+:107F700056AFA068D0E926134A1C43F10001C0E9BE
+:107F8000262103B0BDE8F083012084E52DE9F0410E
+:107F9000FD4D04464FF00007687808436870294695
+:107FA0002879D1F808C010F0200F18BFACF8747011
+:107FB00004D1BCF87400401CACF874009CF860005C
+:107FC000012640B99CF85B20002306210CF15000EB
+:107FD00003F0B6FE58B3A88810F4006F07D0A86865
+:107FE00090F86010002918BFA0F86C701FD1A96824
+:107FF000B1F86C00401C80B2A1F86C00B1F86E20A2
+:1080000082422CBF101A00208A88521D824228BF4B
+:1080100081F87260B1F86C00B1F86E20904206D31E
+:10802000A1F86C7081F80261E878F1F743FF2879D4
+:1080300010F0600F08D0A86890F85E1021B980F8A1
+:108040005E600121FEF7C0F81CB900F007FD00F0EA
+:108050006FFBA868A04600F1500490F8DC0030B92E
+:10806000627B00230121204603F06AFE10B1208DBF
+:10807000401C20853D21B8F1000F01D0A17614E00D
+:108080002878022808BF16200ED0012804BFA8684F
+:1080900090F8DE0008D06878A0B110F0140F06D078
+:1080A0001E20A076667640E0A07666763DE010F071
+:1080B000080FE3D110F0030F08BFFFDF2A20A076DE
+:1080C000667632E094F82E0028B1608D411C6185FF
+:1080D000A18D884213D294F8320028B1208E411C21
+:1080E0002186A18D88420AD2208DE18C884203D35B
+:1080F000AA6892F8DC2012B9A28D904203D3222004
+:10810000A076667611E0A07B0028A08C05D088427E
+:1081100009D30820A076667607E0062803D33E2020
+:10812000A076667601E0607E58B1E7722773A77388
+:108130000221A868FEF748F8E878BDE8F041F1F7B9
+:10814000B9BEA868BDE8F0410021FEF73DB88E49F0
+:108150004A788B781A430ED101280AD0087910F09A
+:10816000040F04D0886890F85D00022803D0012035
+:108170007047FEF715B80020704770B5824C054671
+:108180000E46A0882843A08015F0020F04D015F0F9
+:10819000010F18BFFFDFE66015F0010F18BF266161
+:1081A00015F0020F12D0304604F051F9062802D023
+:1081B0000B2830D00AE0A06890F85B10152905D193
+:1081C0000021C0E92611012180F8601015F0800F10
+:1081D0001CBF0820A07015F4806F08BF70BDA16897
+:1081E000B1F8500089880844801D85B2304604F0FB
+:1081F0002EF9012817D0304604F029F9002818BFBD
+:1082000070BDA0682946D0F8E40085803046BDE8FE
+:10821000704004F03EB9A06890F85B100F2908BFC9
+:108220000021D3D1D0E7A0682946A0F8EE5030460F
+:10823000BDE8704004F05DB9F8B5534D0024064622
+:10824000A860AC806C70AC702C700088FBF7D2FB1F
+:10825000A8680088FBF7F4FBB6F8C800A968401CC2
+:1082600082B201F1500003F018FC002818BFFFDFB4
+:108270002746A6F8C840A86890F87E1029B1B0F843
+:108280007A10B0F87C2091422AD290F8821029B15D
+:10829000B0F88010B0F87C20914221D2B0F878205C
+:1082A000B0F876108A421BD290F85E20B0F87400C5
+:1082B000002A3DD0884213D234480090344B354ACE
+:1082C0003146204602F08DF9A8680023052190F878
+:1082D0005B20503003F034FD002818BF02F07DF918
+:1082E000A86890F8F010002908BFF8BD90F8F110C8
+:1082F000002906BF90F88F100029F8BD90F85C1097
+:108300001A2908BFF8BDB0F8F2108187B0F8F41050
+:10831000C187B0F8F61029B1A0F84010B0F8F810F5
+:10832000A0F84210012180F88F1080F8F070F8BD9D
+:108330000628D5D2C0E71448806890F87E1029B18D
+:10834000B0F87A10B0F87C20914219D290F88210DF
+:1083500029B1B0F88010B0F87C20914210D2B0F86A
+:108360007820B0F876108A420AD290F85E20B0F8F1
+:1083700074001AB1884203D202F041BB0628FBD335
+:108380000020014602E60000F00000208D7F010081
+:108390004F8101007B8101002DE9F0410C46074629
+:1083A0001D4616464FF48C712046DDF8188005F006
+:1083B00014FE2780C4F81081C4E93965BDE8F08156
+:1083C000F6F78FBD70B50C4605460621F6F769FC39
+:1083D000002808BF70BDD0F810110A780021072AC4
+:1083E00011D00C2A21D00B2A2CD0062A39D090F893
+:1083F0000221002A48D061700E22227080F80211FA
+:108400006580012070BD617007222270D0F81021B4
+:108410005368C4F802309368C4F8063092896281C8
+:10842000D0F810010170012070BD61700C22227023
+:10843000D0F810215268C4F80220D0F81001017061
+:10844000012070BD61700B222270D0F8102153689A
+:10845000C4F802301289E280D0F8100101700120C6
+:1084600070BD617006222270D0F810215368D2F8D6
+:1084700008C0D268C4F80230C4F806C0C4F80A20A4
+:10848000D0F810010170BCE790F80421C2B161700E
+:108490001322227090F80421002AB2D080F804112F
+:1084A000D0F80621C4F80220D0F80A21C4F806202A
+:1084B000B0F80E21628190F80421002AEED1A0E7E5
+:1084C00090F8FC20002A04BF002070BD61701622C5
+:1084D000227090F8FC20002A93D000BF80F8FC1096
+:1084E000D0F8FE20C4F8022090F8FC20002AF5D134
+:1084F00087E700207047FD4A5061D17070472DE931
+:10850000F0470446481E85B238BFBDE8F087012712
+:10851000DFF8D89304F108084FF0070A5FF000066F
+:10852000B4F8C800401CA4F8C800B4F87400401C9B
+:10853000A4F8740094F8600040B994F85B2000231C
+:10854000062104F1500003F0FBFBD8B1B4F86C0035
+:10855000401C80B2A4F86C00B4F86E1081422CBFAD
+:108560000A1A0022A3885B1D934228BF84F8727008
+:10857000884207D3A4F86C6084F8027199F803006C
+:10858000F1F798FC94F87E0020B1B4F87A00401C12
+:10859000A4F87A0094F8820020B1B4F88000401C5E
+:1085A000A4F8800094F8DC0040B994F85D20002322
+:1085B000012104F1500003F0C3FB20B1B4F87800AE
+:1085C000401CA4F8780094F85B0007281FD1B4F889
+:1085D0005000411CB4F8EE00814262D1D4F8E800AA
+:1085E000411C404605F011FE0221204603F074F9BB
+:1085F00084F85B6084F88E70D4F8E8000078002876
+:1086000008BFFFDFD4F8E8000178491E017094F834
+:108610005B00082845D1B4F85000411CD4F8E400B0
+:10862000808881423DD1D4F810010178002918BF1B
+:10863000FFDF22D12188C180D4F8E4004189D4F839
+:1086400010010181D4F8E4008189D4F8100141813E
+:10865000D4F8E400C189D4F810018181D4F8100164
+:108660000671D4F8100180F800A0D4F81001218818
+:10867000418099F80300F1F71DFC0121204603F029
+:108680002BF903212046FDF79FFDD4F8E400418833
+:108690002088814218BFFFDFD4F8E400067084F818
+:1086A0005B60B4F85000401C691EA4F850008DB205
+:1086B000BFF436AFBDE8F0878C4AC2E906017047C7
+:1086C00070B50446B0F8740094F85E10002908BF35
+:1086D000C0F1020503D0B4F87610081A051F94F80B
+:1086E000720040B194F85B200023092104F150008E
+:1086F00003F026FBA0B1B4F86C6094F8600058B9A0
+:1087000094F85B200023062104F1500003F018FBCD
+:10871000002808BF284603D0B4F86E00801B001F55
+:108720008542C8BF0546002DD4BF0020A8B270BD49
+:108730002DE9F84F6846FBF760F9002808BFBDE84F
+:10874000F88F6A4C6078002818BFBDE8F88FA068E1
+:108750000023012190F85D20503003F0F1FA002849
+:1087600018BFBDE8F88FA06890F8DC10002918BF8A
+:1087700002206CD190F85B2000231946503003F0A2
+:10878000DFFA30B1A06890F87200002818BF1220FC
+:108790005DD1A06890F85B200E2A42D00F2A08BF56
+:1087A0000B2054D0152A08BF062050D000230421E6
+:1087B000503003F0C5FA002818BFBDE8F88FA06854
+:1087C000002590F85C1001294AD0052943D00B29D7
+:1087D00053D001261A2957D0D0F8E4100A78002A7D
+:1087E00000F0DD8049880288914240F0D88090F8FE
+:1087F0005B2000231946503003F0A2FA002877D0FE
+:10880000A068D0F8E4100978022908BF002070D0D1
+:1088100003296FD004296ED0052908BF082068D02D
+:10882000BDE0F9F7E7FC0C2838BFBDE8F88FA06879
+:108830000821D0F8E4001E30F9F7DDFC28B1A0686B
+:108840000421B030F9F7D7FC00B9FFDF0320FEF7B1
+:1088500021FFBDE8F88F0720FEF71CFFA06866E047
+:108860000C20FEF717FFA068A0F8805090F8861043
+:1088700041F0010180F8861059E01320FEF70AFF4D
+:10888000A068A0F8805052E0C18E828FB0F82CA072
+:10889000B0F82E80B0F83090478E914238BF0A462B
+:1088A0008285838EB0F840108B4238BF1946C1854F
+:1088B000038FB0F842C0634538BF9C46A0F832C071
+:1088C000B0F83AB0C38F9B4538BF5B46038641453D
+:1088D00038BF4146C185BC4538BFBC46A0F832C050
+:1088E000524508BF41450AD14B4505E0F000002044
+:1088F00055E029E01FE03FE008BFBC4513D00288E7
+:10890000A0F80621828DA0F80821028EA0F80A2185
+:10891000C28D00F1FC01A0F80C21408E48820E723D
+:10892000E078F1F7C7FA1520FEF7B4FEA06880F8EA
+:108930005C50BDE8F88F90F85F1041B190F860008E
+:10894000002808BFFFDF0A20FEF7A4FE27E0F9F7A2
+:1089500051FC0C2823D3A0680821D0F8E4001E3075
+:10896000F9F749FC28B1A0680421B030F9F743FCBD
+:1089700000B9FFDF0320E7E790F8860010F0030F4F
+:108980000DD10C20FEF786FEA068A0F87A5080F882
+:108990007E6090F8861041F0010180F886106846EC
+:1089A000FBF72BF8002808BFBDE8F88FA06800236C
+:1089B000194690F85B20503003F0C2F9002808BF38
+:1089C000BDE8F88FA06890F8EC10D1B3A1690978E0
+:1089D000B9BBB0F850100A2934D900F108010522BA
+:1089E000E06905F035FA0028A06804BF80F8EC5073
+:1089F000BDE8F88FD0F8E800017869B1411C052284
+:108A0000E06905F025FA002818BFBDE8F88FA068D6
+:108A1000D0F8E800007830B9A068E169D0F8E80043
+:108A2000401C05F0F2FBA068D0F8E8000178491C72
+:108A300001700120FEF72EFEA06880F8EC50BDE822
+:108A4000F88FFFE790F88F1000291EBF90F85C00A8
+:108A50001A2814207FF4FBAEBDE8F88F2DE9F04111
+:108A6000E94C6078002818BFBDE8F08120794FF00C
+:108A7000010710F0040F4FF000050DD0A06890F82A
+:108A80005B00052808BFFFDFA06890F85D10022991
+:108A900004BF277080F85D5020794FF0080610F071
+:108AA000020F00F00B816078002840F00781E06839
+:108AB000C078162880F00181DFE800F04D3C0B798A
+:108AC000FFFF8F1E2BFF5C6E9AFFFFFFFFFFC7FBB0
+:108AD000D7F0A0680023012190F85D20503003F00A
+:108AE0002FF9002840F0EA80A068032180F85D108B
+:108AF00080F87E5000F0DEB8A0680023194690F898
+:108B00005C20503003F01CF9002840F0D28000F0C7
+:108B1000D5B8A0680023194690F85B20503003F0C8
+:108B20000FF9002808BFFFDF0920A16881F85B006A
+:108B300000F0C4B8A0680023194690F85B205030BC
+:108B400003F0FEF8002808BFFFDF0720A16881F8C6
+:108B50005B0000F0B3B8A0680023194690F85B20D2
+:108B6000503003F0EDF8002808BFFFDFA06880F860
+:108B70005B60A3E0A0680023194690F85B205030AA
+:108B800003F0DEF8002808BFFFDFA0680C2180F8A2
+:108B9000837080F85B1091E0A06890F85B000F286C
+:108BA00018BFFFDFA0680E2180F8847012E0A06873
+:108BB0000023194690F85B20503003F0C1F828B923
+:108BC000A06890F88400002808BFFFDFA06810218B
+:108BD00080F8837080F85B1070E0A06890F85B000C
+:108BE000152818BFFFDF1720A16881F85B0065E03A
+:108BF000A068D0F8E41003884A889A4204BF097834
+:108C000004290AD0A0680023194690F85C2050304F
+:108C100003F096F800284CD150E090F85B20002338
+:108C20001946503003F08CF8002808BFFFDFA06819
+:108C300090F8861011F0020F0FBF80F85B7080F87B
+:108C40007E50D0F8E4000570DCE7A06800231946E8
+:108C500090F85B20503003F073F8002808BFFFDF66
+:108C60000A20A16881F85B0028E0A06890F88F00D6
+:108C7000012818BFFFDFA0680023194690F85B2089
+:108C8000503003F05DF8002808BFFFDF1920A1680D
+:108C900081F85B0012E001E00BE00EE0A068002329
+:108CA000194690F85C20503003F04AF8002808BFBD
+:108CB000FFDFA06880F8825000E0FFDF207910F02D
+:108CC000080F0AD0607840B9A06890F85D100329B9
+:108CD00003D10221217080F85D50FEF702FEA078DA
+:108CE00010F0080F14D0A0680023052190F85B2035
+:108CF000503003F025F848B16670A068D0F8101124
+:108D000008780B2808BF0020087001E001F0A5FEDC
+:108D1000A068BDE8F041AFF3008070B5044690F85C
+:108D20005B000025072822D1B4F85000B4F8EE10FB
+:108D3000401C884218BF70BDD4F8E800411C04F103
+:108D4000080005F062FA0221204602F0C5FD84F811
+:108D50005B50012084F88E00D4F8E80000780028E9
+:108D600008BFFFDFD4F8E8000178491E017094F8CD
+:108D70005B00082818BF70BDB4F85000D4F8E410A8
+:108D8000401C8988884218BF70BDD4F81001017852
+:108D9000002918BFFFDF22D12188C180D4F8E40068
+:108DA000D4F8101140890881D4F8E400D4F81011E7
+:108DB00080894881D4F8E400D4F81011C0898881F2
+:108DC000D4F810010571D4F8101107200870D4F8F8
+:108DD0001011208848800C48C078F1F76BF8012109
+:108DE000204602F079FD03212046FDF7EDF9D4F885
+:108DF000E40021884088884218BFFFDFD4F8E400EF
+:108E0000057084F85B5070BDF00000202DE9F04340
+:108E1000F84C83B0207910F0010F04BF03B0BDE817
+:108E2000F083606901230521C578E06890F85C2033
+:108E3000503002F085FF002818BF022D0BD00A2DFC
+:108E400018BF0B2D07D0032D18BF062D03D0607857
+:108E500040F008006070607800281CBF03B0BDE8D7
+:108E6000F0836069C078162880F0F582DFE800F0B2
+:108E70004C260BCEFEFEFDFCFBFEAAC3FAFEFEFE58
+:108E8000FEFEF9F8F7F6E0680123194690F85D2038
+:108E9000503002F055FF002840F0EC82606903F08A
+:108EA00031FBE16881F8F800022081F85D000020C4
+:108EB00081F8820081F87E0000F0DCBAE0680123CE
+:108EC000002190F85C20503002F03AFF002870D06A
+:108ED0006078002840F0CE82606903F00EFBE16804
+:108EE000A1F80C01B1F85020801A00B247F6FE72CA
+:108EF0008242A8BF00285DDD01F58771606903F03B
+:108F0000F3FA0620E16840E0E0680123002190F8D0
+:108F10005C20503002F014FF002860D060780028F8
+:108F200040F0A882606903F0BBFA90B3606903F077
+:108F3000B4FAE168A1F80C01B1F85020801A00B22F
+:108F400047F6FE728242A8BF002833DD606903F055
+:108F50009EFAE16881F80E01606903F093FAE16816
+:108F6000A1F81001606903F078FAE168A1F8120134
+:108F7000606903F079FAE168A1F81401606903F00F
+:108F80007AFAE168A1F81601082081F85C0000F087
+:108F900071BAFFE7E0680123002190F85C205030AF
+:108FA00002F0CEFE28B16078002800F09E8100F02B
+:108FB00061BA14E0282081F86A00012081F8690074
+:108FC00000F058BAE0680123002190F85C2050308E
+:108FD00002F0B6FE18B1607820B100F04BBA012063
+:108FE00000F073B9E0680021A0F88010012180F83A
+:108FF00082100D2106E0E06890F85C100E2908BF91
+:109000000F2156D180F85C1000F034BAE0680123DB
+:10901000002190F85C20503002F092FE20B9E06808
+:1090200090F884000028DAD06078002840F022828E
+:10903000E06800210125A0F8801080F8825000F13E
+:10904000D801606903F077FAE06800F1B001606967
+:1090500003F07CFAE06890F8360108E055E1F4E0AE
+:10906000CAE0DAE02DE0A0E0C7E11DE0F3E100286E
+:1090700018BFFFDFE0680188A0F8381100F59D7186
+:10908000606903F046FAE06800F5A171606903F0D9
+:1090900048FAE06880F83651112180F85C10E078D9
+:1090A000F0F708FF00F0E6B9E06890F85C101429CA
+:1090B00002D0022000F009B9002180F882101821A6
+:1090C000A0E7E0680123002190F85C20503002F016
+:1090D00037FE50B9E0680123082190F85B2050303A
+:1090E00002F02EFE00283FF47AAF6078002840F0AE
+:1090F000C181E06890F8860010F0020F17D1606916
+:1091000003F042FAE16881F88700606903F03EFAF3
+:10911000E168A1F88800606903F03BFAE168A1F812
+:109120008A0091F8860040F0020081F88600E0682D
+:1091300090F8861011F0010F15D190F85C200123F2
+:109140000021503002F0FCFD002808BFFFDF0121A4
+:10915000E068042280F85C1080F80B2180F882100F
+:109160000021A0F88010E06890F85B10012907D179
+:10917000002180F85B1080F87E10E078F0F79AFE0E
+:10918000E06890F80A11042940F07481002580F805
+:109190000A51E078F0F78EFEE06890F85B10002945
+:1091A00008BF80F87E5000F065B9E0680123002117
+:1091B00090F85C20503002F0C3FD00283FF40FAF60
+:1091C0006078002840F056816946606903F0EFF945
+:1091D000E0689DF8002090F88C10114001F02F01FC
+:1091E00080F88C100021A0F88010012180F88210F6
+:1091F000092107E710010020E0680123092190F808
+:109200005B20503002F09CFD00283FF4E8AE60780F
+:10921000002800F0098100F02DB9E0680123002149
+:1092200090F85C20503002F08BFD00283FF4D7AE60
+:109230006078002840F01E81E0680021A0F88010CE
+:10924000012180F882100B21DCE6E0680123002177
+:1092500090F85C20503002F073FD00287DD06069EA
+:1092600003F0C2F980B3606903F0B6F9064660699D
+:1092700003F0B4F90546606903F0B2F90746606986
+:1092800003F0B0F9E1688F86CE8608874D8791F8A4
+:109290008F0000281CBF91F85B0019280BD068468E
+:1092A000FAF7D1FB38B10098C078142803D0E168F0
+:1092B000002081F88F00E0680021A0F880100121D3
+:1092C00080F882101A219DE601E06070D2E0E0682B
+:1092D0000123002190F85C20503002F031FD00287D
+:1092E0003FF47DAE607800287DD1606903F0AFF86F
+:1092F000E16881F8B900052081F85C000020A1F840
+:109300008000012081F88200B4E0E06801230A2196
+:1093100090F85B20503002F013FDF0B1606903F06B
+:1093200063F9E8B3606903F05BF90746606903F02D
+:1093300059F90546606903F04FF90646606903F084
+:109340004DF9E168B1F82C80CB8DB1F830C04A8E70
+:109350008F86CE860D87488700E04AE0B1F83C90C2
+:10936000B14598BF4E468E85B1F84090B94598BF3B
+:109370004F46CF85B1F84290A94598BF4D464D86DE
+:10938000B1F83E90814598BF484608869F4238BF55
+:109390001F46CF85954238BF15464D86464500E0AD
+:1093A0001CE008BF9F4203D1604508BF954215D01D
+:1093B0000A88A1F84A218A8DA1F84C210A8EA1F8C9
+:1093C0004E21CA8D01F59170A1F85021498E018678
+:1093D000012180F82610E078F0F76CFDE1680020AC
+:1093E00081F88F0000E045E081F87E0081F85B00A5
+:1093F00040E0607840F0010067E7E0680123092160
+:1094000090F85B20503002F09BFC0028E06814D0FC
+:1094100090F85B2001230921503002F091FC0028D4
+:109420003FF4DDAD607828BBE168002081F8720070
+:1094300081F87E0081F85B001CE090F85B10192930
+:1094400018D1002180F88F1080F85B10A0F87A10F6
+:1094500080F87E100EE0E0680123002190F85C2087
+:10946000503002F06DFC00283FF4B9AD6078002860
+:109470003FF43BAFE068D0E92612491C42F10002FC
+:10948000C0E9261203B0BDE8F08330B585B00446CC
+:109490006846FAF7B2FA002808BFFFDF009802F02A
+:1094A00032FF0321009802F045FF0098017821F077
+:1094B00010010170214602F0A4FFA01E14286FD2F3
+:1094C000DFE800F00A872288881A874687883530C7
+:1094D000878787878888566FF848C06890F88D100E
+:1094E00021B10621009803F00BF873E090F8F71013
+:1094F000009803F005F86DE0F048C06890F8B910E6
+:10950000009803F04DF865E0EC4DE86800F1E001EB
+:10951000009803F01FF8E86800F1B401009803F028
+:1095200023F857E00621009803F036F852E0E34DA7
+:10953000A8680178009803F01DF8A8688188009851
+:1095400003F01AF8A8684188009803F019F841E080
+:10955000002002900390D94802A9C06890F88C00BE
+:1095600000F0F1008DF80800009803F057F831E0A2
+:10957000D24DE868B0F84010009803F01DF8E86894
+:10958000B0F84210009803F01BF8E868818F00984B
+:1095900003F01AF8E868C18F009803F019F819E091
+:1095A00017E0C64DE868818F009803F00DF8E86871
+:1095B000C18F009803F00CF8E868B0F840100098EC
+:1095C00002F0FAFFE868B0F84210009802F0F8FFE5
+:1095D00000E0FFDFFAF724FA002808BFFFDF0C2CB9
+:1095E00004BF05B030BD072C11D0122C18BF142CAD
+:1095F00014D0022C04BF05B030BD0021AF48C068B4
+:10960000A0F88010012180F8821005B030BDAB4970
+:109610000020C968A1F8800005B030BDA74800212E
+:10962000C068A0F87A10012180F87E1005B030BD26
+:1096300070B50C4605464FF4B071204604F0CDFCE1
+:109640002580002084F8220184F82E0184F8360158
+:1096500084F8440170BDF5F744BC70B50C4605466E
+:109660000721F5F71EFB002808BF70BD90F82221E6
+:109670000021CAB161700722227090F822218AB1BC
+:10968000018480F82211D0F82421C4F80220D0F8F7
+:109690002821C4F80620B0F82C21628190F82221FC
+:1096A000002AEDD1A1702AE090F82E21F2B190F8B5
+:1096B0002E210B2A0CD00C2A18BFFFDF1FD161709E
+:1096C0000C22227090F83021A2700288A2800AE059
+:1096D00061700B22227090F83021A2700288A28063
+:1096E00090F83421A27180F82E1108E090F85A21E8
+:1096F0003AB161700E22227080F85A116580012003
+:1097000070BD90F8362182B1617008222270028803
+:109710006280D0F83A21D0F83E316260A360B0F8A0
+:109720004221A28180F83611E9E790F8442142B144
+:10973000617015222270B0F84621628080F84411D1
+:10974000DDE790F8542192B161701622227090F8F2
+:109750005421002AD3D000BF80F85411D0F85621EC
+:10976000C4F8022090F85421002AF5D1C7E790F8F8
+:109770004821002A04BF002070BD617013222270AE
+:1097800090F84821002ABAD080F84811D0F84A2130
+:10979000C4F80220D0F84E21C4F80620B0F85221B7
+:1097A000628190F84821002AEED1A8E70020704796
+:1097B000424A9060D170704710B5002180F85B106C
+:1097C00080F85C1080F85E1090F8CE00002814BF7E
+:1097D00002200320FDF7B4FC3848C078BDE81040F3
+:1097E000F0F768BB2DE9F047344C07460D46E068BA
+:1097F0000088F5F7CBFB5FEA000808BFFFDF607861
+:109800002843607020794FF0000510F0200FE068C9
+:109810001CBFA0F8745080F8D45004D1B0F8741074
+:10982000491CA0F87410E068012690F8601039B95E
+:1098300090F85C2001230621503002F081FA48B3F1
+:10984000A08810F4006F07D0E06890F8601000293D
+:1098500018BFA0F86C501DD1E168B1F86C00401C35
+:1098600080B2A1F86C00B1F86E3083422CBF1A1A96
+:109870000022B4F806C00CF1050C624598BF81F8CF
+:109880007260984206D3A1F86C5081F85A61E07872
+:10989000F0F710FB20794FF0020910F0600F14D0A0
+:1098A000E06890F85E1011B1032909D00DE080F84E
+:1098B0005E600120FDF744FC07E00000100100207D
+:1098C00080F85E900120FDF73BFCE06890F85E10A8
+:1098D000012905D1A18811F4807F18BF80F85E901E
+:1098E000002F7DD1A18811F4007F18BFA0F8E850A7
+:1098F00004D1B0F8E810491CA0F8E81000F04CFBC7
+:1099000000F0F7FC01F09FF80028E06818BFA0F80D
+:10991000C85004D1B0F8C810491CA0F8C81001F014
+:1099200095F840B1E16891F8D40002289CBF401C32
+:1099300081F8D40004D8E06890F8D400022806D951
+:10994000E068A0F8C850A0F8CA5080F8D450E06889
+:109950000123002190F85C20503002F0F1F920B989
+:10996000E06890F85C0007285AD1E06801230021E4
+:1099700090F85B20503002F0E3F9002850D0E06806
+:109980000123002190F85D20503002F0D9F9002821
+:1099900046D0E06890F85E10022904BF90F8D40029
+:1099A00000283DD14046F4F782FDC0B3FAF76CF8C9
+:1099B000A8B3E268B2F8C200012831D982F8CD60BC
+:1099C000B2F87600B2F87410831E9942A8BF012144
+:1099D00002DA401A401E81B2B2F8C800E38800E003
+:1099E00035E098422FBF0120181A401C80B28142F6
+:1099F00088BF0146012908BF82F8CD5092F8F000D7
+:109A000090B1B2F8CA00B2F8F22090422FBF012004
+:109A1000101A401C80B2814288BF014604E0FFE773
+:109A2000E068012180F8CD50D4F80CC0BCF850207B
+:109A3000501880B2ACF8C4009CF85E10002918BF22
+:109A400001290ED002291CBF0329FFDF0CD0A088FA
+:109A5000C0F340200028E06818BFA0F8D6506DD1B0
+:109A600065E0ACF8C000F2E79CF85D1003292CD04B
+:109A70009CF85C100829F4D0BCF87410BCF876008F
+:109A80008A1C4FF0000890420AD3401A801E1FFA29
+:109A900080F8B8F1000F1CBFA8F101001FFA80F890
+:109AA0009CF8720060B19CF85B20012309210CF145
+:109AB000500002F045F9002808BF4FF000082FD0F1
+:109AC000E06890F8601099B90AE0BCF874100329B6
+:109AD000C7D3BCF876001044401CACF8C000B6E711
+:109AE00090F85C2001230621503002F029F980B162
+:109AF000E2680020B2F86E10B2F86C20931C994214
+:109B000003D3881A801E18BF401E404538BF1FFA75
+:109B100080F8B8F1000F1CBFA8F101001FFA80F80F
+:109B2000E068B0F8C4104144A0F8C0108FE7B0F866
+:109B3000D610B0F8C6201144A0F8D610E06890F80E
+:109B4000F61039B990F85D2001231946503002F023
+:109B5000F7F838B1E068B0F87810B0F8C6201144D2
+:109B6000A0F87810E06890F87E3033B1B0F87A1041
+:109B7000B0F8C6201144A0F87A1090F8822032B1D3
+:109B8000B0F88010B0F8C6C06144A0F880104FF063
+:109B90003D0C17B180F86AC010E02178022910D07E
+:109BA000012908BF90F8F81006D06178F1B111F0E2
+:109BB000140F18BF1E210BD080F86A1080F869605E
+:109BC0004BE090F88D10002914BF06211621F3E711
+:109BD00011F0080FDED111F0030F08BFFFDF2A21BB
+:109BE000E06880F86A1080F8696036E02BB1B0F860
+:109BF0007A10B0F87C3099420FD22AB1B0F88010B8
+:109C0000B0F87C20914208D2B0F87820B0F87610F5
+:109C10008A4208D390F8F6202AB1222180F86A10EF
+:109C200080F8696019E090F85E204AB1B0F87420BD
+:109C30008A420FD3082180F86A1080F869600CE02E
+:109C4000B0F87410062905D33E2180F86A1080F818
+:109C5000696002E090F8690090B1E06880F85B50BC
+:109C600080F85C5080F85E5090F8CE00002814BF59
+:109C700002200320FDF764FAE078F0F71BF902E018
+:109C80000020FDF75DFAE06880F8CE50BDE8F0876F
+:109C9000F7494A788B781A430DD150B1087910F002
+:109CA000080F04D0C86890F85D00032803D0012095
+:109CB0007047FDF7B1B9002070472DE9F041EC4C39
+:109CC00005460E46A0882843A08015F0020F04D058
+:109CD00015F0010F18BFFFDF266115F0010F4FF0DF
+:109CE00000084FF001071CD03046666102F0AFFB60
+:109CF000062802D00B280BD013E0E06890F85C1027
+:109D000014290ED10021C0E9241180F85F7008E009
+:109D1000E06890F85C100E2904BF80F85F8080F83E
+:109D2000847015F0020F18D02069C078052802D081
+:109D30000B280BD011E0E06890F85C1012290CD1D0
+:109D40000021C0E9261180F8607006E0E06890F814
+:109D50005C100D2908BF80F8608015F0800F1CBFD3
+:109D60000820A070BDE8F0812DE9F047C04C82B01A
+:109D70000127216900250191A5806570A5702570D6
+:109D8000E06067F30708064680F8CE700088F5F7B4
+:109D9000FDF85FEA000908BFFFDFE0680088F9F717
+:109DA00029FEE0680088F9F74BFEE068B0F8C200D1
+:109DB000D0B101A8F9F721FEB0B1E06890F8F61033
+:109DC00091B190F85D2001231946503001F0B8FFA1
+:109DD00050B9E068A0F8785080F88D500220FFF765
+:109DE00054FBE06880F8CD50D4F80CC09CF82201F8
+:109DF00038B9BCF82000BCF80410884288BFE08065
+:109E000002D8BCF80400E080BCF8C600401E1FFA6F
+:109E100080FABCF8C8005044ACF8C8009CF8CC00EC
+:109E200000281CBFACF8CA508CF8CC5004D1BCF848
+:109E3000CA005044ACF8CA00BCF874005044ACF8F6
+:109E400074009CF8600040B99CF85C200123062156
+:109E50000CF1500001F074FF28B1E068B0F86C100C
+:109E60005144A0F86C10E068B0F8C21001299CBF02
+:109E7000491CA0F8C210BAF1000F18BF80F8D450E6
+:109E800090F8CD10A1B1B0F8C800E18888420FD297
+:109E90004846F4F70CFB58B1E06890F8F01039B17F
+:109EA000B0F8CA10B0F8F200814228BF00F0D1FD2E
+:109EB000E06880F8CD5090F85C10062918BF07299B
+:109EC00017D1B0F85010B0F80C21891A09B2002946
+:109ED0000FDB00F58771083004F097F90221E06884
+:109EE00001F0FEFBE06880F80B5180F85C5080F8D0
+:109EF0008E70E16801F15000B1F8C62001F0CDFD8F
+:109F0000E06890F8F010002918BFA0F8CA5059482E
+:109F10000090594B594A3146404600F062FBE068D8
+:109F20000123052190F85C20503001F009FF002842
+:109F300018BF00F052FBE06890F81811002904BF28
+:109F400002B0BDE8F08790F81911002907BF90F81A
+:109F50008F10002902B0BDE8F08790F85C101A2934
+:109F600004BF02B0BDE8F087B0F81A118187B0F8DD
+:109F70001C11C187B0F81E1129B1A0F84010B0F82B
+:109F80002011A0F8421080F88F7080F8185102B0AC
+:109F9000BDE8F08700F033BD2DE9F041344C4FF0BF
+:109FA00002074FF00005207910F0080F13D06078F9
+:109FB00088B9E06890F85C10162905D180F88350C4
+:109FC00080F8825080F85C5090F85D10032904BF3F
+:109FD000277080F85D50FEF719FFA1884FF0010649
+:109FE00011F0040F14D0607890B9E06890F85C200C
+:109FF000062A08BF80F80B6103D0082A08BF80F842
+:10A000000B7190F85D20022A04BF267080F85D5025
+:10A0100011F0020F4FF0030700F00581607800286F
+:10A0200040F001812069C078801E142880F0FA80F9
+:10A03000DFE800F00AF84B566C26F831F83E9B61D9
+:10A04000F8F8F8F8C6F2D6ECE0680123194690F863
+:10A050005D20503001F074FE002840F0E480E0689C
+:10A0600080F85D7080F87E5080F8825000F0DBB898
+:10A0700010010020E5970100919C0100BB9C0100AC
+:10A08000E06890F85C00052818BFFFDFE06880F802
+:10A090005C5000F0C3B8E06890F85C00092818BF75
+:10A0A000FFDFE06880F8825080F85C5000F0BBB8B9
+:10A0B000E06890F85C000D2818BFFFDFE0680E2113
+:10A0C00080F8836080F85C10ADE0E06890F85C0098
+:10A0D000112818BFFFDFE068122180F88360F1E7E4
+:10A0E000E06890F85C00122818BFFFDF1420E168D8
+:10A0F00081F85C0097E0E06890F85C00122818BFD7
+:10A10000FFDF1620E16881F85C008CE0E06890F8E1
+:10A110005C00182818BFFFDFE06880F8835080F8E3
+:10A12000825090F82E01002818BFFFDFE06890F8F9
+:10A13000841041B180F884500188A0F8321180F871
+:10A1400030510C2107E00188A0F8321180F830511D
+:10A1500080F834610B2180F82E11E078EFF7AAFE29
+:10A16000D4F80C0080F85C505DE0E06890F80A11CB
+:10A1700004290ED0E0680123082190F85C205030BB
+:10A1800001F0DEFD00281CBFE06880F882504AD054
+:10A19000E8E790F85B2001230021503001F0D0FD6A
+:10A1A000002808BFFFDFE06890F8861011F0020F6A
+:10A1B0000EBF80F85B6080F87E5080F80A51D9E7C6
+:10A1C000E0680123002190F85B20503001F0B8FDD9
+:10A1D000002808BFFFDF0A20E16881F85B0022E069
+:10A1E000E06890F88F00012818BFFFDFE0680123C6
+:10A1F000002190F85B20503001F0A2FD002808BF3C
+:10A20000FFDF1920E16881F85B000CE0E06890F85E
+:10A210005C00002818BFFFDFD4F80C0080F88250E3
+:10A2200001E0FFE7FFDF207910F0100F09D0607820
+:10A2300038B9E06890F85C10062904BF072180F85F
+:10A240005C10A07810F0080F10D0E0680123052101
+:10A2500090F85C20503001F073FD28B10820607048
+:10A26000E06880F82E5101E000F0F7FBE06890F81C
+:10A270005C10082918BFBDE8F081B0F85010B0F8A4
+:10A280000C21491C914206BF61780029BDE8F0818C
+:10A29000B0F812114288914209D1B0F81421838894
+:10A2A0009A4204D1B0F81621C3889A4211D002888C
+:10A2B000A0F82621A0F82811B0F81411A0F82A114E
+:10A2C000B0F81611A0F82C1180F82261E078EFF7B1
+:10A2D000F1FD0121E06801F003FA0420FCF730FFF2
+:10A2E000E06880F80B5180F85C5080F85E70BDE843
+:10A2F000F0812DE9F84F6846F9F77FFB002808BF89
+:10A30000BDE8F88FAC4C6078002818BFBDE8F88F26
+:10A31000E0680123194690F85D20503001F010FDEF
+:10A32000002818BFBDE8F88FE068002590F8F61007
+:10A3300029B1A0F8785080F88D5002206DE090F897
+:10A340005B2001230021503001F0FAFC88B1E06865
+:10A350000123042190F85C20503001F0F1FC40B959
+:10A36000E06890F8720020B11220FFF78EF8BDE887
+:10A37000F88FE068012690F85C200D2A08BF0B20BA
+:10A380004BD00CDC012A79D0052A08BF072044D025
+:10A39000092A08BF092040D00B2A70D007E0112AF3
+:10A3A00027D0122A3DD0182A6CD01A2A69D001234E
+:10A3B0000421503001F0C4FC002818BFBDE8F88F1C
+:10A3C000E06890F80A11002970D090F85B20012312
+:10A3D0000021503001F0B4FC002867D0E06890F80C
+:10A3E0000A11042904BF90F8860010F0030F7CD0F6
+:10A3F000C5E0F7F7FFFE0C2838BFBDE8F88F08214D
+:10A40000E068E030F7F7F7FE28B1E0680421B430E7
+:10A41000F7F7F1FE00B9FFDF0420FFF736F8BDE8DB
+:10A42000F88F90F8F910012912D0022918BFBDE861
+:10A43000F88F90F8841000291ABF80F88D600220F0
+:10A440000D20FFF722F8E06880F8F950BDE8F88F9A
+:10A4500090F82E11002918BFBDE8F88F00F1A00375
+:10A4600000F1D8010022FA3001F0FFFB0520FFF7D0
+:10A470000CF8E06880F8F950BDE8F88F09E016E0C4
+:10A4800000E01BE00620FFF700F8E06880F882504B
+:10A49000F2E70C20FEF7F9FFE068A0F8805090F892
+:10A4A000861041F0010180F88610E5E767E013208F
+:10A4B000FEF7EBFFE068A0F880504FE0C18E838F7D
+:10A4C000B0F82CA0B0F82E80B0F83090478E9942AA
+:10A4D00038BF0B468385828EB0F840108A4238BF61
+:10A4E0001146C185B0F838C000E03AE0B0F842202B
+:10A4F000944538BF62464286B0F83AB0B0F83EC0E4
+:10A50000E34538BFDC46A0F830C0414538BF41467E
+:10A51000C185BA4238BF3A464286534508BF4145D5
+:10A5200003D1CC4508BFBA4214D00288A0F84A2112
+:10A53000828DA0F84C21028EA0F84E21C28D00F52C
+:10A540009171A0F85021408E088681F82660E0784D
+:10A55000EFF7B0FC1520FEF798FFE06880F85C503C
+:10A560008AE70C20FEF791FFE068A0F87A5080F8A7
+:10A570007E6090F8861041F0010180F886106846F0
+:10A58000F9F73BFA00283FF477AFE0680123002198
+:10A5900090F85B20503001F0D3FB00283FF46CAF03
+:10A5A000E06890F88F1000291EBF90F85C001A2810
+:10A5B00014207FF432AF5FE710010020FB480078E1
+:10A5C000002818BF0C20704730B5F84C054620789D
+:10A5D000002818BFFFDF657230BDF4490120087202
+:10A5E00070472DE9F047F14C8146DDF82080207856
+:10A5F0001E4617460D4628B9002F1CBF002EB8F185
+:10A60000000F00D1FFDFC4F81C80C4E90C95C4E939
+:10A61000057600202072E0712071E0706071A071F9
+:10A62000E34EA07060813078012705F1500828883A
+:10A63000F4F7ACFCA0622888F4F796FCE062F8F727
+:10A640006BFEF8F79EFBF8F7BCFE05F11100F8F77A
+:10A650004CFE05F10D00F8F777FC307800280CBFB0
+:10A6600003200120F8F755FE98F81800F8F774FC5D
+:10A67000F8F749FE30786FF00D01F8B16A8EE88D79
+:10A6800001EBD20198F810308AB2824298BF88B2AA
+:10A690000BB1001D80B2F8F762FB30784FF001017A
+:10A6A000C8B10120F8F7CCFC7068D0F8D000F8F7FA
+:10A6B00041FE2770BDE8F047F8F736BE2A8EA88D18
+:10A6C00001EBD20198F80F308AB2824298BF88B26B
+:10A6D000002BE0D0DDE70020F8F7B2FCE9E72DE938
+:10A6E000F041B34C6FF00D072046012640684FF053
+:10A6F0000008418E07EBD102C18D93B28B4298BF07
+:10A7000091B2AA4DE86AF3F70EFF6862002811BF04
+:10A7100085F801806E70A7486862207860680146FD
+:10A7200000F15006498E90F86020C08D07EBD101F2
+:10A730008BB2834298BF88B2002A1CBF001D80B232
+:10A74000F8F70DFB307C40B306F15001994891E8D1
+:10A750000E1000F5027787E80E10316EC0F8211256
+:10A76000716EC0F8251200F58170F8F7E0FD2078D1
+:10A7700000280CBF0120002080F001018E480176E6
+:10A78000D6E91212C0E90412A0F58372696AF8F7DB
+:10A790000EFA0120F8F71CFA04E0686AF8F7C7FD22
+:10A7A000F8F73EFA01210020F8F783FE0320287015
+:10A7B000BDE8F0812DE9F04F7D4E83B030464FF07B
+:10A7C000000B40684FF0010800F1500490F855105C
+:10A7D000A6F1100A4FF002096FF00D07A6F130053F
+:10A7E00071B3012969D002296BD0032918BFFFDF9B
+:10A7F00076D0286A0823017821F008010170A27937
+:10A8000003EAC202114321F004010170E27904233A
+:10A8100003EA8202114321F01001017094F805B09F
+:10A82000A86AF3F752FE8246F9F72EF9BBF1020F40
+:10A830005DD0BBF1010F5ED0BBF1030F5FD063E0D1
+:10A84000018E07EBD102818D93B28B4298BF91B2FA
+:10A85000ADF80410A0F848105046F9F7F4F848B1E4
+:10A86000296A85F802806A694FF480609047032066
+:10A870006071BEE76A4601A9A86AF3F711FD286274
+:10A8800010B194F8331029B15046F9F7B0F884F8B4
+:10A890000580AEE79DF8001031B9A0F800B080F84F
+:10A8A00002B0012101F046FDBDF80400C1B2286AE2
+:10A8B00001F0BEFE84F805909BE75046F9F797F843
+:10A8C00097E7B0F84800ADF804006A4601A9A86A05
+:10A8D000F3F7E6FC2862002808BFFFDF89E7FFE7FF
+:10A8E0005046F9F7B0F8002808BFFFDF81E730EAEB
+:10A8F0000A0009D106E030EA0A0005D102E0BAF107
+:10A90000000F01D0012100E00021286A027842EA0C
+:10A9100001110170716891F85F20888D098E07EB35
+:10A92000D1018BB2834298BF88B2002A1CBF001DA0
+:10A9300080B2F8F714FAE07B00281CBF6079012888
+:10A9400026D004F150011B4891E80E1000F5027763
+:10A9500087E80E10216EC0F82112616EC0F8251232
+:10A9600000F58170F8F7E3FC307800280CBF012176
+:10A97000002111480176D4E91012C0E90412A0F5B3
+:10A9800083712A6AF8F713F90020F8F721F904E037
+:10A99000286AF8F7CCFCF8F743F9307870B1286AE8
+:10A9A000007810F0100F0ED015E0000028010020F4
+:10A9B00058010020280E00203010002001210846F8
+:10A9C000F8F777FD0AE0FE48007810F0100F04BF9A
+:10A9D0002879002802D0A8780028EFD068790028CC
+:10A9E00004BF85F80580F8F7CAFC286A0188A981A8
+:10A9F0008078A87385F8009003B0BDE8F08FF14827
+:10AA000010B50078012818BFFFDFF8F785FCEE4885
+:10AA10000178446811B9FFF7CDFE01E0FFF75FFE52
+:10AA200094F82800012818BF10BDBDE81040F8F7C1
+:10AA30001DBDE44810B50078032818BFFFDFBDE84E
+:10AA4000104000F09DB9DF4840797047DD4800793B
+:10AA50007047DC490120887170472DE9F041DA48E0
+:10AA6000D84D012601784068002700F15004686A3B
+:10AA7000E96A90F8018002F0EDFE68B1012821D06A
+:10AA8000022834D003281CBFFFDFBDE8F081E86A4C
+:10AA9000BDE8F041F3F72EBF01224146E86AF3F723
+:10AAA0009FFDD4E91210491C40F10000C4E91210C6
+:10AAB000E079012814BFE671E771687ABDE8F041DA
+:10AAC000EFF7F8B900224146E86AF3F789FDD4E9C7
+:10AAD0001201401C41F10001C4E91201E079012892
+:10AAE00002D1E771BDE8F081E671BDE8F081E86A66
+:10AAF000F3F700FFD4E91201401C41F10001C4E961
+:10AB00001201E0790128EFD1EBE72DE9F041AE4FDA
+:10AB10004FF000083846A7F130044068012600F1E4
+:10AB200050052078022818BFFFDFA87850B185F8BB
+:10AB30000280A67062694146042090473878002858
+:10AB400018BF2E71206A0321007831EA000004BF8B
+:10AB5000E878002805D1EE70216AA67062690220AB
+:10AB600090470121002000F035F918B1BDE8F0410F
+:10AB700000F006B9BDE8F041B1E52DE9F05F924E75
+:10AB800082463046A6F130054068317800F1500920
+:10AB900028784FF000080127032818BFFFDF6889D5
+:10ABA000BAF1000F40F40070688104BF40F040002B
+:10ABB000688100F0D580F8F749F888B999F8100055
+:10ABC00070B1686A417859B1007899F80710C0F3FC
+:10ABD000C000884204D1EF70BDE8F05F00F0D0B84B
+:10ABE000686A0188A5F80F1080786874688940F059
+:10ABF0002000688185F804803078706800F1500B7F
+:10AC0000044690F82800012816D1F8F725FC59468B
+:10AC1000204601F06AF878B13078002870680CBFDF
+:10AC2000FC3000F5AA70218841809BF80810017162
+:10AC30000770687AEFF73EF9686A99F806100078AD
+:10AC4000C0F38000884234D03078706800F150043E
+:10AC500090F8550048B3022845D000BF84F805801D
+:10AC6000307838B12079414620B12171AF706A69DE
+:10AC700010209047E07890B184F80380F8F7F2FE56
+:10AC8000002808BFFFDF0820AF706A6900219047E5
+:10AC9000D4E91002411C42F10000C4E91010A0796F
+:10ACA00001280CBF84F80680A771688940F4807081
+:10ACB0006881686A99F807300178C1F3C0029A4246
+:10ACC0004ED13278726801F0030102F1500401297B
+:10ACD00018BF022931D003291CBFE87940F00400D5
+:10ACE00012D0E8713CE0A86AF3F714FB002808BF13
+:10ACF000FFDFD4E91010491C40F10000C4E9101036
+:10AD0000687AEFF7D7F8A9E701F035FB88B1A770AB
+:10AD10006989384641F400616981696AAF706A697E
+:10AD20009047E079012802D184F8078018E0E771A4
+:10AD300016E0E87940F01000D3E74078C8B169899F
+:10AD400041F400616981697839B9FB28F1D8287A22
+:10AD500020B180206A690021904701E0FFF77DFE65
+:10AD60005146012000F036F838B1BDE8F05F00F040
+:10AD700007B8E0790128DAD1D6E7BDE8F05F19E538
+:10AD800070B5114900254C68F8F738FBF8F72AFB35
+:10AD9000F8F74CFAF8F7AFFAF7F742FFF8F71EFBAF
+:10ADA000F8F7C2FA94F82800012808BFF8F754FB16
+:10ADB000044C0021626960899047E179E07805E000
+:10ADC000370100202801002058010020E269904747
+:10ADD000257070BD70B51F4C0546002908BF012DB8
+:10ADE00005D12079401CC0B22071012830D8A1695A
+:10ADF0002846884700282BD0A179174839B1012D62
+:10AE000001BF41780029017811F0100F20D0E179BD
+:10AE1000F1B912490978002918BF002102D029434D
+:10AE200004D013E0012D18BF0121F8D10C49097895
+:10AE300011F0100F04BF007810F0100F08D0A078A8
+:10AE400030B9607810B111F0100F01D0002070BD42
+:10AE5000012070BD2801002037010020580100208A
+:10AE60003401002010B540F2BB11F74803F093F80D
+:10AE7000F648002141704FF46171418010BD2DE909
+:10AE8000F0410F46064600F0E8FAEF4C102817D0C4
+:10AE900004EBC00191F8421111F0010F1CBF012019
+:10AEA000BDE8F081617808291FD2617804EBC00009
+:10AEB000491C6170012180F842110846BDE8F0810B
+:10AEC0006178082911D22578681C207004EBC50828
+:10AED0003868C8F83C01B888A8F84001102D28BF90
+:10AEE000FFDF88F83B612846DFE70020BDE8F081FE
+:10AEF000D5480178491E4BB2002BB8BF704770B4DB
+:10AF00005FF0000500EBC30191F8421111F0010F51
+:10AF10003BD04278D9B2521E427000EBC10282F897
+:10AF2000425190F802C00022BCF1000F0BD98418E6
+:10AF300094F803618E4202D1102A26D103E0521CFC
+:10AF4000D2B29445F3D80278521ED2B202708A422D
+:10AF50001BD000EBC20200EBC10CD2F83B41CCF895
+:10AF60003B41D2F83F21CCF83F21847890F800C0D3
+:10AF70000022002C09D9861896F8036166450AD18B
+:10AF8000102A1CBF024482F80311591E4BB2002B39
+:10AF9000B8DA70BC7047521CD2B29442EBD8F4E7D6
+:10AFA0002DE9F0471E4617468846814600F055FABF
+:10AFB000A54C0546102831D0A078002100280ED9D4
+:10AFC000621892F80331AB4205D110291CBF122040
+:10AFD000BDE8F08703E0491CC9B28842F0D80828D0
+:10AFE00032D2102D1DD000BF94F80280102208F13B
+:10AFF0000100A07004EB081909F10300394600F0C4
+:10B0000023FE09F183001022314600F01DFE04EBFF
+:10B01000080080F803510020BDE8F087A0780828D8
+:10B0200012D22578681C207004EBC50AD8F80000FD
+:10B03000CAF83C01B8F80400AAF84001102D28BF56
+:10B04000FFDF8AF83B91CFE70720BDE8F08770B4B7
+:10B050007D488178491E4BB2002BBCBF70BC704745
+:10B0600003F0FF0C8178491ECAB2827050FA83F156
+:10B0700091F8031194453AD000EB021400EB0C1543
+:10B08000D4F80360C5F80360D4F80760C5F807601A
+:10B09000D4F80B60C5F80B60D4F80F60C5F80F60EA
+:10B0A000D4F88360C5F88360D4F88760C5F88760FA
+:10B0B000D4F88B60C5F88B60D4F88F40C5F88F400A
+:10B0C000841800EB0C0502EB420294F803410CEBF0
+:10B0D0004C0C00EB420285F8034100EB4C0CD2F81B
+:10B0E0000B41CCF80B41B2F80F21ACF80F2100EB6B
+:10B0F000C10292F8422112F0010F35D190F802C03E
+:10B1000000220C46BCF1000F0BD9851895F80351AD
+:10B110008D4202D1102A27D103E0521CD2B29445AD
+:10B12000F3D80178491EC9B20170A1421CD000EBCE
+:10B13000C10100EBC402D1F83BC1C2F83BC1D1F858
+:10B140003F11C2F83F1190F802C002780021BCF113
+:10B15000000F09D9451895F8035195420BD11029D4
+:10B160001CBF014481F80341591E4BB2002BBFF6AE
+:10B1700077AF70BC7047491CC9B28C45EAD8F3E779
+:10B1800032494870704731484078704738B14AF2C8
+:10B19000B811884203D82D4948800120704700200B
+:10B1A00070472A484088704710B500F056F91028BB
+:10B1B00014D0254A0146002092F802C0BCF1000FCD
+:10B1C0000CD9131893F803318B4203D1102818BF00
+:10B1D00010BD03E0401CC0B28445F2D8082010BD69
+:10B1E00019498A78824286BF01EB00108330002023
+:10B1F000704715498A78824286BF01EB0010C01C57
+:10B2000000207047104B93F802C084459CBF00207B
+:10B210007047184490F8030103EBC00090F83B31ED
+:10B220000B70D0F83C111160B0F840019080012003
+:10B230007047054A114491F8032104490A700268D5
+:10B240004A60808808817047581000206001002003
+:10B2500010B5144600F001F9102809D0F9490A7810
+:10B26000824205D1486820600889A080012010BD75
+:10B27000002010BD10B5F7F749FC002804BFFF20DF
+:10B2800010BDBDE81040F7F767BCEF498A788242ED
+:10B290009CBF00207047084490F8030101EBC000F8
+:10B2A00090F8420100F00100704770B5E64E0024AE
+:10B2B00025463078002814D906EBC50090F84211D5
+:10B2C00011F0010F08D090F83B2100F59E71204647
+:10B2D000631CDCB2F7F7D1FD681CC5B23078A84218
+:10B2E000EAD87078A04218BFFFDF70BD70B5D64CA9
+:10B2F00000263546A078002812D96019731C90F8F2
+:10B30000030104EBC00000F59E7190F83B2130462C
+:10B31000DEB2F7F7B2FD681CC5B2A078A842ECD83F
+:10B32000C0B2B04218BFFFDF70BD10B5F7F704FE22
+:10B3300058B30024F7F704FEC34A00211378002B0A
+:10B3400023D900BF02EBC10C9CF842C11CF0010FD5
+:10B3500017D084421CBF04F1010C0CF0FF0410D183
+:10B3600093780020002B0AD902EB000C9CF803C153
+:10B370008C4508BF10BD401CC0B28342F4D81020D9
+:10B3800010BD491CC9B28B42DCD8082010BD10B5D5
+:10B39000F7F7D2FD002804BF082010BDBDE810401B
+:10B3A000F7F7CEBDA74910B5497841B1A64B9978BA
+:10B3B00029B1C21CD81CF7F746FB012010BD0020A4
+:10B3C00010BDA14A01EB410102EB41010268C1F845
+:10B3D0000B218088A1F80F01704770B59A4D0024A9
+:10B3E000A878002898BF70BDC0B2A04212D905EB62
+:10B3F000041010F183060DD01021304600F000FC3F
+:10B4000040B904EB440005EB400000F20B1130465C
+:10B41000F8F7B7FB601CC4B2A878A042E4D870BDAE
+:10B4200001461022894800F00FBC8848704770B56B
+:10B43000854D0446A878A04206D905EB04101021DA
+:10B44000833000F0DDFB08B1002070BD04EB440048
+:10B4500005EB400000F20B1070BD2DE9F0417A4D74
+:10B460000646002428780F46002811D905EBC400B1
+:10B4700090F83B11B14206D10622394600F59E7084
+:10B4800002F0E6FC38B1601CC4B22878A042EDD8C6
+:10B490001020BDE8F0812046BDE8F0816A4910B473
+:10B4A0004A7801EBC003521E4A70002283F8422101
+:10B4B00091F802C0BCF1000F0DD98B1893F803412D
+:10B4C000844204D1102A1CBF10BC704703E0521CF8
+:10B4D000D2B29445F1D80A78521ED2B20A70824292
+:10B4E00004BF10BC704701EBC00301EBC202D2F8ED
+:10B4F0003BC1C3F83BC1D2F83F21C3F83F218C7850
+:10B5000091F800C00022002C9CBF10BC70478B1823
+:10B5100093F80331634506D1102A1CBF114481F80A
+:10B52000030110BC7047521CD2B29442EFD810BC39
+:10B53000704770B444490D188A78521ED3B28B708C
+:10B5400095F80321984239D001EB001C01EB03145C
+:10B5500000EB4000D4F80360CCF80360D4F8076037
+:10B56000CCF80760D4F80B60CCF80B60D4F80F600F
+:10B57000CCF80F60D4F88360CCF88360D4F887608F
+:10B58000CCF88760D4F88B60CCF88B60D4F88F400F
+:10B59000CCF88F4001EB030C03EB43039CF803C191
+:10B5A00001EB430385F803C101EB4000D3F80BC165
+:10B5B000C0F80BC1B3F80F31A0F80F3101EBC20096
+:10B5C00090F8420110F0010F1CBF70BC70470020C2
+:10B5D0008C78002C0DD90B1893F803C1944504D135
+:10B5E00010281CBF70BC704703E0401CC0B28442EE
+:10B5F000F1D80878401EC0B20870904204BF70BCF9
+:10B60000704701EBC20301EBC000D0F83BC1C3F8A7
+:10B610003BC1D0F83F01C3F83F018C780B78002084
+:10B62000002C9CBF70BC704701EB000C9CF803C160
+:10B630009C450DD110281CBF084480F8032170BC24
+:10B6400070470000600100205810002013120020F5
+:10B65000401CC0B28442E7D8F1E7000010B50A7B75
+:10B6600002F01F020A73002282758B181B7A03F006
+:10B67000010C5B0803F00104A4445B0803F001041F
+:10B68000A4445B0803F00104A4445B0803F0010434
+:10B6900064444FEA530C0CF0010323444FEA5C0C62
+:10B6A0000CF00104234403EB5C0300EB020C521C7E
+:10B6B0008CF8113090F816C0D2B263448375052A15
+:10B6C000D3D3D8B2252888BFFFDF10BD00238383E2
+:10B6D000028401EBC202521EB2FBF1F1C18370473A
+:10B6E0000A4630B40021032A0DD04FF4FA4C002A48
+:10B6F0007ED0012A7DD0022A1CBF30BC7047014693
+:10B7000030BC5030AAE7A0F8501080F8561080F8EE
+:10B71000571080F85B1080F85C1080F85D1080F89E
+:10B720005E1080F8521080F8531080F8541080F8A2
+:10B73000551080F86910A0F86C1080F87210A0F80D
+:10B740007410A0F87A1080F87E10A0F8801080F8AD
+:10B75000821080F8671080F8681080F85F1080F819
+:10B76000601080F8831080F8841080F88610F12231
+:10B7700080F88C20A0F8781080F88E10A0F8C01007
+:10B78000A0F8C210A0F8C410A0F8C610A0F8C81005
+:10B79000A0F8CA1080F8CD10A0F8D61080F8D41008
+:10B7A000A0F8E810A0F8EA1080F8281001844FF4FF
+:10B7B000486242801B228286C2864FF4A47343876C
+:10B7C00003878285C28543860386A0F84020A0F8BF
+:10B7D00042308287C387A0F84420A0F84620A0F812
+:10B7E000482080F88F1080F8181180F8F01001E0E0
+:10B7F00006E043E080F8F61080F8F91030BC70479E
+:10B80000A0F8D61080F8CE104288FB4B1344B3FB4F
+:10B81000F2F3A0F86E304BF68033A0F87030C48895
+:10B82000A0F87410B0F8781000F15003514391FB68
+:10B83000F2F1A0F87810E100B1FBF2F1491C89B2F5
+:10B8400001FB02F4A0F87610B4F5C84FC4BF491E3E
+:10B85000D984BCFBF2F1491C998502F5802101F5E0
+:10B86000EE31A1F1010CBCFBF2F1D983B3F81CC09D
+:10B870000CFB02F1B1FBF2F1998340E7A0F8D6107E
+:10B8800000F150024488B0F81231B0F816019184EA
+:10B89000118DC0006143B0FBF3F091FBF3F1401C4C
+:10B8A000118580B200FB03F1D084B1F5C84FC4BF4D
+:10B8B000401ED084BCFBF3F0401C9085108C03EB41
+:10B8C000C000401EB0FBF3F0D083908B6043B0FB10
+:10B8D000F3F0908330BC70470A4630B40021032A4D
+:10B8E0000DD04FF4FA4C002A71D0012A6ED0022AF2
+:10B8F0001CBF30BC7047014630BC5030AEE6A0F8EB
+:10B90000501080F8561080F8571080F85B1080F8BF
+:10B910005C1080F85D1080F85E1080F8521080F89E
+:10B92000531080F8541080F8551080F86910A0F872
+:10B930006C1080F87210A0F87410A0F87A1080F8DB
+:10B940007E10A0F8801080F8821080F8671080F8D0
+:10B95000681080F85F1080F8601080F8831080F81D
+:10B96000841080F88610F12280F88C20A0F87810DE
+:10B9700080F88E10A0F8C81080F8CA1080F8C010A7
+:10B98000C0F8C41080F828101B228286C2864FF4AB
+:10B99000A473438703878285C28543860386A0F804
+:10B9A0004020A0F842308287C387A0F84420A0F846
+:10B9B0004620A0F8482080F88F1080F8F01080F81A
+:10B9C000DC1080F8EC1030BC704700E039E04288B1
+:10B9D000894B1344B3FBF2F3A0F86E304BF680337F
+:10B9E000A0F87030C488A0F87410B0F8781000F196
+:10B9F0005003514391FBF2F1A0F87810E100B1FB44
+:10BA0000F2F1491C89B201FB02F4A0F87610B4F5FA
+:10BA1000C84FC4BF491ED984BCFBF2F1491C9985AB
+:10BA200002F5802101F5EE31A1F1010CBCFBF2F130
+:10BA3000D983B3F81CC00CFB02F1B1FBF2F199837E
+:10BA400059E7D0F8E44000F1500243886089E48966
+:10BA50009184118D594391FBF0F11185E100B1FB07
+:10BA6000F0F1491C89B201FB00F4D184B4F5C84F50
+:10BA7000C4BF491ED184BCFBF0F1491C9185118CD7
+:10BA800000EBC101491EB1FBF0F1D183918B594309
+:10BA9000B1FBF0F0908330BC7047837D0BB1252B58
+:10BAA00001D912207047002A04BF0020704770B4EB
+:10BAB00090F817C00C7E514D04FB02C22C464FF08B
+:10BAC000000CE2FB054C4FEA1C1C6FF024040CFB3D
+:10BAD0000422D2B201EBD20CC27502F007059CF829
+:10BAE00008C0012404FA05F51CEA050F18BF027608
+:10BAF0002CD1B2FBF3FC03FB1C22521CD2B24FF040
+:10BB0000000C00BF00EB0C035B7C93423CBFD21ADD
+:10BB1000D2B20ED301EB0C0500232D7A04FA03F602
+:10BB200035421CBF521ED2B26AB15B1CDBB2082B7D
+:10BB3000F4D30CF1010303F0FF0CBCF1050FE1D3CA
+:10BB400070BC1F20704703EBCC01017670BC002055
+:10BB5000704730B50D460446072988BFFFDFE078FF
+:10BB600005F0070100F05000084340F08800E07045
+:10BB7000A07800F0A70040F01800A070607800F0F6
+:10BB80005E0040F020006070207800F0BC0040F0C3
+:10BB90004000207030BD017931F01F0113BF00203B
+:10BBA00000221146704710B4435C491C03F0010C9D
+:10BBB0005B0803F00104A4445B0803F00104A444FF
+:10BBC0005B0803F00104A4445B0803F00104A444EF
+:10BBD0005B0803F001045B08A44403F00104A444DF
+:10BBE0000CEB53031A44D2B20529DDDB012A8CBFCA
+:10BBF0000120002010BC7047FFDB050053E4B36E4A
+:10BC000030B40022A1F1010CBCF1000F12DD431E83
+:10BC100011F0010F08BF13F8012F5C785FEA6C0C7C
+:10BC200008D000BF13F8025F22435C782A43BCF1BE
+:10BC3000010CF7D1491E5CBF405C0243002A0CBFD7
+:10BC40000120002030BC7047130008BF704710B4BB
+:10BC500001EB030CD41A1CF801CC5B1E00F804C0E5
+:10BC600013F0FF03F4D110BC7047F0B58DB0164649
+:10BC700010251C466A46AC4600EB0C03A5EB0C07EE
+:10BC800013F8013CD355ACF1010313F0FF0CF3D1D1
+:10BC900015461032102084460B18ACEB000713F841
+:10BCA000013C401ED35510F0FF00F5D1284601F0AD
+:10BCB00081F986B1102005F1200201461318A1EB8D
+:10BCC000000C13F8013C401E04F80C3010F0FF008B
+:10BCD000F4D10DB0F0BD08982060099860600A9812
+:10BCE000A0600B98E0600DB0F0BD38B505460C467D
+:10BCF0006846F7F7C6FB002808BF38BD9DF900204D
+:10BD0000227294F909100020511A48BF494295F84F
+:10BD100029308B42C8BF38BDFF2B08BF38BDA17A80
+:10BD2000491CC9B2A17295F82A30994203D8617AA8
+:10BD30007F2918BF38BD62720020A072012038BD73
+:10BD40000B294AD2DFE801F006090E13161B323C1C
+:10BD50003F474200002A42D03FE0022A18BF032A90
+:10BD60003DD03AE0072A18BF062A38D035E0082A25
+:10BD700035D032E0A2F10C000C2830D92DE023B1EF
+:10BD8000A2F10D000B282AD927E00F2A18BF0E2A8E
+:10BD900025D090F8340020B10F2A1ED3172A1ED9BF
+:10BDA0001BE0132A19D3172A19D916E0A2F10C01A6
+:10BDB000032914D990F8340078B1182A0FD90CE06F
+:10BDC000092A0CD009E0012A09D006E0192A18BF77
+:10BDD0001A2A04D001E00A2A01D00020704701206D
+:10BDE00070472DE9F04187680D4604462046F4F778
+:10BDF00085FE90B1CDB13846A168F5F71EFFA0B120
+:10BE0000401EB0FBF5F0461C06FB05F13846F4F782
+:10BE100004FEA0603046BDE8F081F4F7E5FD40F295
+:10BE20006171F4F7FAFDA060E0E70020BDE8F08161
+:10BE3000904228BF704770B50446101B642838BF75
+:10BE4000642025188D4205D8F5F722FF00281CBF75
+:10BE5000284670BD204670BD8A8D0B8ED200703290
+:10BE600092B2934238BF1A46CB8D498EDB007033B5
+:10BE70009BB2994238BF0B46012100280CBF01201C
+:10BE8000002003FB01210023702212FB03119831D3
+:10BE9000002818BF04200844704710B4B0F844309C
+:10BEA000FB2B28BFFB23DB007033B0F846009BB2AE
+:10BEB000FB2828BFFB20C00070301FFA80FC914295
+:10BEC00034BF012000200844C4B28A4234BF01209C
+:10BED00000201044C1B28C4234BF0A4622460020E2
+:10BEE000002A04BF10BC704703FB04F00CFB0100E8
+:10BEF00021447023C1EB420113FB01004D2112FBD1
+:10BF000001F100EB810010BC98387047828DD2009F
+:10BF1000703293B2028E9A4238BF1346C28DB0F887
+:10BF200032C0D200703292B2944538BF62464FF0B0
+:10BF3000010C02FB0C324FF0000C702313FB0C229F
+:10BF400002F19C03428840F2712C02FB0CF2DFF8F4
+:10BF5000F8C099420CEB420234BF9C468C46944593
+:10BF600028BF114602D2994238BF19464162704734
+:10BF700010B4B0F84430FB2B28BFFB23DB00703338
+:10BF8000B0F846009BB2FB2828BFFB20C0007030F1
+:10BF90001FFA80FC914234BF012000200844C4B243
+:10BFA0008A4234BF012000201044C1B28C4234BF09
+:10BFB0000A4622460020002A04BF10BC704703FB3B
+:10BFC00004F00CFB010021447023C1EB420113FB80
+:10BFD00001004D2112FB01F100EB810010BC9C38E7
+:10BFE000704710B4838DDB0070339CB2038EA34284
+:10BFF00038BF1C46C38DDB0070331FFA83FC438EB1
+:10C00000634538BF9C4601230CFB034300244FF0DB
+:10C01000700C1CFB0433B0F802C040F271240CFB1E
+:10C0200004FCC2EB4C029833A2F22132994234BF95
+:10C030009C468C46944528BF114602D2994238BF8F
+:10C040001946416210BC7047F1FCFFFF282101F046
+:10C05000A2BF30B50546007801F00F0220F00F00B6
+:10C060001043287007290BD2DFE801F0040604060C
+:10C0700004080400062405E00C2403E0222401E067
+:10C080000024FFDF687820F03F002043687030BD57
+:10C09000007800F00F0070470A68C0F80320898814
+:10C0A000A0F807107047D0F803200A60B0F8070026
+:10C0B000888070470A68C0F809208988A0F80D10A8
+:10C0C0007047D0F809200A60B0F80D0088807047EA
+:10C0D0000278402322F0400203EA811111430170EB
+:10C0E00070470078C0F3801070470278802322F0F8
+:10C0F000800203EAC1111143017070470078C00942
+:10C100007047D0F80320C1F80920B0F80720A1F843
+:10C110000D200A7822F080020A700078800942EA35
+:10C12000C0100870704770B515460E4604461F2AA9
+:10C1300088BFFFDF2A46314604F1090001F0B4FE52
+:10C140006078A91D20F03F0001F03F0108436070B6
+:10C1500070BD70B5054640780E4600F03F04062CD1
+:10C1600038BFFFDFA01FC4B21F2C88BF1F24224688
+:10C1700005F10901304601F097FE204670BD70B50B
+:10C1800015460E4604461F2A88BFFFDF2A46314661
+:10C1900004F1090001F088FE6078A91D20F03F003D
+:10C1A00001F03F010843607070BD70B505464078EE
+:10C1B0000E4600F03F04062C38BFFFDFA01FC4B2BC
+:10C1C0001F2C88BFFFDF224605F10901304601F030
+:10C1D0006BFE204670BD0968C0F80F1070470A88D2
+:10C1E000A0F813208978417570474176090A817655
+:10C1F0007047C176090A017770474177090A81774C
+:10C200007047C175090A017670478175704790F8CB
+:10C21000242001F01F0122F01F02114380F8241096
+:10C22000704790F82420E02322F0E00203EA411155
+:10C23000114380F8241070471F3001F0E6BF4178A9
+:10C24000007801F03F0110F00F0006D0012808D05F
+:10C25000022809D006280BD00FE0881F1F280AD912
+:10C260000BE00C2909D106E0881F1F2803D904E040
+:10C27000881F1F2801D8012070470020704741788F
+:10C28000007801F03F0100F00F00042805D10629D5
+:10C2900003D325299CBF012070470020704710B4AC
+:10C2A000017801F00F01032922D0052925D1447816
+:10C2B000B0F81910B0F81BC0B0F81730827D04F048
+:10C2C0003F04222C19D1062917D3B1F5486F98BF26
+:10C2D000BCF5FA7F11D282B1082A98BF8A420CD2EB
+:10C2E0008B429CBFB0F81D00B0F5486F05D807E041
+:10C2F000407800F03F000C2802D010BC00207047AE
+:10C3000010BC01207047222101F045BE00B5027823
+:10C3100001F0030322F003021A430270002242706C
+:10C32000012914BF022900BD032912BFFFDF01212B
+:10C33000417000BD01F0030300B5027822F0030252
+:10C340001A43027000224270012914BF022900BD65
+:10C35000032912BFFFDF0121417000BD007800F00A
+:10C36000030070470278102322F0100203EA011143
+:10C370001143017070474178C07814283BD2DFE840
+:10C3800000F00A0D101316191C1F2225282B2E3120
+:10C390003A3A3A3A34370C292FD030E008292CD0D9
+:10C3A0002DE0022929D02AE0172926D027E00D29DF
+:10C3B00023D024E0012920D021E001291DD01EE056
+:10C3C00002291AD01BE0092917D018E0092914D036
+:10C3D00015E0012911D012E001290ED00FE0062945
+:10C3E0000BD00CE0022908D009E0012905D006E0B5
+:10C3F000012902D003E0FB2901D801207047002069
+:10C40000704730B50546C17016291CD2DFE801F02F
+:10C410000B0D0F111315150F17171515190F1B1BE2
+:10C420001B1B151517170C240FE008240DE0022420
+:10C430000BE0172409E00D2407E0012405E009249E
+:10C4400003E0062401E00024FFDF6C7030BDC078FB
+:10C450007047C171090A01727047B0F80700704750
+:10C460004172090A81727047B0F809007047C172C1
+:10C47000090A01737047B0F80B0070474171090A4F
+:10C4800081717047B0F805007047017170470079FD
+:10C4900070474173090A81737047B0F80D00704707
+:10C4A00030B4B0F80720664DB0F809C0B0F80530D8
+:10C4B0000179941F2D1998BFBCF5FA7F0ED269B18E
+:10C4C000082998BF914209D293429FBFB0F80B0050
+:10C4D000B0F5486F012030BC98BF7047002030BCD9
+:10C4E0007047001D01F091BE021D0846114601F083
+:10C4F0008CBE4172090A81727047B0F8090070471A
+:10C5000001717047007970470A684260496881602C
+:10C51000704742680A608068486070470988818176
+:10C5200070478089088070470A68C0F80E20496803
+:10C53000C0F812107047D0F80E200A60D0F8120030
+:10C54000486070470968C0F816107047D0F81600A8
+:10C55000086070470A6842604968816070474268B5
+:10C560000A608068486070470968C1607047C068A9
+:10C5700008607047017170474171090A8171704705
+:10C58000C171090A0172704700797047B0F805005F
+:10C590007047B0F807007047017170470079704725
+:10C5A000017170470A68426049688160704742685B
+:10C5B0000A608068486070470171090A41717047DC
+:10C5C0008171090AC17170470172090A417270478D
+:10C5D0008172090AC172704780887047C0887047AD
+:10C5E000008970474089704701891B2914D3FB29B2
+:10C5F00012D84189B1F5A47F21BF40F648028A4292
+:10C6000081881B2908D3FB2906D8C088B0F5A47FF0
+:10C6100022BF824201207047002070470A684260B2
+:10C6200049688160704742680A6080684860704766
+:10C6300030B50C460546FB2988BFFFDF6C7030BD66
+:10C6400086F3FFFF70B50446C2F11005281901F00A
+:10C650002BFC15F0FF0108D0491EC9B280206054A0
+:10C660002046BDE8704001F096BC70BD30B505E0D5
+:10C670005B1EDBB2CC5CD55C6C40C454002BF7D1A4
+:10C6800030BD10B5002409E00B78521E44EA430384
+:10C6900000F8013B11F8013BD2B2DC09002AF3D1CA
+:10C6A00010BD2DE9F0410C4601200978FF4E92B0F3
+:10C6B000154602274FF006084FF0040C71B101290E
+:10C6C0001ED0022945D0032905D12978042902D199
+:10C6D00005201070002012B0BDE8F081606850B1F4
+:10C6E000CDE90106012020708DF80080606A049079
+:10C6F0001146684663E0277085F800C0566026E062
+:10C7000029780429E7D1696810222069FFF7B9FF69
+:10C710006868C07B000606D5E44A20691023103201
+:10C720000146FFF7A3FFD4E904101022FFF7A9FF89
+:10C730002069C07B000606D5DC4A606910231032F0
+:10C740000146FFF793FF277085F800C06E60032055
+:10C75000C1E729780429BED1A08910280CD9A0F1FD
+:10C76000100080B2A081A1684FF010030144684618
+:10C770006A68FFF77BFF18E004D14FF010032269CD
+:10C78000A16807E0C2B20DA8A168FFF75BFF62696C
+:10C7900010230DA909A8FFF769FF102309A968460E
+:10C7A0006A68FFF763FF0320207060680590CDF88A
+:10C7B00018D08DF81080606A0890294604A8F3F715
+:10C7C000DDFD88E72DE9F04107460D4601200B7895
+:10C7D00006213BB1012B04D11378052B01D1117037
+:10C7E000002079E76C69012620226170E8686060AA
+:10C7F000686A6062A168287C0870A681A068A96840
+:10C80000401C01F051FBA08920222030A081A068AB
+:10C810006968213001F048FBA08921462030A081C1
+:10C820002E703846BDE8F041F3F7BFBD2DE9F05F4B
+:10C830000D46834601200978174606464FF0060844
+:10C84000D1B1DFF868A24FF00009AAF1080A012966
+:10C8500023D002297ED003290CD13978052909D1AA
+:10C8600079681022E86901F01FFB0720387018353D
+:10C8700000207D60BDE8F09F2C6A8C48202284F85F
+:10C880000180203060602020A081686A6062696851
+:10C89000A06801F009FB2E70D4E039780529E9D1B0
+:10C8A0002C6A84F80180686A606251681022E86925
+:10C8B00001F0FAFAE8696060A0684F4680F80090DD
+:10C8C000A681A0684670A089401C80B2A081A168A2
+:10C8D0000844696951F8012F026089888180A08924
+:10C8E000801D80B2A0816969A2680978C1F3400106
+:10C8F0001154A089401C80B2A081A1680844296914
+:10C9000051F8012F026089888180A089801D80B242
+:10C91000A0812969A2680978C1F340011154A08956
+:10C920001022401C80B2A081A1680844E96801F08F
+:10C93000BBFAA0891022103080B2A081A1680844FF
+:10C94000A96801F0B1FAA089103080B2A081A16875
+:10C95000014400E00DE0DAF804000860A089001D41
+:10C9600080B2A081A1680F54A089401CA081022040
+:10C9700067E03978052992D151681022A86901F041
+:10C9800093FA2C6A84F80180E8696060686A6062E2
+:10C99000A16881F80090A681A0684670A089401C1B
+:10C9A00080B2A081A1680844696951F8012F026032
+:10C9B00089888180A089801D80B2A0816969A26870
+:10C9C0000978C1F340011154A089401C80B2A081B4
+:10C9D000A1680844296951F8012F02608988818083
+:10C9E000A089801D80B2A0812969A2680978C1F35D
+:10C9F00040011154A0891022401C80B2A081A1687E
+:10CA00000844E96801F050FAA0891022103080B281
+:10CA1000A081A1680844A96801F046FAA0891030F5
+:10CA200080B2A081A1680144DAF804000860A089FE
+:10CA3000001D80B2A081A1680E54A089401CA08175
+:10CA40000320287021465846BDE8F05FF3F7ADBCDF
+:10CA500070B50D4606460978012041B1012905D17E
+:10CA60001178052902D108201070002070BD2C6AB1
+:10CA70000620607069686160696A6162EA69A1683C
+:10CA800052F8013F0B6092888A80A081E869A16812
+:10CA90000078C0F340008871A089401C80B2A0815A
+:10CAA000A1680844A96951F8012F01E014E60100CA
+:10CAB000026089888180A089801D80B2A081A969D7
+:10CAC000A2680978C1F340011154A089401C80B2CA
+:10CAD000A081A168084469690A8802808978817008
+:10CAE000A0891022C01C80B2A081A16808442969D5
+:10CAF00001F0DAF9A0891022103080B2A081A1687B
+:10CB00000844E96801F0D0F9A0891022103080B201
+:10CB1000A081A1680844A96801F0C6F9A08921464E
+:10CB20001030A081012028703046BDE87040F3F736
+:10CB30003CBC70B50D4606460978012059B1012963
+:10CB400008D11178052905D10920107050680068B6
+:10CB50005060002070BD6C69062010226070E8688B
+:10CB60006060686A60622969A06801F09DF9102020
+:10CB7000A081A06820221030A96801F095F9A08951
+:10CB80002022203080B2A081A1680844696801F0A9
+:10CB90008BF9A08921462030A081012028703046E1
+:10CBA000BDE87040F3F701BC70B50C460120097870
+:10CBB0008EB01546062659B1012934D0022905D177
+:10CBC0002978042902D10A20107000200EB070BD0F
+:10CBD000606910236A460078C0F340008DF80000B9
+:10CBE000A0690078C0F340008DF80100E06801689A
+:10CBF000CDF802108188ADF8061080798DF8080014
+:10CC000020690168CDF809108188ADF80D10807990
+:10CC10008DF80F006068059009A80690A168FFF7DD
+:10CC200025FD01201DE029780429CFD1A06910231A
+:10CC30006A4650F8011F00918088ADF804006069D1
+:10CC400050F8011FCDF806108088ADF80A000020CA
+:10CC500003906068059009A806906968FFF706FDD3
+:10CC6000022020708DF81060606A0890294604A8A0
+:10CC7000F3F784FBAAE700B50B7889B001204BB12C
+:10CC8000012B05D11178042902D10B20107000204E
+:10CC900009B000BD4868019005A80290C868036803
+:10CCA0000593406806908868036807934068089079
+:10CCB0000120087006208DF80000486A0490114693
+:10CCC0006846F3F75BFBE3E700B50B7889B001201A
+:10CCD00043B1012BDCD111780429D9D10C2010707B
+:10CCE0000020D5E74868019005A80290886803688D
+:10CCF0000593406806900020079008900120087076
+:10CD000006208DF80000486A049011466846F3F743
+:10CD100035FBBDE700B50B7889B0012043B1012B8D
+:10CD2000B6D111780429B3D10D2010700020AFE7DF
+:10CD300048680590CDF818D088680088ADF80000E4
+:10CD4000C8680088ADF802000020019002900390AE
+:10CD50000120087006208DF81000486A08901146DE
+:10CD600004A8F3F70BFB93E730B403460C780120DB
+:10CD70005CB1012C15D0022C05D111780C2902D1FF
+:10CD80000E201070002030BC704701200870C86869
+:10CD9000042242704A6842600B4A8260921EC2605E
+:10CDA0000BE014780D2CEED102200870C868032423
+:10CDB0004470526842608A688260496A41620146F2
+:10CDC00030BC1846F3F7F1BA0EE6010070B41D78D6
+:10CDD000039C4FF0000CAA4204BF70BC70478E5CED
+:10CDE000864208BF4FF0010C02D0BCF1000F05D005
+:10CDF000561CA64208BF00268E5D8E54561CA642C5
+:10CE00000CBF0022521CD2B2AA42E8D1BCF1000FE2
+:10CE100004BF70BC70471878411E19703CBF601E7B
+:10CE2000187070BC704700002DE9F0410C461149A4
+:10CE30000D68104A104908321160A0F120012A291A
+:10CE400001D301200CE03E2810D040CC0B4F94E8D9
+:10CE50000E0007EB8000241F50F8807C3046B84756
+:10CE600020600448001D0560BDE8F0812046E4F71D
+:10CE7000A7F9F5E7100502400100000144E60100B2
+:10CE800010B5524800F04EFA00B1FFDF4F48401C89
+:10CE900000F048FA002800D0FFDF10BD2DE9F14F67
+:10CEA0004B4ED6F800B00127484800F043FADFF8AF
+:10CEB0001C8128B95FF0000708F1010000F050FA6A
+:10CEC000444C00254FF0030901206060C4F8005174
+:10CED000C4F80451009931602060DFF8FCA018E02C
+:10CEE000DAF80000C00614D50E2000F064F8EFF365
+:10CEF000108010F0010072B600D00120C4F8049335
+:10CF0000D4F8001119B9D4F8041101B920BF00B93F
+:10CF100062B6D4F8000118B9D4F804010028DFD0B3
+:10CF2000D4F804010028CFD137B1C6F800B008F119
+:10CF3000010000F0FFF911E008F1010000F0FAF93A
+:10CF40000028B9D1C4F80893C4F80451C4F80051BA
+:10CF50000E2000F030F81D4800F002FA0020BDE875
+:10CF6000F88F2DE9F0438DB00D46064600240DF1F3
+:10CF700010090DF1200817E004EB4407102255F8C2
+:10CF80002710684600F090FF05EB870710224846FF
+:10CF9000796800F089FF6846FFF780FF102241465C
+:10CFA000B86800F081FF641CB442E5DB0DB00020DE
+:10CFB000BDE8F08372E700F01F02012191404009B3
+:10CFC000800000F1E020C0F8801270476A01002064
+:10CFD00004E5004000E0004010ED00E0C7480021FB
+:10CFE00001708170704770B5C54D01232B60C54B32
+:10CFF0001C68002CFCD0002407E00E6806601E6848
+:10D00000002EFCD0001D091D641C9442F5D30020A5
+:10D01000286018680028FCD070BD70B5B74E044673
+:10D02000B94D3078022800D0FFDFAC4200D3FFDFDB
+:10D030007169B648012903D847F23052944201DDA4
+:10D0400003224271491C7161291BC160AF4970788C
+:10D05000BDE87040F3F759BE70B5A84C0D46617835
+:10D06000884200D0FFDFA84E092D4FD2DFE805F03F
+:10D070004E0522314E4E4E4E3C002078022800D004
+:10D08000FFDF03202070A078022802D0012804D0FE
+:10D0900008E0A06800F01AFC04E004F1080007C8EA
+:10D0A000FFF7A1FF052020700020A070BDE87040B0
+:10D0B000F3F7C9BBF3F798FC01466068F4F7BDFDD0
+:10D0C000B04202D2616902290BD30320F4F7DAFFE0
+:10D0D00012E0F3F789FC01466068F4F7AEFDB04258
+:10D0E000F3D2BDE8704098E7207802280AD00528DE
+:10D0F00006D0FFDF04202070BDE8704000F0F4B8D7
+:10D10000022000E00320F4F7BDFFF3E7FFDF70BD6E
+:10D1100070B50546F3F768FC784C6060207801280C
+:10D1200000D0FFDF79490220087000220A718D606B
+:10D1300004224A71744ACA6020706078BDE8704069
+:10D14000F3F7E3BD10B56D4CA07808B9207808B1AD
+:10D15000112010BD6E48F3F7E1FB6070607820B1DC
+:10D16000012020700020606110BD032010BD024628
+:10D17000010B0120B2F5003F02D2884000F020BE32
+:10D18000B2F5802F03D22039884000F021BEB2F5DD
+:10D19000C02F03D24039884000F023BEB2F5002FE3
+:10D1A00003D26039884000F025BE002070472DE989
+:10D1B000F041144600EB84070E4605463F1F00F081
+:10D1C00098FB4FF080510A69504306EB8402121F0E
+:10D1D000B24201D2012200E000221CB10969B4EB85
+:10D1E000910F02D90920BDE8F0814A498D4216D33A
+:10D1F000AF4214D3854205D2874203D245EA0600E6
+:10D20000800701D01020EEE78E4208D33AB92846B5
+:10D21000FFF7ADFF18B93846FFF7A9FF08B10F2097
+:10D22000E1E73D483D490068884205D02246314645
+:10D230002846FFF7D8FE10E0FFF784FF0028D2D180
+:10D240002E4801218560C0E9036481704FF4A97103
+:10D2500004FB01F01830FFF75BFF0020C3E770B557
+:10D260004FF08055044628692A49B1FBF0F084420A
+:10D270000AD300F03EFBA04201D8102070BD2869FF
+:10D280006043FFF774FF08B10F2070BD22482349A7
+:10D290000068884204D02869604300F017FB0CE066
+:10D2A000FFF750FF0028F0D12969144861438160DD
+:10D2B000022181701A48FFF72BFF002070BD15482E
+:10D2C000010B01208840401E704770B50D46044692
+:10D2D000FFF7F5FF204201D00F2070BD2946204600
+:10D2E000BDE8704000F08FBD10B5044C6078F3F7D6
+:10D2F00065FB00202070A07010BD00006C010020B4
+:10D3000004E5014000E40140105C0C002412002000
+:10D3100059D0010000F0010098000020BEBAFECAFA
+:10D320007C5E010000210170084670470146002024
+:10D3300008707047EFF3108101F0010172B60278B6
+:10D34000012A01D0012200E000220123037001B96B
+:10D3500062B60AB1002070474FF400507047E9E709
+:10D36000EFF3108111F0010F72B64FF0000202705E
+:10D3700000D162B600207047F2E700005649096804
+:10D380000160002070475449086000207047012167
+:10D390008A0720B1012804D042F204007047916747
+:10D3A00000E0D167002070474C490120086042F23C
+:10D3B0000600704708B50423484A1907103230B1F7
+:10D3C000C1F80433106840F0010010600BE01068F1
+:10D3D00020F001001060C1F808330020C1F80801F6
+:10D3E0003F4800680090002008BD3C49103140B122
+:10D3F00001280CD0022812D0032816D042F20500D2
+:10D400007047086820F01E0040F0100004E0086833
+:10D4100020F01E0040F014000860002070470868EB
+:10D4200020F01E0040F01800F6E7086820F01E000B
+:10D4300040F01C00F0E7294924310A6802430A60E1
+:10D4400000207047254924310A6882430A60002081
+:10D450007047224924310968016000207047012883
+:10D4600001D9072070471F4A52F8200002680A437A
+:10D47000026000207047012801D907207047194A2F
+:10D4800052F8200002688A43026000207047012899
+:10D4900001D907207047134A52F82000006808603D
+:10D4A00000207047020010494FF0000003D0012A0D
+:10D4B00001D0072070470A6070474FF0804100207C
+:10D4C000C1F808014FF0E020802180F8001401210C
+:10D4D000C0F8001170470000000400400005004043
+:10D4E00008010040ECE60100780500406249634B0A
+:10D4F0000A6863499A42096801D1C1F310010160C9
+:10D50000002070475C495D4B0A685D49091D9A42DD
+:10D5100001D1C0F310000860002070475649574BF6
+:10D520000A68574908319A4201D1C0F310000860D7
+:10D530000020704730B5504B504D1C6842F2080334
+:10D54000AC4202D0142802D203E0112801D31846BD
+:10D5500030BDC3004B481844C0F81015C0F814255E
+:10D56000002030BD4449454B0A6842F209019A4205
+:10D5700002D0062802D203E0042801D308467047EF
+:10D58000404A012142F83010002070473A493B4B95
+:10D590000A6842F209019A4202D0062802D203E048
+:10D5A000042801D308467047364A012102EBC00027
+:10D5B00041600020704770B52F4A304E314C1568DD
+:10D5C00042F2090304EB8002B54204D0062804D2DB
+:10D5D000C2F8001807E0042801D3184670BDC1F353
+:10D5E0001000C2F80008002070BD70B5224A234E1A
+:10D5F000244C156842F2090304EB8002B54204D0C2
+:10D60000062804D2D2F8000807E0042801D31846FF
+:10D6100070BDD2F80008C0F310000860002070BD93
+:10D62000174910B50831184808601120154A002123
+:10D6300002EBC003C3F81015C3F81415401C1428DE
+:10D64000F6D3002006E0042804D302EB8003C3F8DD
+:10D65000001807E002EB8003D3F80048C4F310047D
+:10D66000C3F80048401C0628EDD310BD0449064805
+:10D67000083108607047000098000020BEBAFECA5A
+:10D6800000F5014000F001400000FEFF10B572B649
+:10D6900000F0C6F850B1E3F733FEF3F7BCF8F4F747
+:10D6A00097FCECF764FB63490020086062B6002039
+:10D6B00010BD70B50D46044672B600F0B1F810B159
+:10D6C00062B6082070BDE3F791FDE3F71BFE02464A
+:10D6D000002043099B0003F1E02300F01F01D3F871
+:10D6E0000031CB40D9071DD0202803D222FA00F107
+:10D6F000C9071CD141B2002906DA01F00F0101F17E
+:10D70000E02191F8141D03E001F1E02191F80014EB
+:10D71000490908290BD251B1012908D0042906D0A2
+:10D72000052904D0401C6428D3D324B104E062B698
+:10D7300041F2010070BD404C2078022803D962B646
+:10D740004FF4805070BD3D49802081F8140DECF7F6
+:10D75000E5FA20780028607801D058B908E048B18F
+:10D76000202807D8A078212804D8012802D003E077
+:10D77000A07808B1072070BD2E49314808603148B3
+:10D780000560E3F7BFFD2146F4F708FCF2F7F6FF6A
+:10D7900000F0E6F8FFF722FC2046E3F77FFD0400E7
+:10D7A00062B603D0FFF772FF204670BD002070BD47
+:10D7B00010B5044600F034F800B1012020700020BC
+:10D7C00010BD214908600020704770B50C461F4904
+:10D7D0000D681E491E4E08310E60102807D0112812
+:10D7E0000CD012280FD0132811D0012013E0D4E957
+:10D7F0000001FFF75EFF354620600DE0FFF746FFB2
+:10D800000025206008E02068FFF7D2FF03E00E4902
+:10D8100020680860002020600C48001D056070BD75
+:10D82000044807490068884201D101207047002060
+:10D830007047000098000020F4E601000BE000E0D3
+:10D84000BEBAFECA84010020040000201005024078
+:10D85000010000012DE9F04184B088460746FEF73B
+:10D860007DFD05467E786A4601A94046F1F748F8F5
+:10D8700004000ED0012D1EBF032004B0BDE8F081CE
+:10D8800002AA40460199F0F741FF0298B0F8030060
+:10D890000AE0022D14D1042E12D3B7F80300BDF80C
+:10D8A0000020011D8A420BD3001D80B2A1198142C4
+:10D8B00038BF012008BF00209CBF04B0BDE8F08144
+:10D8C0004FF0020004B0BDE8F08100000B4A0221D5
+:10D8D00011600B490B68002BFCD0084B1B1D186016
+:10D8E00008680028FCD00020106008680028FCD0E0
+:10D8F00070474FF0805040697047000004E50140D8
+:10D9000000E4014010B54FF000040B460200204631
+:10D9100021461ED0012A04D0022A04D0032A1DD198
+:10D9200003E0012002E0022013E00320072B15D2C0
+:10D93000DFE803F0140406080A0C0E00012108E0D9
+:10D94000022106E0032104E0042102E0052100E0B9
+:10D950000621F2F7FDFF08B1204610BD0724FBE7C2
+:10D96000FE4805218170002101704170C170816005
+:10D970007047FB490A78022A06D0CA681044C8607A
+:10D98000C8683238F4F705B98A6810448860886836
+:10D99000F7E70378F349F44A13B1012B0ED011E0F5
+:10D9A0000379012B00D06BB943790BB1012B09D15D
+:10D9B0008368643B8B4205D2C0680EE00379012B7B
+:10D9C00002D00BB10020704743790BB1012BF9D184
+:10D9D000C368643B8B42F5D280689042F2D8012044
+:10D9E00070472DE9F04704460226F3F760FB006814
+:10D9F00000B1FFDFD94D01273CB12078B0B101283B
+:10DA000005D0022810D0032813D02F710CE06068D5
+:10DA1000C82807D3F4F73CF920B16068FFF7A9FFE5
+:10DA2000012603E0002601E000F0AFF93046BDE832
+:10DA3000F08728780028F7D16068FFF7AAFF002850
+:10DA4000E3D06068DFF81883007810B3A878042862
+:10DA500000D0FFDF0020474688F8000060680079AA
+:10DA6000C0B30020387160684079A0B30420787199
+:10DA700060688168E868F2F7D0FFB8606068C068E5
+:10DA80003230F8600320A870B549E878F3F73DF923
+:10DA9000CAE74FF00209404688F8009061680979AA
+:10DAA000D1B10021017161684979B9B10421417195
+:10DAB00061688968323181606168C968C160C06825
+:10DAC000A64C14346060F2F78FFF20606F7085F809
+:10DAD0000290A9E704E005E00321E3E70321E6E77C
+:10DAE0000120BFE70320C2E72DE9F0479B4C8846A1
+:10DAF000E178884200D0FFDFDFF86092002501273F
+:10DB0000974E09F11409B8F1090F76D2DFE808F051
+:10DB1000050D2A3D646A769E7E00A078032886D093
+:10DB2000A078022883D0FFDF81E7A078032803D004
+:10DB3000A078022800D0FFDF0420A0702571207893
+:10DB400000285FD1FFF715FF3078022806D0B068B3
+:10DB5000E06000F06CF92061002048E0E078F2F726
+:10DB60007AFFF5E7A078032803D0A078022800D038
+:10DB7000FFDF207878BBA078032812D1042026E0AC
+:10DB80000420F4F77FFAA57051E7A078032803D0AA
+:10DB9000A078022800D0FFDF2078E0B9A078032821
+:10DBA00014D0F2F721FF01464F46D9F80000F4F7F0
+:10DBB00044F80028E4DB79688142E1DB081AF06070
+:10DBC0006749E078BDE8F047F3F79FB80520F4F720
+:10DBD00059FAA7702BE724E0A078042800D0FFDFD3
+:10DBE000022004E0A078042800D0FFDF0120A16813
+:10DBF0008847FFF7F6FE05462EE027E0A0780428C8
+:10DC000000D0FFDFBDE8F04700F0BFB8A0780428DF
+:10DC100005D0607810B1A078022800D0FFDF20780E
+:10DC200018B1BDE8F04700F0B9B8207920B106205E
+:10DC3000F4F728FA2571CCE7607828B14849E078F4
+:10DC4000F3F763F86570F2E60720C0E7FFDFEEE662
+:10DC50003DB1012D03D0FFDF022DF9D1E7E604200D
+:10DC6000C5E70320C3E770B5050005D03B4CA0789D
+:10DC7000052803D0112070BD102070BD3B48F2F77D
+:10DC80004DFEE070E07818B1A5600020A07070BD76
+:10DC9000032070BD314810B5017809B1112010BDC5
+:10DCA000817805290CD0817801290BD0817849B180
+:10DCB000012101708178012904D0807810B103E03E
+:10DCC0000F2010BD00F06AF8002010BD2DE9F041D2
+:10DCD000224E0446B07808B101280AD164B120462A
+:10DCE000FFF757FE50B120781D4D48B1B07801289C
+:10DCF00022D00F20BDE8F0811020FBE70720F9E7D4
+:10DD000002272F70207998B100202871607988B19E
+:10DD100004206871A0683230A860E068E860E868B4
+:10DD20000E4C14346060F2F75FFE2060B77022E0A2
+:10DD30000320EAE70320ECE700202870207900B3F5
+:10DD4000002028716079F0B104206871A168F06842
+:10DD5000F2F763FEA860E068323009E08801002035
+:10DD6000341200203D860100FF1FA107E9DA0100FF
+:10DD7000E8600320B0701049F078F2F7C6FF002089
+:10DD8000B8E70320DDE70320DFE70C4810B50069A2
+:10DD900000F045F8BDE81040F2F755BD10B5074C4E
+:10DDA000E078F2F70BFE0820F4F76CF90520A0707C
+:10DDB00000202070607010BD341200208801002007
+:10DDC0001F490968014201D00120704700207047B7
+:10DDD0001B49091D0968014201D00120704700203C
+:10DDE0007047174910310968014201D0012070477E
+:10DDF00000207047124914310968014201D0012006
+:10DE000070470020704710B50D4C2060201D016048
+:10DE10000B4810300260001D0360002010BD09494E
+:10DE20000A6848F202139A4302430A607047054A9F
+:10DE3000116848F2021301EA030099431160704728
+:10DE400000060040C80602407047704770477047A0
+:10DE500040EA010310B59B070FD1042A0DD310C867
+:10DE600008C9121F9C42F8D020BA19BA884201D9B9
+:10DE7000012010BD4FF0FF3010BD1AB1D30703D001
+:10DE8000521C07E0002010BD10F8013B11F8014BB7
+:10DE90001B1B07D110F8013B11F8014B1B1B01D1D3
+:10DEA000921EF1D1184610BD032A40F2308010F0C6
+:10DEB000030C00F0158011F8013BBCF1020F624425
+:10DEC00098BF11F801CB00F8013B38BF11F8013BB6
+:10DED000A2F1040298BF00F801CB38BF00F8013B63
+:10DEE00011F0030300F02580083AC0F0088051F8D3
+:10DEF000043B083A51F804CBA0E80810F5E7121DDE
+:10DF00005CBF51F8043B40F8043BAFF30080D207FC
+:10DF100024BF11F8013B11F801CB48BF11F8012BC8
+:10DF200024BF00F8013B00F801CB48BF00F8012BEB
+:10DF3000704710B5203AC0F00B80B1E81850203A75
+:10DF4000A0E81850B1E81850A0E81850BFF4F5AF99
+:10DF50005FEA027C24BFB1E81850A0E8185044BF23
+:10DF600018C918C0BDE810405FEA827C24BF51F890
+:10DF7000043B40F8043B08BF7047D20728BF31F884
+:10DF8000023B48BF11F8012B28BF20F8023B48BFD5
+:10DF900000F8012B70474FF000020429C0F01280F6
+:10DFA00010F0030C00F01B80CCF1040CBCF1020F4C
+:10DFB00018BF00F8012BA8BF20F8022BA1EB0C0121
+:10DFC00000F00DB85FEAC17C24BF00F8012B00F817
+:10DFD000012B48BF00F8012B70474FF0000200B53D
+:10DFE000134694469646203922BFA0E80C50A0E87C
+:10DFF0000C50B1F12001BFF4F7AF090728BFA0E82A
+:10E000000C5048BF0CC05DF804EB890028BF40F8F5
+:10E01000042B08BF704748BF20F8022B11F0804F37
+:10E0200018BF00F8012B7047704770477047000019
+:10E03000164B1860164B1960164B1A607047FEDFBE
+:10E040000420714608421BD10699134A914217DCFD
+:10E05000069902394878DF2812D10878FE2808D0BE
+:10E06000FF280DD14FF001004FF000020B4B1B6851
+:10E07000184741F201000099019A084B1B681847A4
+:10E0800006980599064B1B68DB681847A801002015
+:10E09000AC010020B001002000F00100840100204C
+:10E0A00004000020184819497047FFF7FBFFE3F709
+:10E0B00075F800BD4FF4805015490968884203D1B6
+:10E0C000144A13605B68184700BD000020BFFDE7DD
+:10E0D0004FF480500E490968884210D10E4B1868E1
+:10E0E0004FF0FF318842F1D080F308884FF02021B3
+:10E0F000884204DD0948026802210A430260084898
+:10E10000804708488047FFDF48120020481200205F
+:10E11000000000200400002000F001002405004061
+:10E12000152A0100B5E0010004207146084202D022
+:10E13000EFF3098101E0EFF3088188690238007884
+:10E14000102813DB20280FDB2B280BDB0A4A126870
+:10E150000A4B9A4203D1602804DB094A1047022087
+:10E1600008607047074A1047074A1047074A126875
+:10E170002C3212681047000098000020BEBAFECA78
+:10E180000913000029CE0100CBD7010004000020B4
+:10E190000E4B0F4908470F4B0D4908470E4B0C49D2
+:10E1A00008470E4B0A4908470D4B094908470D4BD4
+:10E1B000074908470C4B064908470C4B04490847D8
+:10E1C0000B4B034908470B4B01490847AD9B000027
+:10E1D000619F0000AD2E0000D59700005997000008
+:10E1E000532F000025130000932E0000CF9800004D
+:10E1F000E99E0000A91100000021016081807047A4
+:10E20000002101604160017270470A6802600B7969
+:10E210000371704715850000C3860000E984000083
+:10E22000B9870000DD870000178800004B880000D8
+:10E2300085880000B5880000078900009112000061
+:10E24000911200002F2300006D2300008D23000099
+:10E25000432400007F250000512600008126000095
+:10E260004B2700003D1F000083290000652A0000A5
+:10E27000852A00008B320000AF320000DF31000041
+:10E2800033320000E1320000753300004B460000DD
+:10E290000F480000B74B0000D34C0000574D000062
+:10E2A000F54D0000674E0000834F00005150000004
+:10E2B000CF5000009F2A0000A52A0000AF2A0000CE
+:10E2C000F71E00007F2B0000C91E0000D52C0000A7
+:10E2D00091120000911200009112000091120000B2
+:10E2E00091120000215C0000A75C0000C35C0000EC
+:10E2F000DF5C00006D5E0000095D0000135D000042
+:10E30000555D0000775D0000535E0000955E0000E3
+:10E31000911200002D7500004D7500004F75000032
+:10E3200089750000B7750000B37600005D770000C6
+:10E3300071770000BF770000A57800005B7A0000CD
+:10E340009B7B00005B660000B37B00009112000025
+:10E350009112000025930000639300008593000054
+:10E36000100110013A0200001A0200040506000024
+:10E37000FFFFFFFF0000FFFF298F0000A11B00002F
+:10E38000AB580000A5660000E77F00000000000019
+:10E39000557D0000698000004980000000000000F9
+:10E3A00000000000CDC700000000000000000000D9
+:10E3B0000000000013D80000000000000000000072
+:10E3C0000000000029C80000ADC8000000000000E7
+:10E3D000000000006BCC000031CA00006FD10000CB
+:10E3E000000000000000000003DD0000000000004D
+:10E3F000000000000000000011CD0000E1D8000086
+:10E4000000000000B1D9000025DA00000000000083
+:10E410000BD20000BDD2000000000000EBD90000CC
+:10E420009DD30000ADD500001FD6000013D700001B
+:10E43000C5CE0000A9D7000000000000DDCD00001F
+:10E44000000000001DCB000093CA000041D800006E
+:10E4500081DB0000EFDB000000000000FBC80000D3
+:10E460003DC900005BC800000000000077C9000043
+:10E4700000000000AFC90000E5C9000047DC000053
+:10E4800000000000BBCF0000E9D0000087D00000F2
+:10E4900027D10000CFCC0000BFCA000097CC0000FD
+:10E4A0004BDE000033CC000051DD00000000000016
+:10E4B000AFDC000051CB00006BCA0000CBDD0000D8
+:10E4C0007FDF000051CD000035DF000055CF000098
+:10E4D000A9DE0000FBDE0000ED3C0000ED3C00008A
+:10E4E000032300008D8E0000276900007B58000088
+:10E4F0000000000031960100313D0000313D000078
+:10E500002D230000E78E00009F6900008558000061
+:10E51000C183010057960100BC01BC013E002C00E4
+:10E520005400140018016001010000000100000007
+:10E530000001020304000F1011120000001300007C
+:10E54000A9CB010077CC0100C9CC010015CD010099
+:10E5500069CD0100A3C60100C5C701002DC8010097
+:10E5600051CA010033CB010077F0000051010100D6
+:10E5700000000000060000000A0000003200000059
+:10E5800073000000B40000007B7201000B64010006
+:10E59000A77201000D6401007B43010033AA010052
+:10E5A0007556010033AA0100E54301007BAB010071
+:10E5B0001D4F01007BAB0100F34201000BAB0100DA
+:10E5C000575501000BAB0100555555D6BE898E003D
+:10E5D00000006606F30C801300000A033B066C097A
+:10E5E00000005604D308500D555555252627D6BE94
+:10E5F000898EF401FA00960064004B0032001E0080
+:10E6000014000000210000000000000000000300D2
+:10E61000656C746200000000000000000000000053
+:10E620000000000087000000000000000000000063
+:10E6300000000000BE83605ADB0B376038A5F5AAE6
+:10E640009183886CEDD4010005D501001DD5010032
+:10E6500035D5010065D501008DD50100B7D5010084
+:10E66000EBD501005FD20100AFD10100CBD2010098
+:10E6700025D3010035D3010061D301003B22010005
+:10E6800043220100512201008FD30100A9D30100D0
+:10E690007DD3010087D30100B5D30100EBD3010086
+:10E6A00037D4010045D4010053D401005FD40100E8
+:10E6B00077D401008FD40100A5D401000000000030
+:10E6C00073990000C9990000DF99000005D9010085
+:10E6D0009DCE010063CF010067DC010095DC0100E5
+:10E6E000CDDC010031200100152501001C05004092
+:10E6F000200500400010020018E70100080000207B
+:10E70000AC0100004411000040E70100B40100200A
+:10E710009410000080110000013F021A173601001A
+:10E720000100683720FB349B5F80041F80001002CB
+:10E730002C01337F0102A029024410E431E00100E2
+:00000001FF
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/armgcc/armgcc_s132v3_nrf52832_xxaa.ld nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/armgcc/armgcc_s132v3_nrf52832_xxaa.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/armgcc/armgcc_s132v3_nrf52832_xxaa.ld
@@ -0,0 +1,34 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x61000
+  RAM (rwx) :  ORIGIN = 0x200019c0, LENGTH = 0xe640
+}
+
+SECTIONS
+{
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/iar/iar_s132v3_nrf52832_xxaa.icf nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/iar/iar_s132v3_nrf52832_xxaa.icf
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v3/toolchain/iar/iar_s132v3_nrf52832_xxaa.icf
@@ -0,0 +1,37 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__ = 0x1f000;
+/*-Memory Regions-*/
+define symbol __ICFEDIT_region_ROM_start__   = 0x1f000;
+define symbol __ICFEDIT_region_ROM_end__     = 0x7ffff;
+define symbol __ICFEDIT_region_RAM_start__   = 0x200019c0;
+define symbol __ICFEDIT_region_RAM_end__     = 0x2000ffff;
+export symbol __ICFEDIT_region_RAM_start__;
+export symbol __ICFEDIT_region_RAM_end__;
+/*-Sizes-*/
+define symbol __ICFEDIT_size_cstack__   = ;
+define symbol __ICFEDIT_size_heap__     = ;
+/**** End of ICF editor section. ###ICF###*/
+
+define memory mem with size = 4G;
+define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
+define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];
+
+
+define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
+define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };
+define block RO_END    with alignment = 8, size = 0     { };
+
+initialize by copy { readwrite };
+do not initialize  { section .noinit };
+
+keep { section .intvec };
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place in ROM_region   { readonly,
+                        block RO_END };
+place in RAM_region   { readwrite,
+                        block CSTACK,
+                        block HEAP };
+
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble.h
@@ -0,0 +1,628 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_COMMON BLE SoftDevice Common
+  @{
+  @defgroup ble_api Events, type definitions and API calls
+  @{
+
+  @brief Module independent events, type definitions and API calls for the BLE SoftDevice.
+
+ */
+
+#ifndef BLE_H__
+#define BLE_H__
+
+#include <stdint.h>
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+#include "ble_gap.h"
+#include "ble_l2cap.h"
+#include "ble_gatt.h"
+#include "ble_gattc.h"
+#include "ble_gatts.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_COMMON_ENUMERATIONS Enumerations
+ * @{ */
+
+/**
+ * @brief Common API SVC numbers.
+ */
+enum BLE_COMMON_SVCS
+{
+  SD_BLE_ENABLE = BLE_SVC_BASE,         /**< Enable and initialize the BLE stack */
+  SD_BLE_EVT_GET,                       /**< Get an event from the pending events queue. */
+  SD_BLE_UUID_VS_ADD,                   /**< Add a Vendor Specific UUID. */
+  SD_BLE_UUID_DECODE,                   /**< Decode UUID bytes. */
+  SD_BLE_UUID_ENCODE,                   /**< Encode UUID bytes. */
+  SD_BLE_VERSION_GET,                   /**< Get the local version information (company ID, Link Layer Version, Link Layer Subversion). */
+  SD_BLE_USER_MEM_REPLY,                /**< User Memory Reply. */
+  SD_BLE_OPT_SET,                       /**< Set a BLE option. */
+  SD_BLE_OPT_GET,                       /**< Get a BLE option. */
+  SD_BLE_CFG_SET,                       /**< Add a configuration to the BLE stack. */
+};
+
+/**
+ * @brief BLE Module Independent Event IDs.
+ */
+enum BLE_COMMON_EVTS
+{
+  BLE_EVT_USER_MEM_REQUEST = BLE_EVT_BASE + 0,   /**< User Memory request. @ref ble_evt_user_mem_request_t */
+  BLE_EVT_USER_MEM_RELEASE = BLE_EVT_BASE + 1,   /**< User Memory release. @ref ble_evt_user_mem_release_t */
+};
+
+/**@brief BLE Connection Configuration IDs.
+ *
+ * IDs that uniquely identify a connection configuration.
+ */
+enum BLE_CONN_CFGS
+{
+    BLE_CONN_CFG_GAP   = BLE_CONN_CFG_BASE + 0, /**< BLE GAP specific connection configuration. */
+    BLE_CONN_CFG_GATTC = BLE_CONN_CFG_BASE + 1, /**< BLE GATTC specific connection configuration. */
+    BLE_CONN_CFG_GATTS = BLE_CONN_CFG_BASE + 2, /**< BLE GATTS specific connection configuration. */
+    BLE_CONN_CFG_GATT  = BLE_CONN_CFG_BASE + 3, /**< BLE GATT specific connection configuration. */
+    BLE_CONN_CFG_L2CAP = BLE_CONN_CFG_BASE + 4, /**< BLE L2CAP specific connection configuration. */
+};
+
+/**@brief BLE Common Configuration IDs.
+ *
+ * IDs that uniquely identify a common configuration.
+ */
+enum BLE_COMMON_CFGS
+{
+  BLE_COMMON_CFG_VS_UUID = BLE_CFG_BASE, /**< Vendor specific UUID configuration */
+};
+
+/**@brief Common Option IDs.
+ * IDs that uniquely identify a common option.
+ */
+enum BLE_COMMON_OPTS
+{
+  BLE_COMMON_OPT_PA_LNA       = BLE_OPT_BASE + 0, /**< PA and LNA options */
+  BLE_COMMON_OPT_CONN_EVT_EXT = BLE_OPT_BASE + 1, /**< Extended connection events option */
+};
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_DEFINES Defines
+ * @{ */
+
+/** @brief  Required pointer alignment for BLE Events.
+*/
+#define BLE_EVT_PTR_ALIGNMENT    4
+
+/** @brief  Leaves the maximum of the two arguments.
+*/
+#define BLE_MAX(a, b) ((a) < (b) ? (b) : (a))
+
+/** @brief  Maximum possible length for BLE Events.
+ * @note The highest value used for @ref ble_gatt_conn_cfg_t::att_mtu in any connection configuration shall be used as a parameter.
+ * If that value has not been configured for any connections then @ref BLE_GATT_ATT_MTU_DEFAULT must be used instead.
+*/
+#define BLE_EVT_LEN_MAX(ATT_MTU) ( \
+  BLE_MAX( \
+    sizeof(ble_evt_t), \
+    offsetof(ble_evt_t, evt.gattc_evt.params.prim_srvc_disc_rsp.services) + ((ATT_MTU) - 1) / 4 * sizeof(ble_gattc_service_t) \
+  ) \
+)
+
+/** @defgroup BLE_USER_MEM_TYPES User Memory Types
+ * @{ */
+#define BLE_USER_MEM_TYPE_INVALID               0x00  /**< Invalid User Memory Types. */
+#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES   0x01  /**< User Memory for GATTS queued writes. */
+/** @} */
+
+/** @defgroup BLE_UUID_VS_COUNTS Vendor Specific UUID counts
+ * @{
+ */
+#define BLE_UUID_VS_COUNT_DEFAULT 10  /**< Default VS UUID count. */
+#define BLE_UUID_VS_COUNT_MAX     254 /**< Maximum VS UUID count. */
+/** @} */
+
+/** @defgroup BLE_COMMON_CFG_DEFAULTS Configuration defaults.
+ * @{
+ */
+#define BLE_CONN_CFG_TAG_DEFAULT  0    /**< Default configuration tag, SoftDevice default connection configuration. */
+
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_STRUCTURES Structures
+ * @{ */
+
+/**@brief User Memory Block. */
+typedef struct
+{
+  uint8_t          *p_mem;      /**< Pointer to the start of the user memory block. */
+  uint16_t          len;        /**< Length in bytes of the user memory block. */
+} ble_user_mem_block_t;
+
+/**@brief Event structure for @ref BLE_EVT_USER_MEM_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;     /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+} ble_evt_user_mem_request_t;
+
+/**@brief Event structure for @ref BLE_EVT_USER_MEM_RELEASE. */
+typedef struct
+{
+  uint8_t                     type;       /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+  ble_user_mem_block_t        mem_block;  /**< User memory block */
+} ble_evt_user_mem_release_t;
+
+/**@brief Event structure for events not associated with a specific function module. */
+typedef struct
+{
+  uint16_t conn_handle;                                 /**< Connection Handle on which this event occurred. */
+  union
+  {
+    ble_evt_user_mem_request_t      user_mem_request;    /**< User Memory Request Event Parameters. */
+    ble_evt_user_mem_release_t      user_mem_release;    /**< User Memory Release Event Parameters. */
+  } params;                                              /**< Event parameter union. */
+} ble_common_evt_t;
+
+/**@brief BLE Event header. */
+typedef struct
+{
+  uint16_t evt_id;                /**< Value from a BLE_<module>_EVT series. */
+  uint16_t evt_len;               /**< Length in octets including this header. */
+} ble_evt_hdr_t;
+
+/**@brief Common BLE Event type, wrapping the module specific event reports. */
+typedef struct
+{
+  ble_evt_hdr_t header;           /**< Event header. */
+  union
+  {
+    ble_common_evt_t  common_evt; /**< Common Event, evt_id in BLE_EVT_* series. */
+    ble_gap_evt_t     gap_evt;    /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */
+    ble_gattc_evt_t   gattc_evt;  /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */
+    ble_gatts_evt_t   gatts_evt;  /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */
+    ble_l2cap_evt_t   l2cap_evt;  /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */
+  } evt;                          /**< Event union. */
+} ble_evt_t;
+
+
+/**
+ * @brief Version Information.
+ */
+typedef struct
+{
+  uint8_t   version_number;    /**< Link Layer Version number. See https://www.bluetooth.org/en-us/specification/assigned-numbers/link-layer for assigned values. */
+  uint16_t  company_id;        /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */
+  uint16_t  subversion_number; /**< Link Layer Sub Version number, corresponds to the SoftDevice Config ID or Firmware ID (FWID). */
+} ble_version_t;
+
+/**
+ * @brief Configuration parameters for the PA and LNA.
+ */
+typedef struct
+{
+     uint8_t enable :1;      /**< Enable toggling for this amplifier */
+     uint8_t active_high :1; /**< Set the pin to be active high */
+     uint8_t gpio_pin :6;    /**< The GPIO pin to toggle for this amplifier */
+} ble_pa_lna_cfg_t;
+
+/**
+ * @brief PA & LNA GPIO toggle configuration
+ *
+ * This option configures the SoftDevice to toggle pins when the radio is active for use with a power amplifier and/or
+ * a low noise amplifier.
+ *
+ * Toggling the pins is achieved by using two PPI channels and a GPIOTE channel. The hardware channel IDs are provided
+ * by the application and should be regarded as reserved as long as any PA/LNA toggling is enabled.
+ *
+ * @note  @ref sd_ble_opt_get is not supported for this option.
+ * @note  Setting this option while the radio is in use (i.e. any of the roles are active) may have undefined consequences
+ * and must be avoided by the application.
+ */
+typedef struct
+{
+   ble_pa_lna_cfg_t pa_cfg;   /**< Power Amplifier configuration */
+   ble_pa_lna_cfg_t lna_cfg;  /**< Low Noise Amplifier configuration */
+
+   uint8_t ppi_ch_id_set;     /**< PPI channel used for radio pin setting */
+   uint8_t ppi_ch_id_clr;     /**< PPI channel used for radio pin clearing */
+   uint8_t gpiote_ch_id;      /**< GPIOTE channel used for radio pin toggling */
+} ble_common_opt_pa_lna_t;
+
+/**
+ * @brief Configuration of extended BLE connection events.
+ *
+ * When enabled the SoftDevice will dynamically extend the connection event when possible.
+ *
+ * The connection event length is controlled by the connection configuration as set by @ref ble_gap_conn_cfg_t::event_length.
+ * The connection event can be extended if there is time to send another packet pair before the start of the next connection interval,
+ * and if there are no conflicts with other BLE roles requesting radio time.
+ *
+ * @note @ref sd_ble_opt_get is not supported for this option.
+ */
+typedef struct
+{
+   uint8_t enable : 1; /**< Enable extended BLE connection events, disabled by default. */
+} ble_common_opt_conn_evt_ext_t;
+
+/**@brief Option structure for common options. */
+typedef union
+{
+  ble_common_opt_pa_lna_t       pa_lna;        /**< Parameters for controlling PA and LNA pin toggling. */
+  ble_common_opt_conn_evt_ext_t conn_evt_ext;  /**< Parameters for enabling extended connection events. */
+} ble_common_opt_t;
+
+/**@brief Common BLE Option type, wrapping the module specific options. */
+typedef union
+{
+  ble_common_opt_t  common_opt;         /**< COMMON options, opt_id in @ref BLE_COMMON_OPTS series. */
+  ble_gap_opt_t     gap_opt;            /**< GAP option, opt_id in @ref BLE_GAP_OPTS series. */
+} ble_opt_t;
+
+/**@brief BLE connection configuration type, wrapping the module specific configurations, set with
+ * @ref sd_ble_cfg_set.
+ *
+ * @note Connection configurations don't have to be set.
+ * In the case that no configurations has been set, or fewer connection configurations has been set than enabled connections,
+ * the default connection configuration will be automatically added for the remaining connections.
+ * When creating connections with the default configuration, @ref BLE_CONN_CFG_TAG_DEFAULT should be used in
+ * place of @ref ble_conn_cfg_t::conn_cfg_tag.
+ *
+ * @sa sd_ble_gap_adv_start()
+ * @sa sd_ble_gap_connect()
+ *
+ * @mscs
+ * @mmsc{@ref BLE_CONN_CFG}
+ * @endmscs
+
+ */
+typedef struct
+{
+  uint8_t              conn_cfg_tag;        /**< The application chosen tag it can use with the
+                                                 @ref sd_ble_gap_adv_start() and @ref sd_ble_gap_connect() calls
+                                                 to select this configuration when creating a connection.
+                                                 Must be different for all connection configurations added and not @ref BLE_CONN_CFG_TAG_DEFAULT. */
+  union {
+    ble_gap_conn_cfg_t   gap_conn_cfg;      /**< GAP connection configuration, cfg_id is @ref BLE_CONN_CFG_GAP. */
+    ble_gattc_conn_cfg_t gattc_conn_cfg;    /**< GATTC connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTC. */
+    ble_gatts_conn_cfg_t gatts_conn_cfg;    /**< GATTS connection configuration, cfg_id is @ref BLE_CONN_CFG_GATTS. */
+    ble_gatt_conn_cfg_t  gatt_conn_cfg;     /**< GATT connection configuration, cfg_id is @ref BLE_CONN_CFG_GATT. */
+    ble_l2cap_conn_cfg_t l2cap_conn_cfg;    /**< L2CAP connection configuration, cfg_id is @ref BLE_CONN_CFG_L2CAP. */
+  } params;                                 /**< Connection configuration union. */
+} ble_conn_cfg_t;
+
+/**
+ * @brief Configuration of Vendor Specific UUIDs, set with @ref sd_ble_cfg_set.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM Too many UUIDs configured.
+ */
+typedef struct
+{
+  uint8_t vs_uuid_count; /**< Number of 128-bit Vendor Specific UUID bases to allocate memory for.
+                              Default value is @ref BLE_UUID_VS_COUNT_DEFAULT. Maximum value is
+                              @ref BLE_UUID_VS_COUNT_MAX. */
+} ble_common_cfg_vs_uuid_t;
+
+/**@brief Common BLE Configuration type, wrapping the common configurations. */
+typedef union
+{
+  ble_common_cfg_vs_uuid_t  vs_uuid_cfg;  /**< Vendor specific UUID configuration, cfg_id is @ref BLE_COMMON_CFG_VS_UUID. */
+} ble_common_cfg_t;
+
+/**@brief BLE Configuration type, wrapping the module specific configurations. */
+typedef union
+{
+  ble_conn_cfg_t    conn_cfg;   /**< Connection specific configurations, cfg_id in @ref BLE_CONN_CFGS series. */
+  ble_common_cfg_t  common_cfg; /**< Global common configurations, cfg_id in @ref BLE_COMMON_CFGS series. */
+  ble_gap_cfg_t     gap_cfg;    /**< Global GAP configurations, cfg_id in @ref BLE_GAP_CFGS series. */
+  ble_gatts_cfg_t   gatts_cfg;  /**< Global GATTS configuration, cfg_id in @ref BLE_GATTS_CFGS series. */
+} ble_cfg_t;
+
+/** @} */
+
+/** @addtogroup BLE_COMMON_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Enable the BLE stack
+ *
+ * @param[in, out] p_app_ram_base   Pointer to a variable containing the start address of the
+ *                                  application RAM region (APP_RAM_BASE). On return, this will
+ *                                  contain the minimum start address of the application RAM region
+ *                                  required by the SoftDevice for this configuration.
+ *
+ * @note The memory requirement for a specific configuration will not increase between SoftDevices
+ *       with the same major version number.
+ *
+ * @note The value of *p_app_ram_base when the app has done no custom configuration of the
+ *       SoftDevice, i.e. the app has not called @ref sd_ble_cfg_set before @ref sd_ble_enable, can
+ *       be found in the release notes.
+ *
+ * @note At runtime the IC's RAM is split into 2 regions: The SoftDevice RAM region is located
+ *       between 0x20000000 and APP_RAM_BASE-1 and the application's RAM region is located between
+ *       APP_RAM_BASE and the start of the call stack.
+ *
+ * @details This call initializes the BLE stack, no BLE related function other than @ref
+ *          sd_ble_cfg_set can be called before this one.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_ENABLE}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS              The BLE stack has been initialized successfully.
+ * @retval ::NRF_ERROR_INVALID_STATE  The BLE stack had already been initialized and cannot be reinitialized.
+ * @retval ::NRF_ERROR_INVALID_ADDR   Invalid or not sufficiently aligned pointer supplied.
+ * @retval ::NRF_ERROR_NO_MEM         The amount of memory assigned to the SoftDevice by *p_app_ram_base is not
+ *                                    large enough to fit this configuration's memory requirement. Check *p_app_ram_base
+ *                                    and set the start address of the application RAM region accordingly.
+ */
+SVCALL(SD_BLE_ENABLE, uint32_t, sd_ble_enable(uint32_t * p_app_ram_base));
+
+/**@brief Add configurations for the BLE stack
+ *
+ * @param[in] cfg_id              Config ID, see @ref BLE_CONN_CFGS, @ref BLE_COMMON_CFGS, @ref
+ *                                BLE_GAP_CFGS or @ref BLE_GATTS_CFGS.
+ * @param[in] p_cfg               Pointer to a ble_cfg_t structure containing the configuration value.
+ * @param[in] app_ram_base        The start address of the application RAM region (APP_RAM_BASE).
+ *                                See @ref sd_ble_enable for details about APP_RAM_BASE.
+ *
+ * @note The memory requirement for a specific configuration will not increase between SoftDevices
+ *       with the same major version number.
+ *
+ * @note If a configuration is set more than once, the last one set is the one that takes effect on
+ *       @ref sd_ble_enable.
+ *
+ * @note Any part of the BLE stack that is NOT configured with @ref sd_ble_cfg_set will have default
+ *       configuration.
+ *
+ * @note @ref sd_ble_cfg_set may be called at any time when the SoftDevice is enabled (see @ref
+ *       sd_softdevice_enable) while the BLE part of the SoftDevice is not enabled (see @ref
+ *       sd_ble_enable).
+ *
+ * @note Error codes for the configurations are described in the configuration structs.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_ENABLE}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS              The configuration has been added successfully.
+ * @retval ::NRF_ERROR_INVALID_STATE  The BLE stack had already been initialized.
+ * @retval ::NRF_ERROR_INVALID_ADDR   Invalid or not sufficiently aligned pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM  Invalid cfg_id supplied.
+ * @retval ::NRF_ERROR_NO_MEM         The amount of memory assigned to the SoftDevice by app_ram_base is not
+ *                                    large enough to fit this configuration's memory requirement.
+ */
+SVCALL(SD_BLE_CFG_SET, uint32_t, sd_ble_cfg_set(uint32_t cfg_id, ble_cfg_t const * p_cfg, uint32_t app_ram_base));
+
+/**@brief Get an event from the pending events queue.
+ *
+ * @param[out] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length.
+ *                    This buffer <b>must be aligned to the extend defined by @ref BLE_EVT_PTR_ALIGNMENT</b>.
+ *                    The buffer should be interpreted as a @ref ble_evt_t struct.
+ * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length.
+ *
+ * @details This call allows the application to pull a BLE event from the BLE stack. The application is signaled that
+ * an event is available from the BLE stack by the triggering of the SD_EVT_IRQn interrupt.
+ * The application is free to choose whether to call this function from thread mode (main context) or directly from the
+ * Interrupt Service Routine that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher
+ * priority than the application, this function should be called in a loop (until @ref NRF_ERROR_NOT_FOUND is returned)
+ * every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the BLE stack. Failure to do so
+ * could potentially leave events in the internal queue without the application being aware of this fact.
+ *
+ * Sizing the p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to
+ * be copied into application memory. If the buffer provided is not large enough to fit the entire contents of the event,
+ * @ref NRF_ERROR_DATA_SIZE will be returned and the application can then call again with a larger buffer size.
+ * The maximum possible event length is defined by @ref BLE_EVT_LEN_MAX. The application may also "peek" the event length
+ * by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return:
+ *
+ *     \code
+ *     uint16_t len;
+ *     errcode = sd_ble_evt_get(NULL, &len);
+ *     \endcode
+ *
+ * @mscs
+ * @mmsc{@ref BLE_COMMON_IRQ_EVT_MSC}
+ * @mmsc{@ref BLE_COMMON_THREAD_EVT_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Event pulled and stored into the supplied buffer.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND No events ready to be pulled.
+ * @retval ::NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer.
+ */
+SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t *p_dest, uint16_t *p_len));
+
+
+/**@brief Add a Vendor Specific base UUID.
+ *
+ * @details This call enables the application to add a vendor specific base UUID to the BLE stack's table, for later
+ * use with all other modules and APIs. This then allows the application to use the shorter, 24-bit @ref ble_uuid_t
+ * format when dealing with both 16-bit and 128-bit UUIDs without having to check for lengths and having split code
+ * paths. This is accomplished by extending the grouping mechanism that the Bluetooth SIG standard base UUID uses
+ * for all other 128-bit UUIDs. The type field in the @ref ble_uuid_t structure is an index (relative to
+ * @ref BLE_UUID_TYPE_VENDOR_BEGIN) to the table populated by multiple calls to this function, and the UUID field
+ * in the same structure contains the 2 bytes at indexes 12 and 13. The number of possible 128-bit UUIDs available to
+ * the application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536,
+ * although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array.
+ *
+ * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by
+ * the 16-bit uuid field in @ref ble_uuid_t.
+ *
+ * @note If a UUID is already present in the BLE stack's internal table, the corresponding index will be returned in
+ * p_uuid_type along with an @ref NRF_SUCCESS error code.
+ *
+ * @param[in]  p_vs_uuid    Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding
+ *                          bytes 12 and 13.
+ * @param[out] p_uuid_type  Pointer to a uint8_t where the type field in @ref ble_uuid_t corresponding to this UUID will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added the Vendor Specific UUID.
+ * @retval ::NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid.
+ * @retval ::NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs.
+ */
+SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const *p_vs_uuid, uint8_t *p_uuid_type));
+
+
+/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure.
+ *
+ * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared
+ * to the corresponding ones in each entry of the table of vendor specific UUIDs populated with @ref sd_ble_uuid_vs_add
+ * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index
+ * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type.
+ *
+ * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE.
+ *
+ * @param[in]   uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes).
+ * @param[in]   p_uuid_le   Pointer pointing to little endian raw UUID bytes.
+ * @param[out]  p_uuid      Pointer to a @ref ble_uuid_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid UUID length.
+ * @retval ::NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs.
+ */
+SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const *p_uuid_le, ble_uuid_t *p_uuid));
+
+
+/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit).
+ *
+ * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validity and size of p_uuid is computed.
+ *
+ * @param[in]   p_uuid        Pointer to a @ref ble_uuid_t structure that will be encoded into bytes.
+ * @param[out]  p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes).
+ * @param[out]  p_uuid_le     Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully encoded into the buffer.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid UUID type.
+ */
+SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const *p_uuid, uint8_t *p_uuid_le_len, uint8_t *p_uuid_le));
+
+
+/**@brief Get Version Information.
+ *
+ * @details This call allows the application to get the BLE stack version information.
+ *
+ * @param[out] p_version Pointer to a ble_version_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS  Version information stored successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy (typically doing a locally-initiated disconnection procedure).
+ */
+SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t *p_version));
+
+
+/**@brief Provide a user memory block.
+ *
+ * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_block Pointer to a user memory block structure or NULL if memory is managed by the application.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully queued a response to the peer.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid user memory block length supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection state or no user memory request pending.
+ */
+SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t const *p_block));
+
+/**@brief Set a BLE option.
+ *
+ * @details This call allows the application to set the value of an option.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC}
+ * @endmscs
+ *
+ * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS.
+ * @param[in] p_opt Pointer to a ble_opt_t structure containing the option value.
+ *
+ * @retval ::NRF_SUCCESS  Option set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Unable to set the parameter at this time.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed.
+ */
+SVCALL(SD_BLE_OPT_SET, uint32_t, sd_ble_opt_set(uint32_t opt_id, ble_opt_t const *p_opt));
+
+
+/**@brief Get a BLE option.
+ *
+ * @details This call allows the application to retrieve the value of an option.
+ *
+ * @param[in] opt_id Option ID, see @ref BLE_COMMON_OPTS and @ref BLE_GAP_OPTS.
+ * @param[out] p_opt Pointer to a ble_opt_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS  Option retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Unable to retrieve the parameter at this time.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy or the previous procedure has not completed.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED This option is not supported.
+ *
+ */
+SVCALL(SD_BLE_OPT_GET, uint32_t, sd_ble_opt_get(uint32_t opt_id, ble_opt_t *p_opt));
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_err.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_err.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_err.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @addtogroup  nrf_error
+  @{
+    @ingroup BLE_COMMON
+  @}
+
+  @defgroup ble_err General error codes
+  @{
+
+  @brief General error code definitions for the BLE API.
+
+  @ingroup BLE_COMMON
+*/
+#ifndef NRF_BLE_ERR_H__
+#define NRF_BLE_ERR_H__
+
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* @defgroup BLE_ERRORS Error Codes
+ * @{ */
+#define BLE_ERROR_NOT_ENABLED            (NRF_ERROR_STK_BASE_NUM+0x001) /**< @ref sd_ble_enable has not been called. */
+#define BLE_ERROR_INVALID_CONN_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid connection handle. */
+#define BLE_ERROR_INVALID_ATTR_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x003) /**< Invalid attribute handle. */
+#define BLE_ERROR_INVALID_ROLE           (NRF_ERROR_STK_BASE_NUM+0x004) /**< Invalid role. */
+/** @} */
+
+
+/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges
+ *  @brief Assignment of subranges for module specific error codes.
+ *  @note For specific error codes, see ble_<module>.h or ble_error_<module>.h.
+ * @{ */
+#define NRF_L2CAP_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */
+#define NRF_GAP_ERR_BASE               (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */
+#define NRF_GATTC_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */
+#define NRF_GATTS_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gap.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gap.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gap.h
@@ -0,0 +1,2189 @@
+/*
+ * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_GAP Generic Access Profile (GAP)
+  @{
+  @brief Definitions and prototypes for the GAP interface.
+ */
+
+#ifndef BLE_GAP_H__
+#define BLE_GAP_H__
+
+#include <stdint.h>
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup BLE_GAP_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GAP API SVC numbers.
+ */
+enum BLE_GAP_SVCS
+{
+  SD_BLE_GAP_ADDR_SET              = BLE_GAP_SVC_BASE,       /**< Set own Bluetooth Address. */
+  SD_BLE_GAP_ADDR_GET              = BLE_GAP_SVC_BASE + 1,   /**< Get own Bluetooth Address. */
+  SD_BLE_GAP_WHITELIST_SET         = BLE_GAP_SVC_BASE + 2,   /**< Set active whitelist. */
+  SD_BLE_GAP_DEVICE_IDENTITIES_SET = BLE_GAP_SVC_BASE + 3,   /**< Set device identity list. */
+  SD_BLE_GAP_PRIVACY_SET           = BLE_GAP_SVC_BASE + 4,   /**< Set Privacy settings*/
+  SD_BLE_GAP_PRIVACY_GET           = BLE_GAP_SVC_BASE + 5,   /**< Get Privacy settings*/
+  SD_BLE_GAP_ADV_DATA_SET          = BLE_GAP_SVC_BASE + 6,   /**< Set Advertising Data. */
+  SD_BLE_GAP_ADV_START             = BLE_GAP_SVC_BASE + 7,   /**< Start Advertising. */
+  SD_BLE_GAP_ADV_STOP              = BLE_GAP_SVC_BASE + 8,   /**< Stop Advertising. */
+  SD_BLE_GAP_CONN_PARAM_UPDATE     = BLE_GAP_SVC_BASE + 9,   /**< Connection Parameter Update. */
+  SD_BLE_GAP_DISCONNECT            = BLE_GAP_SVC_BASE + 10,  /**< Disconnect. */
+  SD_BLE_GAP_TX_POWER_SET          = BLE_GAP_SVC_BASE + 11,  /**< Set TX Power. */
+  SD_BLE_GAP_APPEARANCE_SET        = BLE_GAP_SVC_BASE + 12,  /**< Set Appearance. */
+  SD_BLE_GAP_APPEARANCE_GET        = BLE_GAP_SVC_BASE + 13,  /**< Get Appearance. */
+  SD_BLE_GAP_PPCP_SET              = BLE_GAP_SVC_BASE + 14,  /**< Set PPCP. */
+  SD_BLE_GAP_PPCP_GET              = BLE_GAP_SVC_BASE + 15,  /**< Get PPCP. */
+  SD_BLE_GAP_DEVICE_NAME_SET       = BLE_GAP_SVC_BASE + 16,  /**< Set Device Name. */
+  SD_BLE_GAP_DEVICE_NAME_GET       = BLE_GAP_SVC_BASE + 17,  /**< Get Device Name. */
+  SD_BLE_GAP_AUTHENTICATE          = BLE_GAP_SVC_BASE + 18,  /**< Initiate Pairing/Bonding. */
+  SD_BLE_GAP_SEC_PARAMS_REPLY      = BLE_GAP_SVC_BASE + 19,  /**< Reply with Security Parameters. */
+  SD_BLE_GAP_AUTH_KEY_REPLY        = BLE_GAP_SVC_BASE + 20,  /**< Reply with an authentication key. */
+  SD_BLE_GAP_LESC_DHKEY_REPLY      = BLE_GAP_SVC_BASE + 21,  /**< Reply with an LE Secure Connections DHKey. */
+  SD_BLE_GAP_KEYPRESS_NOTIFY       = BLE_GAP_SVC_BASE + 22,  /**< Notify of a keypress during an authentication procedure. */
+  SD_BLE_GAP_LESC_OOB_DATA_GET     = BLE_GAP_SVC_BASE + 23,  /**< Get the local LE Secure Connections OOB data. */
+  SD_BLE_GAP_LESC_OOB_DATA_SET     = BLE_GAP_SVC_BASE + 24,  /**< Set the remote LE Secure Connections OOB data. */
+  SD_BLE_GAP_ENCRYPT               = BLE_GAP_SVC_BASE + 25,  /**< Initiate encryption procedure. */
+  SD_BLE_GAP_SEC_INFO_REPLY        = BLE_GAP_SVC_BASE + 26,  /**< Reply with Security Information. */
+  SD_BLE_GAP_CONN_SEC_GET          = BLE_GAP_SVC_BASE + 27,  /**< Obtain connection security level. */
+  SD_BLE_GAP_RSSI_START            = BLE_GAP_SVC_BASE + 28,  /**< Start reporting of changes in RSSI. */
+  SD_BLE_GAP_RSSI_STOP             = BLE_GAP_SVC_BASE + 29,  /**< Stop reporting of changes in RSSI. */
+  SD_BLE_GAP_SCAN_START            = BLE_GAP_SVC_BASE + 30,  /**< Start Scanning. */
+  SD_BLE_GAP_SCAN_STOP             = BLE_GAP_SVC_BASE + 31,  /**< Stop Scanning. */
+  SD_BLE_GAP_CONNECT               = BLE_GAP_SVC_BASE + 32,  /**< Connect. */
+  SD_BLE_GAP_CONNECT_CANCEL        = BLE_GAP_SVC_BASE + 33,  /**< Cancel ongoing connection procedure. */
+  SD_BLE_GAP_RSSI_GET              = BLE_GAP_SVC_BASE + 34,  /**< Get the last RSSI sample. */
+  SD_BLE_GAP_PHY_UPDATE            = BLE_GAP_SVC_BASE + 35,  /**< Initiate or respond to a PHY Update Procedure. */
+  SD_BLE_GAP_DATA_LENGTH_UPDATE    = BLE_GAP_SVC_BASE + 36,  /**< Initiate or respond to a Data Length Update Procedure. */
+};
+
+/**@brief GAP Event IDs.
+ * IDs that uniquely identify an event coming from the stack to the application.
+ */
+enum BLE_GAP_EVTS
+{
+  BLE_GAP_EVT_CONNECTED                   = BLE_GAP_EVT_BASE,
+  BLE_GAP_EVT_DISCONNECTED                = BLE_GAP_EVT_BASE + 1,   /**< Disconnected from peer.                         \n See @ref ble_gap_evt_disconnected_t.         */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE           = BLE_GAP_EVT_BASE + 2,   /**< Connection Parameters updated.                  \n See @ref ble_gap_evt_conn_param_update_t.    */
+  BLE_GAP_EVT_SEC_PARAMS_REQUEST          = BLE_GAP_EVT_BASE + 3,   /**< Request to provide security parameters.         \n Reply with @ref sd_ble_gap_sec_params_reply.  \n See @ref ble_gap_evt_sec_params_request_t. */
+  BLE_GAP_EVT_SEC_INFO_REQUEST            = BLE_GAP_EVT_BASE + 4,   /**< Request to provide security information.        \n Reply with @ref sd_ble_gap_sec_info_reply.    \n See @ref ble_gap_evt_sec_info_request_t.   */
+  BLE_GAP_EVT_PASSKEY_DISPLAY             = BLE_GAP_EVT_BASE + 5,   /**< Request to display a passkey to the user.       \n In LESC Numeric Comparison, reply with @ref sd_ble_gap_auth_key_reply. \n See @ref ble_gap_evt_passkey_display_t. */
+  BLE_GAP_EVT_KEY_PRESSED                 = BLE_GAP_EVT_BASE + 6,   /**< Notification of a keypress on the remote device.\n See @ref ble_gap_evt_key_pressed_t           */
+  BLE_GAP_EVT_AUTH_KEY_REQUEST            = BLE_GAP_EVT_BASE + 7,   /**< Request to provide an authentication key.       \n Reply with @ref sd_ble_gap_auth_key_reply.    \n See @ref ble_gap_evt_auth_key_request_t.   */
+  BLE_GAP_EVT_LESC_DHKEY_REQUEST          = BLE_GAP_EVT_BASE + 8,   /**< Request to calculate an LE Secure Connections DHKey. \n Reply with @ref sd_ble_gap_lesc_dhkey_reply.  \n See @ref ble_gap_evt_lesc_dhkey_request_t */
+  BLE_GAP_EVT_AUTH_STATUS                 = BLE_GAP_EVT_BASE + 9,   /**< Authentication procedure completed with status. \n See @ref ble_gap_evt_auth_status_t.          */
+  BLE_GAP_EVT_CONN_SEC_UPDATE             = BLE_GAP_EVT_BASE + 10,  /**< Connection security updated.                    \n See @ref ble_gap_evt_conn_sec_update_t.      */
+  BLE_GAP_EVT_TIMEOUT                     = BLE_GAP_EVT_BASE + 11,  /**< Timeout expired.                                \n See @ref ble_gap_evt_timeout_t.              */
+  BLE_GAP_EVT_RSSI_CHANGED                = BLE_GAP_EVT_BASE + 12,  /**< RSSI report.                                    \n See @ref ble_gap_evt_rssi_changed_t.         */
+  BLE_GAP_EVT_ADV_REPORT                  = BLE_GAP_EVT_BASE + 13,  /**< Advertising report.                             \n See @ref ble_gap_evt_adv_report_t.           */
+  BLE_GAP_EVT_SEC_REQUEST                 = BLE_GAP_EVT_BASE + 14,  /**< Security Request.                               \n See @ref ble_gap_evt_sec_request_t.          */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST   = BLE_GAP_EVT_BASE + 15,  /**< Connection Parameter Update Request.            \n Reply with @ref sd_ble_gap_conn_param_update. \n See @ref ble_gap_evt_conn_param_update_request_t. */
+  BLE_GAP_EVT_SCAN_REQ_REPORT             = BLE_GAP_EVT_BASE + 16,  /**< Scan request report.                            \n See @ref ble_gap_evt_scan_req_report_t. */
+  BLE_GAP_EVT_PHY_UPDATE_REQUEST          = BLE_GAP_EVT_BASE + 17,  /**< PHY Update Request.                             \n Reply with @ref sd_ble_gap_phy_update. \n See @ref ble_gap_evt_phy_update_request_t. */
+  BLE_GAP_EVT_PHY_UPDATE                  = BLE_GAP_EVT_BASE + 18,  /**< PHY Update Procedure is complete.               \n See @ref ble_gap_evt_phy_update_t.           */
+  BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST = BLE_GAP_EVT_BASE + 19,  /**< Data Length Update Request.                     \n Reply with @ref sd_ble_gap_data_length_update.\n See @ref ble_gap_evt_data_length_update_request_t. */
+  BLE_GAP_EVT_DATA_LENGTH_UPDATE         = BLE_GAP_EVT_BASE + 20,  /**< LL Data Channel PDU payload length updated.     \n See @ref ble_gap_evt_data_length_update_t. */
+};
+
+/**@brief GAP Option IDs.
+ * IDs that uniquely identify a GAP option.
+ */
+enum BLE_GAP_OPTS
+{
+  BLE_GAP_OPT_CH_MAP                 = BLE_GAP_OPT_BASE,       /**< Channel Map. @ref ble_gap_opt_ch_map_t  */
+  BLE_GAP_OPT_LOCAL_CONN_LATENCY     = BLE_GAP_OPT_BASE + 1,   /**< Local connection latency. @ref ble_gap_opt_local_conn_latency_t */
+  BLE_GAP_OPT_PASSKEY                = BLE_GAP_OPT_BASE + 2,   /**< Set passkey. @ref ble_gap_opt_passkey_t */
+  BLE_GAP_OPT_SCAN_REQ_REPORT        = BLE_GAP_OPT_BASE + 3,   /**< Scan request report. @ref ble_gap_opt_scan_req_report_t */
+  BLE_GAP_OPT_COMPAT_MODE_1          = BLE_GAP_OPT_BASE + 4,   /**< Compatibility mode. @ref ble_gap_opt_compat_mode_1_t */
+  BLE_GAP_OPT_AUTH_PAYLOAD_TIMEOUT   = BLE_GAP_OPT_BASE + 5,   /**< Set Authenticated payload timeout. @ref ble_gap_opt_auth_payload_timeout_t */
+  BLE_GAP_OPT_SLAVE_LATENCY_DISABLE  = BLE_GAP_OPT_BASE + 6,   /**< Disable slave latency. @ref ble_gap_opt_slave_latency_disable_t */
+};
+
+/**@brief GAP Configuration IDs.
+ *
+ * IDs that uniquely identify a GAP configuration.
+ */
+enum BLE_GAP_CFGS
+{
+  BLE_GAP_CFG_ROLE_COUNT   = BLE_GAP_CFG_BASE,     /**< Role count configuration. */
+  BLE_GAP_CFG_DEVICE_NAME  = BLE_GAP_CFG_BASE + 1, /**< Device name configuration. */
+};
+
+/** @} */
+
+/**@addtogroup BLE_GAP_DEFINES Defines
+ * @{ */
+
+/**@defgroup BLE_ERRORS_GAP SVC return values specific to GAP
+ * @{ */
+#define BLE_ERROR_GAP_UUID_LIST_MISMATCH            (NRF_GAP_ERR_BASE + 0x000)  /**< UUID list does not contain an integral number of UUIDs. */
+#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST   (NRF_GAP_ERR_BASE + 0x001)  /**< Use of Whitelist not permitted with discoverable advertising. */
+#define BLE_ERROR_GAP_INVALID_BLE_ADDR              (NRF_GAP_ERR_BASE + 0x002)  /**< The upper two bits of the address do not correspond to the specified address type. */
+#define BLE_ERROR_GAP_WHITELIST_IN_USE              (NRF_GAP_ERR_BASE + 0x003)  /**< Attempt to modify the whitelist while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE      (NRF_GAP_ERR_BASE + 0x004)  /**< Attempt to modify the device identity list while already in use by another operation. */
+#define BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE   (NRF_GAP_ERR_BASE + 0x005)  /**< The device identity list contains entries with duplicate identity addresses. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ROLES GAP Roles
+ * @{ */
+#define BLE_GAP_ROLE_INVALID     0x0            /**< Invalid Role. */
+#define BLE_GAP_ROLE_PERIPH      0x1            /**< Peripheral Role. */
+#define BLE_GAP_ROLE_CENTRAL     0x2            /**< Central Role. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources
+ * @{ */
+#define BLE_GAP_TIMEOUT_SRC_ADVERTISING                0x00 /**< Advertising timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SCAN                       0x01 /**< Scanning timeout. */
+#define BLE_GAP_TIMEOUT_SRC_CONN                       0x02 /**< Connection timeout. */
+#define BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD               0x03 /**< Authenticated payload timeout. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADDR_TYPES GAP Address types
+ * @{ */
+#define BLE_GAP_ADDR_TYPE_PUBLIC                        0x00 /**< Public address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC                 0x01 /**< Random static address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     0x02 /**< Random private resolvable address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Random private non-resolvable address. */
+/**@} */
+
+
+/**@brief The default interval in seconds at which a private address is refreshed.  */
+#define BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S (900) /* 15 minutes. */
+/**@brief The maximum interval in seconds at which a private address can be refreshed.  */
+#define BLE_GAP_MAX_PRIVATE_ADDR_CYCLE_INTERVAL_S     (41400) /* 11 hours 30 minutes. */
+
+
+/** @brief BLE address length. */
+#define BLE_GAP_ADDR_LEN (6)
+
+
+/**@defgroup BLE_GAP_PRIVACY_MODES Privacy modes
+ * @{ */
+#define BLE_GAP_PRIVACY_MODE_OFF                       0x00 /**< Device will send and accept its identity address for its own address. */
+#define BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY            0x01 /**< Device will send and accept only private addresses for its own address. */
+#define BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY           0x02 /**< Device will send and accept only private addresses for its own address,
+                                                                 and will not accept a peer using identity address as sender address when
+                                                                 the peer IRK is exchanged, non-zero and added to the identity list. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format
+ * @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm
+ * @{ */
+#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
+#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
+#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
+#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
+#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data - 16-bit UUID. */
+#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
+#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
+#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
+#define BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL                0x1A /**< Advertising Interval. */
+#define BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS         0x1B /**< LE Bluetooth Device Address. */
+#define BLE_GAP_AD_TYPE_LE_ROLE                             0x1C /**< LE Role. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256            0x1D /**< Simple Pairing Hash C-256. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256      0x1E /**< Simple Pairing Randomizer R-256. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID             0x20 /**< Service Data - 32-bit UUID. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID            0x21 /**< Service Data - 128-bit UUID. */
+#define BLE_GAP_AD_TYPE_LESC_CONFIRMATION_VALUE             0x22 /**< LE Secure Connections Confirmation Value */
+#define BLE_GAP_AD_TYPE_LESC_RANDOM_VALUE                   0x23 /**< LE Secure Connections Random Value */
+#define BLE_GAP_AD_TYPE_URI                                 0x24 /**< URI */
+#define BLE_GAP_AD_TYPE_3D_INFORMATION_DATA                 0x3D /**< 3D Information Data. */
+#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags
+ * @{ */
+#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE         (0x01)   /**< LE Limited Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE         (0x02)   /**< LE General Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED         (0x04)   /**< BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER         (0x08)   /**< Simultaneous LE and BR/EDR, Controller. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST               (0x10)   /**< Simultaneous LE and BR/EDR, Host. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE Limited Discoverable Mode, BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE General Discoverable Mode, BR/EDR not supported. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min
+ * @{ */
+#define BLE_GAP_ADV_INTERVAL_MIN        0x0020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */
+#define BLE_GAP_ADV_INTERVAL_MAX        0x4000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. */
+ /**@}  */
+
+
+/**@defgroup BLE_GAP_SCAN_INTERVALS GAP Scan interval max and min
+ * @{ */
+#define BLE_GAP_SCAN_INTERVAL_MIN       0x0004 /**< Minimum Scan interval in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_INTERVAL_MAX       0x4000 /**< Maximum Scan interval in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_WINDOW GAP Scan window max and min
+ * @{ */
+#define BLE_GAP_SCAN_WINDOW_MIN         0x0004 /**< Minimum Scan window in 625 us units, i.e. 2.5 ms. */
+#define BLE_GAP_SCAN_WINDOW_MAX         0x4000 /**< Maximum Scan window in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/**@defgroup BLE_GAP_SCAN_TIMEOUT GAP Scan timeout max and min
+ * @{ */
+#define BLE_GAP_SCAN_TIMEOUT_MIN        0x0001 /**< Minimum Scan timeout in seconds. */
+#define BLE_GAP_SCAN_TIMEOUT_MAX        0xFFFF /**< Maximum Scan timeout in seconds. */
+ /** @}  */
+
+
+/**@brief Maximum size of advertising data in octets. */
+#define BLE_GAP_ADV_MAX_SIZE            (31)
+
+
+/**@defgroup BLE_GAP_ADV_TYPES GAP Advertising types
+ * @{ */
+#define BLE_GAP_ADV_TYPE_ADV_IND          0x00   /**< Connectable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND   0x01   /**< Connectable directed. */
+#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND     0x02   /**< Scannable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND  0x03   /**< Non connectable undirected. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies
+ * @{ */
+#define BLE_GAP_ADV_FP_ANY                0x00   /**< Allow scan requests and connect requests from any device. */
+#define BLE_GAP_ADV_FP_FILTER_SCANREQ     0x01   /**< Filter scan requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_CONNREQ     0x02   /**< Filter connect requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_BOTH        0x03   /**< Filter both scan and connect requests with whitelist. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values
+ * @{ */
+#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX       (180) /**< Maximum advertising time in limited discoverable mode (TGAP(lim_adv_timeout) = 180 s). */
+#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED (0)   /**< Unlimited advertising in general discoverable mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_DISC_MODES GAP Discovery modes
+ * @{ */
+#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE  0x00   /**< Not discoverable discovery Mode. */
+#define BLE_GAP_DISC_MODE_LIMITED           0x01   /**< Limited Discovery Mode. */
+#define BLE_GAP_DISC_MODE_GENERAL           0x02   /**< General Discovery Mode. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_IO_CAPS GAP IO Capabilities
+ * @{ */
+#define BLE_GAP_IO_CAPS_DISPLAY_ONLY      0x00   /**< Display Only. */
+#define BLE_GAP_IO_CAPS_DISPLAY_YESNO     0x01   /**< Display and Yes/No entry. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY     0x02   /**< Keyboard Only. */
+#define BLE_GAP_IO_CAPS_NONE              0x03   /**< No I/O capabilities. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY  0x04   /**< Keyboard and Display. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types
+ * @{ */
+#define BLE_GAP_AUTH_KEY_TYPE_NONE        0x00   /**< No key (may be used to reject). */
+#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY     0x01   /**< 6-digit Passkey. */
+#define BLE_GAP_AUTH_KEY_TYPE_OOB         0x02   /**< Out Of Band data. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_KP_NOT_TYPES GAP Keypress Notification Types
+ * @{ */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_START       0x00   /**< Passkey entry started. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_IN    0x01   /**< Passkey digit entered. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_DIGIT_OUT   0x02   /**< Passkey digit erased. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_CLEAR       0x03   /**< Passkey cleared. */
+#define BLE_GAP_KP_NOT_TYPE_PASSKEY_END         0x04   /**< Passkey entry completed. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS GAP Security status
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SUCCESS                0x00  /**< Procedure completed with success. */
+#define BLE_GAP_SEC_STATUS_TIMEOUT                0x01  /**< Procedure timed out. */
+#define BLE_GAP_SEC_STATUS_PDU_INVALID            0x02  /**< Invalid PDU received. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_BEGIN       0x03  /**< Reserved for Future Use range #1 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE1_END         0x80  /**< Reserved for Future Use range #1 end. */
+#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED   0x81  /**< Passkey entry failed (user canceled or other). */
+#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE      0x82  /**< Out of Band Key not available. */
+#define BLE_GAP_SEC_STATUS_AUTH_REQ               0x83  /**< Authentication requirements not met. */
+#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE          0x84  /**< Confirm value failed. */
+#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP       0x85  /**< Pairing not supported.  */
+#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE           0x86  /**< Encryption key size. */
+#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED    0x87  /**< Unsupported SMP command. */
+#define BLE_GAP_SEC_STATUS_UNSPECIFIED            0x88  /**< Unspecified reason. */
+#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS      0x89  /**< Too little time elapsed since last attempt. */
+#define BLE_GAP_SEC_STATUS_INVALID_PARAMS         0x8A  /**< Invalid parameters. */
+#define BLE_GAP_SEC_STATUS_DHKEY_FAILURE          0x8B  /**< DHKey check failure. */
+#define BLE_GAP_SEC_STATUS_NUM_COMP_FAILURE       0x8C  /**< Numeric Comparison failure. */
+#define BLE_GAP_SEC_STATUS_BR_EDR_IN_PROG         0x8D  /**< BR/EDR pairing in progress. */
+#define BLE_GAP_SEC_STATUS_X_TRANS_KEY_DISALLOWED 0x8E  /**< BR/EDR Link Key cannot be used for LE keys. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_BEGIN       0x8F  /**< Reserved for Future Use range #2 begin. */
+#define BLE_GAP_SEC_STATUS_RFU_RANGE2_END         0xFF  /**< Reserved for Future Use range #2 end. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL           0x00  /**< Local failure. */
+#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE          0x01  /**< Remote failure. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits
+ * @{ */
+#define BLE_GAP_CP_MIN_CONN_INTVL_NONE           0xFFFF  /**< No new minimum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MIN            0x0006  /**< Lowest minimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MAX            0x0C80  /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_NONE           0xFFFF  /**< No new maximum connection interval specified in connect parameters. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MIN            0x0006  /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MAX            0x0C80  /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_SLAVE_LATENCY_MAX             0x01F3  /**< Highest slave latency permitted, in connection events. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE         0xFFFF  /**< No new supervision timeout specified in connect parameters. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN          0x000A  /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX          0x0C80  /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_DEVNAME GAP device name defines.
+ * @{ */
+#define BLE_GAP_DEVNAME_DEFAULT                  "nRF5x" /**< Default device name value. */
+#define BLE_GAP_DEVNAME_DEFAULT_LEN              31      /**< Default number of octets in device name. */
+#define BLE_GAP_DEVNAME_MAX_LEN                  248     /**< Maximum number of octets in device name. */
+/**@} */
+
+
+/**@brief Disable RSSI events for connections */
+#define BLE_GAP_RSSI_THRESHOLD_INVALID 0xFF
+
+/**@defgroup BLE_GAP_PHYS GAP PHYs
+ * @{ */
+#define BLE_GAP_PHY_AUTO                         0x00    /**< Automatic PHY selection. Refer @ref sd_ble_gap_phy_update for more information.*/
+#define BLE_GAP_PHY_1MBPS                        0x01    /**< 1 Mbps PHY. */
+#define BLE_GAP_PHY_2MBPS                        0x02    /**< 2 Mbps PHY. */
+#define BLE_GAP_PHY_CODED                        0x04    /**< Coded PHY. */
+
+/**@} */
+
+/**@defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters
+ *
+ * See @ref ble_gap_conn_sec_mode_t.
+ * @{ */
+/**@brief Set sec_mode pointed to by ptr to have no access rights.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr)          do {(ptr)->sm = 0; (ptr)->lv = 0;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require no protection, open link.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)               do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr)        do {(ptr)->sm = 1; (ptr)->lv = 2;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr)      do {(ptr)->sm = 1; (ptr)->lv = 3;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require LESC encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_LESC_ENC_WITH_MITM(ptr) do {(ptr)->sm = 1; (ptr)->lv = 4;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr)     do {(ptr)->sm = 2; (ptr)->lv = 1;} while(0)
+/**@brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr)   do {(ptr)->sm = 2; (ptr)->lv = 2;} while(0)
+/**@} */
+
+
+/**@brief GAP Security Random Number Length. */
+#define BLE_GAP_SEC_RAND_LEN 8
+
+
+/**@brief GAP Security Key Length. */
+#define BLE_GAP_SEC_KEY_LEN 16
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key Length. */
+#define BLE_GAP_LESC_P256_PK_LEN 64
+
+
+/**@brief GAP LE Secure Connections Elliptic Curve Diffie-Hellman DHKey Length. */
+#define BLE_GAP_LESC_DHKEY_LEN   32
+
+
+/**@brief GAP Passkey Length. */
+#define BLE_GAP_PASSKEY_LEN 6
+
+
+/**@brief Maximum amount of addresses in the whitelist. */
+#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8)
+
+
+/**@brief Maximum amount of identities in the device identities list. */
+#define BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT (8)
+
+
+/**@brief Default connection count for a configuration. */
+#define BLE_GAP_CONN_COUNT_DEFAULT (1)
+
+
+/**@defgroup BLE_GAP_EVENT_LENGTH GAP event length defines.
+ * @{ */
+#define BLE_GAP_EVENT_LENGTH_MIN     (2)  /**< Minimum event length, in 1.25 ms units. */
+#define BLE_GAP_EVENT_LENGTH_DEFAULT (3)  /**< Default event length, in 1.25 ms units. */
+/**@} */
+
+
+/**@defgroup BLE_GAP_ROLE_COUNT GAP concurrent connection count defines.
+ * @{ */
+#define BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT      (1)   /**< Default maximum number of connections concurrently acting as peripherals. */
+#define BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT     (3)   /**< Default maximum number of connections concurrently acting as centrals. */
+#define BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT (1)   /**< Default number of SMP instances shared between all connections acting as centrals. */
+#define BLE_GAP_ROLE_COUNT_COMBINED_MAX        (20)  /**< Maximum supported number of concurrent connections in the peripheral and central roles combined. */
+
+/**@} */
+
+/**@brief Automatic data length parameter. */
+#define BLE_GAP_DATA_LENGTH_AUTO 0
+
+/**@defgroup BLE_GAP_AUTH_PAYLOAD_TIMEOUT Authenticated payload timeout defines.
+  * @{ */
+#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX (48000) /**< Maximum authenticated payload timeout in 10 ms units, i.e. 8 minutes. */
+#define BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MIN (1)     /**< Minimum authenticated payload timeout in 10 ms units, i.e. 10 ms. */
+/**@} */
+
+/**@defgroup GAP_SEC_MODES GAP Security Modes
+ * @{ */
+#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */
+/**@} */
+/** @} */
+
+
+/**@addtogroup BLE_GAP_STRUCTURES Structures
+ * @{ */
+
+/**@brief Bluetooth Low Energy address. */
+typedef struct
+{
+  uint8_t addr_id_peer : 1;       /**< Only valid for peer addresses.
+                                       Reference to peer in device identities list (as set with @ref sd_ble_gap_device_identities_set) when peer is using privacy. */
+  uint8_t addr_type    : 7;       /**< See @ref BLE_GAP_ADDR_TYPES. */
+  uint8_t addr[BLE_GAP_ADDR_LEN]; /**< 48-bit address, LSB format. */
+} ble_gap_addr_t;
+
+
+/**@brief GAP connection parameters.
+ *
+ * @note  When ble_conn_params_t is received in an event, both min_conn_interval and
+ *        max_conn_interval will be equal to the connection interval set by the central.
+ *
+ * @note  If both conn_sup_timeout and max_conn_interval are specified, then the following constraint applies:
+ *        conn_sup_timeout * 4 > (1 + slave_latency) * max_conn_interval
+ *        that corresponds to the following Bluetooth Spec requirement:
+ *        The Supervision_Timeout in milliseconds shall be larger than
+ *        (1 + Conn_Latency) * Conn_Interval_Max * 2, where Conn_Interval_Max is given in milliseconds.
+ */
+typedef struct
+{
+  uint16_t min_conn_interval;         /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t max_conn_interval;         /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t slave_latency;             /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t conn_sup_timeout;          /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+} ble_gap_conn_params_t;
+
+
+/**@brief GAP connection security modes.
+ *
+ * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n
+ * Security Mode 1 Level 1: No security is needed (aka open link).\n
+ * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n
+ * Security Mode 1 Level 3: MITM protected encrypted link required.\n
+ * Security Mode 1 Level 4: LESC MITM protected encrypted link using a 128-bit strength encryption key required.\n
+ * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n
+ * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n
+ */
+typedef struct
+{
+  uint8_t sm : 4;                     /**< Security Mode (1 or 2), 0 for no permissions at all. */
+  uint8_t lv : 4;                     /**< Level (1, 2, 3 or 4), 0 for no permissions at all. */
+
+} ble_gap_conn_sec_mode_t;
+
+
+/**@brief GAP connection security status.*/
+typedef struct
+{
+  ble_gap_conn_sec_mode_t sec_mode;           /**< Currently active security mode for this connection.*/
+  uint8_t                 encr_key_size;      /**< Length of currently active encryption key, 7 to 16 octets (only applicable for bonding procedures). */
+} ble_gap_conn_sec_t;
+
+/**@brief Identity Resolving Key. */
+typedef struct
+{
+  uint8_t irk[BLE_GAP_SEC_KEY_LEN];   /**< Array containing IRK. */
+} ble_gap_irk_t;
+
+
+/**@brief Channel mask for RF channels used in advertising. */
+typedef struct
+{
+  uint8_t ch_37_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 37 */
+  uint8_t ch_38_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 38 */
+  uint8_t ch_39_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 39 */
+} ble_gap_adv_ch_mask_t;
+
+
+/**@brief GAP advertising parameters. */
+typedef struct
+{
+  uint8_t               type;                 /**< See @ref BLE_GAP_ADV_TYPES. */
+  ble_gap_addr_t const *p_peer_addr;          /**< Address of a known peer.
+                                                   - When privacy is enabled and the local device use @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE addresses, the device identity list is searched for a matching
+                                                     entry. If the local IRK for that device identity is set, the local IRK for that device will be used to generate the advertiser address field in the advertise packet.
+                                                   - If type is @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this must be set to the targeted initiator. If the initiator is in the device identity list,
+                                                     the peer IRK for that device will be used to generate the initiator address field in the ADV_DIRECT_IND packet. */
+  uint8_t               fp;                   /**< Filter Policy, see @ref BLE_GAP_ADV_FILTER_POLICIES. */
+  uint16_t              interval;             /**< Advertising interval between 0x0020 and 0x4000 in 0.625 ms units (20 ms to 10.24 s), see @ref BLE_GAP_ADV_INTERVALS.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for high duty cycle directed advertising.
+                                                   - If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, set @ref BLE_GAP_ADV_INTERVAL_MIN <= interval <= @ref BLE_GAP_ADV_INTERVAL_MAX for low duty cycle advertising.*/
+  uint16_t              timeout;              /**< Advertising timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. See also @ref BLE_GAP_ADV_TIMEOUT_VALUES. If type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND, this parameter must be set to 0 for High duty cycle directed advertising. */
+  ble_gap_adv_ch_mask_t channel_mask;         /**< Advertising channel mask. See @ref ble_gap_adv_ch_mask_t. */
+} ble_gap_adv_params_t;
+
+
+/**@brief GAP scanning parameters. */
+typedef struct
+{
+  uint8_t  active         : 1;  /**< If 1, perform active scanning (scan requests). */
+  uint8_t  use_whitelist  : 1;  /**< If 1, filter advertisers using current active whitelist. */
+  uint8_t  adv_dir_report : 1;  /**< If 1, also report directed advertisements where the initiator field is set to a private resolvable address,
+                                     even if the address did not resolve to an entry in the device identity list. A report will be generated
+                                     even if the peer is not in the whitelist. */
+  uint16_t interval;            /**< Scan interval between 0x0004 and 0x4000 in 0.625 ms units (2.5 ms to 10.24 s). */
+  uint16_t window;              /**< Scan window between 0x0004 and 0x4000 in 0.625 ms units (2.5 ms to 10.24 s). */
+  uint16_t timeout;             /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
+} ble_gap_scan_params_t;
+
+
+/**@brief Privacy.
+ *
+ *        The privacy feature provides a way for the device to avoid being tracked over a period of time.
+ *        The privacy feature, when enabled, hides the local device identity and replaces it with a private address
+ *        that is automatically refreshed at a specified interval.
+ *
+ *        If a device still wants to be recognized by other peers, it needs to share it's Identity Resolving Key (IRK).
+ *        With this key, a device can generate a random private address that can only be recognized by peers in possession of that key,
+ *        and devices can establish connections without revealing their real identities.
+ *
+ *        Both network privacy (@ref BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY) and device privacy (@ref BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY)
+ *        are supported.
+ *
+ * @note  If the device IRK is updated, the new IRK becomes the one to be distributed in all
+ *        bonding procedures performed after @ref sd_ble_gap_privacy_set returns.
+ *        The IRK distributed during bonding procedure is the device IRK that is active when @ref sd_ble_gap_sec_params_reply is called.
+ */
+typedef struct
+{
+  uint8_t        privacy_mode;         /**< Privacy mode, see @ref BLE_GAP_PRIVACY_MODES. Default is @ref BLE_GAP_PRIVACY_MODE_OFF. */
+  uint8_t        private_addr_type;    /**< The private address type must be either @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE or @ref BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE. */
+  uint16_t       private_addr_cycle_s; /**< Private address cycle interval in seconds. Providing an address cycle value of 0 will use the default value defined by @ref BLE_GAP_DEFAULT_PRIVATE_ADDR_CYCLE_INTERVAL_S. */
+  ble_gap_irk_t *p_device_irk;         /**< When used as input, pointer to IRK structure that will be used as the default IRK. If NULL, the device default IRK will be used.
+                                            When used as output, pointer to IRK structure where the current default IRK will be written to. If NULL, this argument is ignored.
+                                            By default, the default IRK is used to generate random private resolvable addresses for the local device unless instructed otherwise. */
+} ble_gap_privacy_params_t;
+
+
+/**@brief PHY preferences for TX and RX
+ * @note  tx_phys and rx_phys are bit fields. Multiple bits can be set in them to indicate multiple preferred PHYs for each direction.
+ * @code
+ * p_gap_phys->tx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS;
+ * p_gap_phys->rx_phys = BLE_GAP_PHY_1MBPS | BLE_GAP_PHY_2MBPS;
+ * @endcode
+ *
+ */
+typedef struct
+{
+  uint8_t tx_phys;     /**< Preferred transmit PHYs, see @ref BLE_GAP_PHYS. */
+  uint8_t rx_phys;     /**< Preferred receive PHYs, see @ref BLE_GAP_PHYS. */
+} ble_gap_phys_t;
+
+/** @brief Keys that can be exchanged during a bonding procedure. */
+typedef struct
+{
+  uint8_t enc     : 1;                        /**< Long Term Key and Master Identification. */
+  uint8_t id      : 1;                        /**< Identity Resolving Key and Identity Address Information. */
+  uint8_t sign    : 1;                        /**< Connection Signature Resolving Key. */
+  uint8_t link    : 1;                        /**< Derive the Link Key from the LTK. */
+} ble_gap_sec_kdist_t;
+
+
+/**@brief GAP security parameters. */
+typedef struct
+{
+  uint8_t               bond      : 1;             /**< Perform bonding. */
+  uint8_t               mitm      : 1;             /**< Enable Man In The Middle protection. */
+  uint8_t               lesc      : 1;             /**< Enable LE Secure Connection pairing. */
+  uint8_t               keypress  : 1;             /**< Enable generation of keypress notifications. */
+  uint8_t               io_caps   : 3;             /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */
+  uint8_t               oob       : 1;             /**< The OOB data flag.
+                                                        - In LE legacy pairing, this flag is set if a device has out of band authentication data.
+                                                          The OOB method is used if both of the devices have out of band authentication data.
+                                                        - In LE Secure Connections pairing, this flag is set if a device has the peer device's out of band authentication data.
+                                                          The OOB method is used if at least one device has the peer device's OOB data available. */
+  uint8_t               min_key_size;              /**< Minimum encryption key size in octets between 7 and 16. If 0 then not applicable in this instance. */
+  uint8_t               max_key_size;              /**< Maximum encryption key size in octets between min_key_size and 16. */
+  ble_gap_sec_kdist_t   kdist_own;                 /**< Key distribution bitmap: keys that the local device will distribute. */
+  ble_gap_sec_kdist_t   kdist_peer;                /**< Key distribution bitmap: keys that the remote device will distribute. */
+} ble_gap_sec_params_t;
+
+
+/**@brief GAP Encryption Information. */
+typedef struct
+{
+  uint8_t   ltk[BLE_GAP_SEC_KEY_LEN];   /**< Long Term Key. */
+  uint8_t   lesc : 1;                   /**< Key generated using LE Secure Connections. */
+  uint8_t   auth : 1;                   /**< Authenticated Key. */
+  uint8_t   ltk_len : 6;                /**< LTK length in octets. */
+} ble_gap_enc_info_t;
+
+
+/**@brief GAP Master Identification. */
+typedef struct
+{
+  uint16_t  ediv;                       /**< Encrypted Diversifier. */
+  uint8_t   rand[BLE_GAP_SEC_RAND_LEN]; /**< Random Number. */
+} ble_gap_master_id_t;
+
+
+/**@brief GAP Signing Information. */
+typedef struct
+{
+  uint8_t   csrk[BLE_GAP_SEC_KEY_LEN];        /**< Connection Signature Resolving Key. */
+} ble_gap_sign_info_t;
+
+
+/**@brief GAP LE Secure Connections P-256 Public Key. */
+typedef struct
+{
+  uint8_t   pk[BLE_GAP_LESC_P256_PK_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman P-256 Public Key. Stored in the standard SMP protocol format: {X,Y} both in little-endian. */
+} ble_gap_lesc_p256_pk_t;
+
+
+/**@brief GAP LE Secure Connections DHKey. */
+typedef struct
+{
+  uint8_t   key[BLE_GAP_LESC_DHKEY_LEN];        /**< LE Secure Connections Elliptic Curve Diffie-Hellman Key. Stored in little-endian. */
+} ble_gap_lesc_dhkey_t;
+
+
+/**@brief GAP LE Secure Connections OOB data. */
+typedef struct
+{
+  ble_gap_addr_t  addr;                          /**< Bluetooth address of the device. */
+  uint8_t         r[BLE_GAP_SEC_KEY_LEN];        /**< Random Number. */
+  uint8_t         c[BLE_GAP_SEC_KEY_LEN];        /**< Confirm Value. */
+} ble_gap_lesc_oob_data_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONNECTED. */
+typedef struct
+{
+  ble_gap_addr_t        peer_addr;              /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  uint8_t               role;                   /**< BLE role for this connection, see @ref BLE_GAP_ROLES */
+  ble_gap_conn_params_t conn_params;            /**< GAP Connection Parameters. */
+} ble_gap_evt_connected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_DISCONNECTED. */
+typedef struct
+{
+  uint8_t reason;                               /**< HCI error code, see @ref BLE_HCI_STATUS_CODES. */
+} ble_gap_evt_disconnected_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_PHY_UPDATE_REQUEST. */
+typedef struct
+{
+  ble_gap_phys_t peer_preferred_phys;            /**< The PHYs the peer prefers to use. */
+} ble_gap_evt_phy_update_request_t;
+
+/**@brief Event Structure for @ref BLE_GAP_EVT_PHY_UPDATE. */
+typedef struct
+{
+  uint8_t status;                               /**< Status of the procedure, see @ref BLE_HCI_STATUS_CODES.*/
+  uint8_t tx_phy;                               /**< TX PHY for this connection, see @ref BLE_GAP_PHYS. */
+  uint8_t rx_phy;                               /**< RX PHY for this connection, see @ref BLE_GAP_PHYS. */
+} ble_gap_evt_phy_update_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST. */
+typedef struct
+{
+  ble_gap_sec_params_t peer_params;             /**< Initiator Security Parameters. */
+} ble_gap_evt_sec_params_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_INFO_REQUEST. */
+typedef struct
+{
+  ble_gap_addr_t      peer_addr;                     /**< Bluetooth address of the peer device. */
+  ble_gap_master_id_t master_id;                     /**< Master Identification for LTK lookup. */
+  uint8_t             enc_info  : 1;                 /**< If 1, Encryption Information required. */
+  uint8_t             id_info   : 1;                 /**< If 1, Identity Information required. */
+  uint8_t             sign_info : 1;                 /**< If 1, Signing Information required. */
+} ble_gap_evt_sec_info_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_PASSKEY_DISPLAY. */
+typedef struct
+{
+  uint8_t passkey[BLE_GAP_PASSKEY_LEN];         /**< 6-digit passkey in ASCII ('0'-'9' digits only). */
+  uint8_t match_request : 1;                    /**< If 1 requires the application to report the match using @ref sd_ble_gap_auth_key_reply
+                                                     with either @ref BLE_GAP_AUTH_KEY_TYPE_NONE if there is no match or
+                                                     @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY if there is a match. */
+} ble_gap_evt_passkey_display_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_KEY_PRESSED. */
+typedef struct
+{
+  uint8_t kp_not;         /**< Keypress notification type, see @ref BLE_GAP_KP_NOT_TYPES. */
+} ble_gap_evt_key_pressed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_KEY_REQUEST. */
+typedef struct
+{
+  uint8_t key_type;                             /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */
+} ble_gap_evt_auth_key_request_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST. */
+typedef struct
+{
+  ble_gap_lesc_p256_pk_t *p_pk_peer;  /**< LE Secure Connections remote P-256 Public Key. This will point to the application-supplied memory
+                                           inside the keyset during the call to @ref sd_ble_gap_sec_params_reply. */
+  uint8_t oobd_req       :1;          /**< LESC OOB data required. A call to @ref sd_ble_gap_lesc_oob_data_set is required to complete the procedure. */
+} ble_gap_evt_lesc_dhkey_request_t;
+
+
+/**@brief Security levels supported.
+ * @note  See Bluetooth Specification Version 4.2 Volume 3, Part C, Chapter 10, Section 10.2.1.
+*/
+typedef struct
+{
+  uint8_t lv1 : 1;                              /**< If 1: Level 1 is supported. */
+  uint8_t lv2 : 1;                              /**< If 1: Level 2 is supported. */
+  uint8_t lv3 : 1;                              /**< If 1: Level 3 is supported. */
+  uint8_t lv4 : 1;                              /**< If 1: Level 4 is supported. */
+} ble_gap_sec_levels_t;
+
+
+/**@brief Encryption Key. */
+typedef struct
+{
+  ble_gap_enc_info_t    enc_info;             /**< Encryption Information. */
+  ble_gap_master_id_t   master_id;            /**< Master Identification. */
+} ble_gap_enc_key_t;
+
+
+/**@brief Identity Key. */
+typedef struct
+{
+  ble_gap_irk_t         id_info;              /**< Identity Resolving Key. */
+  ble_gap_addr_t        id_addr_info;         /**< Identity Address. */
+} ble_gap_id_key_t;
+
+
+/**@brief Security Keys. */
+typedef struct
+{
+  ble_gap_enc_key_t      *p_enc_key;           /**< Encryption Key, or NULL. */
+  ble_gap_id_key_t       *p_id_key;            /**< Identity Key, or NULL. */
+  ble_gap_sign_info_t    *p_sign_key;          /**< Signing Key, or NULL. */
+  ble_gap_lesc_p256_pk_t *p_pk;                /**< LE Secure Connections P-256 Public Key. When in debug mode the application must use the value defined
+                                                    in the Core Bluetooth Specification v4.2 Vol.3, Part H, Section 2.3.5.6.1 */
+} ble_gap_sec_keys_t;
+
+
+/**@brief Security key set for both local and peer keys. */
+typedef struct
+{
+  ble_gap_sec_keys_t            keys_own;     /**< Keys distributed by the local device. For LE Secure Connections the encryption key will be generated locally and will always be stored if bonding. */
+  ble_gap_sec_keys_t            keys_peer;    /**< Keys distributed by the remote device. For LE Secure Connections, p_enc_key must always be NULL. */
+} ble_gap_sec_keyset_t;
+
+
+/**@brief Data Length Update Procedure parameters. */
+typedef struct
+{
+  uint16_t max_tx_octets;   /**< Maximum number of payload octets that a Controller supports for transmission of a single Link Layer Data Channel PDU. */
+  uint16_t max_rx_octets;   /**< Maximum number of payload octets that a Controller supports for reception of a single Link Layer Data Channel PDU. */
+  uint16_t max_tx_time_us;  /**< Maximum time, in microseconds, that a Controller supports for transmission of a single Link Layer Data Channel PDU. */
+  uint16_t max_rx_time_us;  /**< Maximum time, in microseconds, that a Controller supports for reception of a single Link Layer Data Channel PDU. */
+} ble_gap_data_length_params_t;
+
+
+/**@brief Data Length Update Procedure local limitation. */
+typedef struct
+{
+  uint16_t tx_payload_limited_octets; /**< If > 0, the requested TX packet length is too long by this many octets. */
+  uint16_t rx_payload_limited_octets; /**< If > 0, the requested RX packet length is too long by this many octets. */
+  uint16_t tx_rx_time_limited_us;     /**< If > 0, the requested combination of TX and RX packet lengths is too long by this many microseconds. */
+} ble_gap_data_length_limitation_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_AUTH_STATUS. */
+typedef struct
+{
+  uint8_t               auth_status;            /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */
+  uint8_t               error_src : 2;          /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */
+  uint8_t               bonded : 1;             /**< Procedure resulted in a bond. */
+  uint8_t               lesc : 1;               /**< Procedure resulted in a LE Secure Connection. */
+  ble_gap_sec_levels_t  sm1_levels;             /**< Levels supported in Security Mode 1. */
+  ble_gap_sec_levels_t  sm2_levels;             /**< Levels supported in Security Mode 2. */
+  ble_gap_sec_kdist_t   kdist_own;              /**< Bitmap stating which keys were exchanged (distributed) by the local device. If bonding with LE Secure Connections, the enc bit will be always set. */
+  ble_gap_sec_kdist_t   kdist_peer;             /**< Bitmap stating which keys were exchanged (distributed) by the remote device. If bonding with LE Secure Connections, the enc bit will never be set. */
+} ble_gap_evt_auth_status_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_SEC_UPDATE. */
+typedef struct
+{
+  ble_gap_conn_sec_t conn_sec;                  /**< Connection security level. */
+} ble_gap_evt_conn_sec_update_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t src;                                  /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */
+} ble_gap_evt_timeout_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_RSSI_CHANGED. */
+typedef struct
+{
+  int8_t  rssi;                               /**< Received Signal Strength Indication in dBm. */
+} ble_gap_evt_rssi_changed_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_ADV_REPORT. */
+typedef struct
+{
+  ble_gap_addr_t peer_addr;                     /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                     and the address is the device's identity address. */
+  ble_gap_addr_t direct_addr;                   /**< Set when the scanner is unable to resolve the private resolvable address of the initiator
+                                                     field of a directed advertisement packet and the scanner has been enabled to report this in @ref ble_gap_scan_params_t::adv_dir_report. */
+  int8_t         rssi;                          /**< Received Signal Strength Indication in dBm. */
+  uint8_t        scan_rsp : 1;                  /**< If 1, the report corresponds to a scan response and the type field may be ignored. */
+  uint8_t        type     : 2;                  /**< See @ref BLE_GAP_ADV_TYPES. Only valid if the scan_rsp field is 0. */
+  uint8_t        dlen     : 5;                  /**< Advertising or scan response data length. */
+  uint8_t        data[BLE_GAP_ADV_MAX_SIZE];    /**< Advertising or scan response data. */
+} ble_gap_evt_adv_report_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SEC_REQUEST. */
+typedef struct
+{
+  uint8_t    bond       : 1;                       /**< Perform bonding. */
+  uint8_t    mitm       : 1;                       /**< Man In The Middle protection requested. */
+  uint8_t    lesc       : 1;                       /**< LE Secure Connections requested. */
+  uint8_t    keypress   : 1;                       /**< Generation of keypress notifications requested. */
+} ble_gap_evt_sec_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_request_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_SCAN_REQ_REPORT. */
+typedef struct
+{
+  int8_t                  rssi;              /**< Received Signal Strength Indication in dBm. */
+  ble_gap_addr_t          peer_addr;         /**< Bluetooth address of the peer device. If the peer_addr resolved: @ref ble_gap_addr_t::addr_id_peer is set to 1
+                                                  and the address is the device's identity address. */
+} ble_gap_evt_scan_req_report_t;
+
+
+/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST. */
+typedef struct
+{
+  ble_gap_data_length_params_t peer_params; /**< Peer data length parameters. */
+} ble_gap_evt_data_length_update_request_t;
+
+/**@brief Event structure for @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE. */
+typedef struct
+{
+  ble_gap_data_length_params_t effective_params;  /**< The effective data length parameters. */
+} ble_gap_evt_data_length_update_t;
+
+
+/**@brief GAP event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                     /**< Connection Handle on which event occurred. */
+  union                                                     /**< union alternative identified by evt_id in enclosing struct. */
+  {
+    ble_gap_evt_connected_t                   connected;                    /**< Connected Event Parameters. */
+    ble_gap_evt_disconnected_t                disconnected;                 /**< Disconnected Event Parameters. */
+    ble_gap_evt_conn_param_update_t           conn_param_update;            /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_sec_params_request_t          sec_params_request;           /**< Security Parameters Request Event Parameters. */
+    ble_gap_evt_sec_info_request_t            sec_info_request;             /**< Security Information Request Event Parameters. */
+    ble_gap_evt_passkey_display_t             passkey_display;              /**< Passkey Display Event Parameters. */
+    ble_gap_evt_key_pressed_t                 key_pressed;                  /**< Key Pressed Event Parameters. */
+    ble_gap_evt_auth_key_request_t            auth_key_request;             /**< Authentication Key Request Event Parameters. */
+    ble_gap_evt_lesc_dhkey_request_t          lesc_dhkey_request;           /**< LE Secure Connections DHKey calculation request. */
+    ble_gap_evt_auth_status_t                 auth_status;                  /**< Authentication Status Event Parameters. */
+    ble_gap_evt_conn_sec_update_t             conn_sec_update;              /**< Connection Security Update Event Parameters. */
+    ble_gap_evt_timeout_t                     timeout;                      /**< Timeout Event Parameters. */
+    ble_gap_evt_rssi_changed_t                rssi_changed;                 /**< RSSI Event Parameters. */
+    ble_gap_evt_adv_report_t                  adv_report;                   /**< Advertising Report Event Parameters. */
+    ble_gap_evt_sec_request_t                 sec_request;                  /**< Security Request Event Parameters. */
+    ble_gap_evt_conn_param_update_request_t   conn_param_update_request;    /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_scan_req_report_t             scan_req_report;              /**< Scan Request Report Parameters. */
+    ble_gap_evt_phy_update_request_t          phy_update_request;           /**< PHY Update Request Event Parameters. */
+    ble_gap_evt_phy_update_t                  phy_update;                   /**< PHY Update Parameters. */
+    ble_gap_evt_data_length_update_request_t  data_length_update_request;   /**< Data Length Update Request Event Parameters. */
+    ble_gap_evt_data_length_update_t          data_length_update;           /**< Data Length Update Event Parameters. */
+  } params;                                                                 /**< Event Parameters. */
+} ble_gap_evt_t;
+
+
+/**
+ * @brief BLE GAP connection configuration parameters, set with @ref sd_ble_cfg_set.
+ *
+ * @retval ::NRF_ERROR_CONN_COUNT     The connection count for the connection configurations is zero.
+ * @retval ::NRF_ERROR_INVALID_PARAM  One or more of the following is true:
+ *                                    - The sum of conn_count for all connection configurations combined exceeds UINT8_MAX.
+ *                                    - The event length is smaller than @ref BLE_GAP_EVENT_LENGTH_MIN.
+ */
+typedef struct
+{
+  uint8_t  conn_count;     /**< The number of concurrent connections the application can create with this configuration.
+                                The default and minimum value is @ref BLE_GAP_CONN_COUNT_DEFAULT. */
+  uint16_t event_length;   /**< The time set aside for this connection on every connection interval in 1.25 ms units.
+                                The default value is @ref BLE_GAP_EVENT_LENGTH_DEFAULT, the minimum value is @ref BLE_GAP_EVENT_LENGTH_MIN.
+                                The event length and the connection interval are the primary parameters
+                                for setting the throughput of a connection.
+                                See the SoftDevice Specification for details on throughput. */
+} ble_gap_conn_cfg_t;
+
+
+/**
+ * @brief Configuration of maximum concurrent connections in the different connected roles, set with
+ * @ref sd_ble_cfg_set.
+ *
+ * @retval ::NRF_ERROR_CONN_COUNT     The sum of periph_role_count and central_role_count is too
+ *                                    large. The maximum supported sum of concurrent connections is
+ *                                    @ref BLE_GAP_ROLE_COUNT_COMBINED_MAX.
+ * @retval ::NRF_ERROR_INVALID_PARAM  central_sec_count is larger than central_role_count.
+ */
+typedef struct
+{
+  uint8_t periph_role_count;  /**< Maximum number of connections concurrently acting as a peripheral. Default value is @ref BLE_GAP_ROLE_COUNT_PERIPH_DEFAULT. */
+  uint8_t central_role_count; /**< Maximum number of connections concurrently acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_DEFAULT. */
+  uint8_t central_sec_count;  /**< Number of SMP instances shared between all connections acting as a central. Default value is @ref BLE_GAP_ROLE_COUNT_CENTRAL_SEC_DEFAULT. */
+} ble_gap_cfg_role_count_t;
+
+
+/**
+ * @brief Device name and its properties, set with @ref sd_ble_cfg_set.
+ *
+ * @note  If the device name is not configured, the default device name will be
+ *        @ref BLE_GAP_DEVNAME_DEFAULT, the maximum device name length will be
+ *        @ref BLE_GAP_DEVNAME_DEFAULT_LEN, vloc will be set to @ref BLE_GATTS_VLOC_STACK and the device name
+ *        will have no write access.
+ *
+ * @note  If @ref max_len is more than @ref BLE_GAP_DEVNAME_DEFAULT_LEN and vloc is set to @ref BLE_GATTS_VLOC_STACK,
+ *        the attribute table size must be increased to have room for the longer device name (see
+ *        @ref sd_ble_cfg_set and @ref ble_gatts_cfg_attr_tab_size_t).
+ *
+ * @note  If vloc is @ref BLE_GATTS_VLOC_STACK :
+ *        - p_value must point to non-volatile memory (flash) or be NULL.
+ *        - If p_value is NULL, the device name will initially be empty.
+ *
+ * @note  If vloc is @ref BLE_GATTS_VLOC_USER :
+ *        - p_value cannot be NULL.
+ *        - If the device name is writable, p_value must point to volatile memory (RAM).
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM  One or more of the following is true:
+ *                                    - Invalid device name location (vloc).
+ *                                    - Invalid device name security mode.
+ * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true:
+ *                                    - The device name length is invalid (must be between 0 and @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *                                    - The device name length is too long for the given Attribute Table.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED  Device name security mode is not supported.
+ */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t  write_perm;   /**< Write permissions. */
+  uint8_t                  vloc:2;       /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 *p_value;      /**< Pointer to where the value (device name) is stored or will be stored. */
+  uint16_t                 current_len;  /**< Current length in bytes of the memory pointed to by p_value.*/
+  uint16_t                 max_len;      /**< Maximum length in bytes of the memory pointed to by p_value.*/
+} ble_gap_cfg_device_name_t;
+
+
+/**@brief Configuration structure for GAP configurations. */
+typedef union
+{
+  ble_gap_cfg_role_count_t  role_count_cfg;  /**< Role count configuration, cfg_id is @ref BLE_GAP_CFG_ROLE_COUNT. */
+  ble_gap_cfg_device_name_t device_name_cfg; /**< Device name configuration, cfg_id is @ref BLE_GAP_CFG_DEVICE_NAME. */
+} ble_gap_cfg_t;
+
+
+/**@brief Channel Map option.
+ *        Used with @ref sd_ble_opt_get to get the current channel map
+ *        or @ref sd_ble_opt_set to set a new channel map. When setting the
+ *        channel map, it applies to all current and future connections. When getting the
+ *        current channel map, it applies to a single connection and the connection handle
+ *        must be supplied.
+ *
+ * @note  Setting the channel map may take some time, depending on connection parameters.
+ *        The time taken may be different for each connection and the get operation will
+ *        return the previous channel map until the new one has taken effect.
+ *
+ * @note  After setting the channel map, by spec it can not be set again until at least 1 s has passed.
+ *        See Bluetooth Specification Version 4.1 Volume 2, Part E, Section 7.3.46.
+ *
+ * @retval ::NRF_SUCCESS Get or set successful.
+ * @retval ::NRF_ERROR_BUSY Channel map was set again before enough time had passed.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied for get.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Returned by sd_ble_opt_set in peripheral-only SoftDevices.
+ *
+ */
+typedef struct
+{
+  uint16_t conn_handle;                   /**< Connection Handle (only applicable for get) */
+  uint8_t ch_map[5];                      /**< Channel Map (37-bit). */
+} ble_gap_opt_ch_map_t;
+
+
+/**@brief Local connection latency option.
+ *
+ *        Local connection latency is a feature which enables the slave to improve
+ *        current consumption by ignoring the slave latency set by the peer. The
+ *        local connection latency can only be set to a multiple of the slave latency,
+ *        and cannot be longer than half of the supervision timeout.
+ *
+ *        Used with @ref sd_ble_opt_set to set the local connection latency. The
+ *        @ref sd_ble_opt_get is not supported for this option, but the actual
+ *        local connection latency (unless set to NULL) is set as a return parameter
+ *        when setting the option.
+ *
+ * @note  The latency set will be truncated down to the closest slave latency event
+ *        multiple, or the nearest multiple before half of the supervision timeout.
+ *
+ * @note  The local connection latency is disabled by default, and needs to be enabled for new
+ *        connections and whenever the connection is updated.
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   requested_latency;                 /**< Requested local connection latency. */
+  uint16_t * p_actual_latency;                  /**< Pointer to storage for the actual local connection latency (can be set to NULL to skip return value). */
+} ble_gap_opt_local_conn_latency_t;
+
+/**@brief Disable slave latency
+ *
+ * Used with @ref sd_ble_opt_set to temporarily disable slave latency of a peripheral connection (see @ref ble_gap_conn_params_t::slave_latency). And to re-enable it again.
+ * When disabled, the peripheral will ignore the slave_latency set by the central.
+ *
+ * @note  Shall only be called on peripheral links.
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Get is not supported.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;    /**< Connection Handle */
+  uint8_t    disable : 1;    /**< Set to 1 to disable slave latency. Set to 0 enable it again.*/
+} ble_gap_opt_slave_latency_disable_t;
+
+/**@brief Passkey Option.
+ *
+ *        Structure containing the passkey to be used during pairing. This can be used with @ref
+ *        sd_ble_opt_set to make the SoftDevice use a preprogrammed passkey for authentication
+ *        instead of generating a random one.
+ *
+ * @note  Repeated pairing attempts using the same preprogrammed passkey makes pairing vulnerable to MITM attacks.
+ *
+ * @note  @ref sd_ble_opt_get is not supported for this option.
+ *
+ */
+typedef struct
+{
+  uint8_t const * p_passkey;                    /**< Pointer to 6-digit ASCII string (digit 0..9 only, no NULL termination) passkey to be used during pairing. If this is NULL, the SoftDevice will generate a random passkey if required.*/
+} ble_gap_opt_passkey_t;
+
+
+/**@brief Scan request report option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to make the SoftDevice send
+ *        @ref BLE_GAP_EVT_SCAN_REQ_REPORT events.
+ *
+ * @note  Due to the limited space reserved for scan request report events,
+ *        not all received scan requests will be reported.
+ *
+ * @note  If whitelisting is used, only whitelisted requests are reported.
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_INVALID_STATE When advertising is ongoing while the option is set.
+ */
+typedef struct
+{
+  uint8_t enable : 1; /**< Enable scan request reports. */
+} ble_gap_opt_scan_req_report_t;
+
+
+/**@brief Compatibility mode 1 option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to enable and disable
+ *        compatibility mode 1. Compatibility mode 1 is disabled by default.
+ *
+ *  @note  Compatibility mode 1 enables interoperability with devices that do not support a value of
+ *         0 for the WinOffset parameter in the Link Layer CONNECT_IND packet. This applies to a
+ *         limited set of legacy peripheral devices from another vendor. Enabling this compatibility
+ *         mode will only have an effect if the local device will act as a central device and
+ *         initiate a connection to a peripheral device. In that case it may lead to the connection
+ *         creation taking up to one connection interval longer to complete for all connections.
+ *
+ *  @retval ::NRF_SUCCESS Set successfully.
+ *  @retval ::NRF_ERROR_INVALID_STATE When connection creation is ongoing while mode 1 is set.
+ */
+typedef struct
+{
+   uint8_t enable : 1;                           /**< Enable compatibility mode 1.*/
+} ble_gap_opt_compat_mode_1_t;
+
+
+/**@brief Authenticated payload timeout option.
+ *
+ *        This can be used with @ref sd_ble_opt_set to change the Authenticated payload timeout to a value other
+ *        than the default of @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT_MAX.
+ *
+ * @note  The authenticated payload timeout event ::BLE_GAP_TIMEOUT_SRC_AUTH_PAYLOAD will be generated
+ *        if auth_payload_timeout time has elapsed without receiving a packet with a valid MIC on an encrypted
+ *        link.
+ *
+ * @note  The LE ping procedure will be initiated before the timer expires to give the peer a chance
+ *        to reset the timer. In addition the stack will try to prioritize running of LE ping over other
+ *        activities to increase chances of finishing LE ping before timer expires. To avoid side-effects
+ *        on other activities, it is recommended to use high timeout values.
+ *        Recommended timeout > 2*(connInterval * (6 + connSlaveLatency)).
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied. auth_payload_timeout was outside of allowed range.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter.
+ */
+typedef struct
+{
+  uint16_t   conn_handle;                       /**< Connection Handle */
+  uint16_t   auth_payload_timeout;              /**< Requested timeout in 10 ms unit, see @ref BLE_GAP_AUTH_PAYLOAD_TIMEOUT. */
+} ble_gap_opt_auth_payload_timeout_t;
+
+
+/**@brief Option structure for GAP options. */
+typedef union
+{
+  ble_gap_opt_ch_map_t                  ch_map;                    /**< Parameters for the Channel Map option. */
+  ble_gap_opt_local_conn_latency_t      local_conn_latency;        /**< Parameters for the Local connection latency option */
+  ble_gap_opt_passkey_t                 passkey;                   /**< Parameters for the Passkey option.*/
+  ble_gap_opt_scan_req_report_t         scan_req_report;           /**< Parameters for the scan request report option.*/
+  ble_gap_opt_compat_mode_1_t           compat_mode_1;             /**< Parameters for the compatibility mode 1 option.*/
+  ble_gap_opt_auth_payload_timeout_t    auth_payload_timeout;      /**< Parameters for the authenticated payload timeout option.*/
+  ble_gap_opt_slave_latency_disable_t   slave_latency_disable;     /**< Parameters for the Disable slave latency option */
+} ble_gap_opt_t;
+/**@} */
+
+
+/**@addtogroup BLE_GAP_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Set the local Bluetooth identity address.
+ *
+ *        The local Bluetooth identity address is the address that identifies this device to other peers.
+ *        The address type must be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ *
+ * @note  The identity address cannot be changed while advertising, scanning or creating a connection.
+ *
+ * @note  This address will be distributed to the peer during bonding.
+ *        If the address changes, the address stored in the peer device will not be valid and the ability to
+ *        reconnect using the old address will be lost.
+ *
+ * @note  By default the SoftDevice will set an address of type @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being
+ *        enabled. The address is a random number populated during the IC manufacturing process and remains unchanged
+ *        for the lifetime of each IC.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @endmscs
+ *
+ * @param[in] p_addr Pointer to address structure.
+ *
+ * @retval ::NRF_SUCCESS Address successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_STATE The identity address cannot be changed while advertising,
+ *                                   scanning or creating a connection.
+ */
+SVCALL(SD_BLE_GAP_ADDR_SET, uint32_t, sd_ble_gap_addr_set(ble_gap_addr_t const *p_addr));
+
+
+/**@brief Get local Bluetooth identity address.
+ *
+ * @note  This will always return the identity address irrespective of the privacy settings,
+ *        i.e. the address type will always be either @ref BLE_GAP_ADDR_TYPE_PUBLIC or @ref BLE_GAP_ADDR_TYPE_RANDOM_STATIC.
+ *
+ * @param[out] p_addr Pointer to address structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Address successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_ADDR_GET, uint32_t, sd_ble_gap_addr_get(ble_gap_addr_t *p_addr));
+
+
+/**@brief Set the active whitelist in the SoftDevice.
+ *
+ * @note  Only one whitelist can be used at a time and the whitelist is shared between the BLE roles.
+ *        The whitelist cannot be set if a BLE role is using the whitelist.
+ *
+ * @note  If an address is resolved using the information in the device identity list, then the whitelist
+ *        filter policy applies to the peer identity address and not the resolvable address sent on air.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @endmscs
+ *
+ * @param[in] pp_wl_addrs Pointer to a whitelist of peer addresses, if NULL the whitelist will be cleared.
+ * @param[in] len         Length of the whitelist, maximum @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT.
+ *
+ * @retval ::NRF_SUCCESS The whitelist is successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The whitelist (or one of its entries) provided is invalid.
+ * @retval ::BLE_ERROR_GAP_WHITELIST_IN_USE The whitelist is in use by a BLE role and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given whitelist size is invalid (zero or too large); this can only return when
+ *                               pp_wl_addrs is not NULL.
+ */
+SVCALL(SD_BLE_GAP_WHITELIST_SET, uint32_t, sd_ble_gap_whitelist_set(ble_gap_addr_t const * const * pp_wl_addrs, uint8_t len));
+
+
+/**@brief Set device identity list.
+ *
+ * @note  Only one device identity list can be used at a time and the list is shared between the BLE roles.
+ *        The device identity list cannot be set if a BLE role is using the list.
+ *
+ * @param[in] pp_id_keys     Pointer to an array of peer identity addresses and peer IRKs, if NULL the device identity list will be cleared.
+ * @param[in] pp_local_irks  Pointer to an array of local IRKs. Each entry in the array maps to the entry in pp_id_keys at the same index.
+ *                           To fill in the list with the currently set device IRK for all peers, set to NULL.
+ * @param[in] len            Length of the device identity list, maximum @ref BLE_GAP_DEVICE_IDENTITIES_MAX_COUNT.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_PRIVATE_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The device identity list successfully set/cleared.
+ * @retval ::NRF_ERROR_INVALID_ADDR The device identity list (or one of its entries) provided is invalid.
+ *                                  This code may be returned if the local IRK list also has an invalid entry.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_IN_USE The device identity list is in use and cannot be set or cleared.
+ * @retval ::BLE_ERROR_GAP_DEVICE_IDENTITIES_DUPLICATE The device identity list contains multiple entries with the same identity address.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The given device identity list size invalid (zero or too large); this can
+ *                               only return when pp_id_keys is not NULL.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_IDENTITIES_SET, uint32_t, sd_ble_gap_device_identities_set(ble_gap_id_key_t const * const * pp_id_keys, ble_gap_irk_t const * const * pp_local_irks, uint8_t len));
+
+
+/**@brief Set privacy settings.
+ *
+ * @note  Privacy settings cannot be changed while advertising, scanning or creating a connection.
+ *
+ * @param[in] p_privacy_params Privacy settings.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Set successfully.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address type is supplied.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer to privacy settings is NULL or invalid.
+ *                                  Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ * @retval ::NRF_ERROR_INVALID_PARAM Out of range parameters are provided.
+ * @retval ::NRF_ERROR_INVALID_STATE Privacy settings cannot be changed while advertising, scanning
+ *                                   or creating a connection.
+ */
+SVCALL(SD_BLE_GAP_PRIVACY_SET, uint32_t, sd_ble_gap_privacy_set(ble_gap_privacy_params_t const *p_privacy_params));
+
+
+/**@brief Get privacy settings.
+ *
+ * @note ::ble_gap_privacy_params_t::p_device_irk must be initialized to NULL or a valid address before this function is called.
+ *       If it is initialized to a valid address, the address pointed to will contain the current device IRK on return.
+ *
+ * @param[in,out] p_privacy_params Privacy settings.
+ *
+ * @retval ::NRF_SUCCESS            Privacy settings read.
+ * @retval ::NRF_ERROR_INVALID_ADDR The pointer given for returning the privacy settings may be NULL or invalid.
+ *                                  Otherwise, the p_device_irk pointer in privacy parameter is an invalid pointer.
+ */
+SVCALL(SD_BLE_GAP_PRIVACY_GET, uint32_t, sd_ble_gap_privacy_get(ble_gap_privacy_params_t *p_privacy_params));
+
+
+/**@brief Set, clear or update advertising and scan response data.
+ *
+ * @note  The format of the advertising data will be checked by this call to ensure interoperability.
+ *        Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and
+ *        duplicating the local name in the advertising data and scan response data.
+ *
+ * @note  To clear the advertising data and set it to a 0-length packet, simply provide a valid pointer (p_data/p_sr_data) with its corresponding
+ *        length (dlen/srdlen) set to 0.
+ *
+ * @note The call will fail if p_data and p_sr_data are both NULL since this would have no effect.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_data    Raw data to be placed in advertising packet. If NULL, no changes are made to the current advertising packet data.
+ * @param[in] dlen      Data length for p_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_data is NULL, can be 0 if p_data is not NULL.
+ * @param[in] p_sr_data Raw data to be placed in scan response packet. If NULL, no changes are made to the current scan response packet data.
+ * @param[in] srdlen    Data length for p_sr_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_sr_data is NULL, can be 0 if p_data is not NULL.
+ *
+ * @retval ::NRF_SUCCESS Advertising data successfully updated or cleared.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, both p_data and p_sr_data cannot be NULL.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied.
+ * @retval ::NRF_ERROR_INVALID_DATA Invalid data type(s) supplied, check the advertising data format specification.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Unsupported data type.
+ * @retval ::BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied.
+ */
+SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const *p_data, uint8_t dlen, uint8_t const *p_sr_data, uint8_t srdlen));
+
+
+/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @note Only one advertiser may be active at any time.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONNECTED, Generated after connection has been established through connectable advertising.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Advertisement has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_PRIVACY_ADV_DIR_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_adv_params Pointer to advertising parameters structure.
+ * @param[in] conn_cfg_tag Tag identifying a configuration set by @ref sd_ble_cfg_set or
+ *                         @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration. If
+ *                         @ref ble_gap_adv_params_t::type is @ref BLE_GAP_ADV_TYPE_ADV_NONCONN_IND,
+ *                         this is ignored.
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has started advertising.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached; connectable advertiser cannot be started.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check the accepted ranges and limits.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Bluetooth address supplied.
+ * @retval ::BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral, Broadcaster or Observer) and try again
+ */
+SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(ble_gap_adv_params_t const *p_adv_params, uint8_t conn_cfg_tag));
+
+
+/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_ADV_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS The BLE stack has stopped advertising.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in advertising state).
+ */
+SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(void));
+
+
+
+/**@brief Update connection parameters.
+ *
+ * @details In the central role this will initiate a Link Layer connection parameter update procedure,
+ *          otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for
+ *          the central to perform the procedure. In both cases, and regardless of success or failure, the application
+ *          will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event.
+ *
+ * @details This function can be used as a central both to reply to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST or to start the procedure unrequested.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_PARAM_UPDATE, Result of the connection parameter update procedure.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CPU_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CPU_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_conn_params  Pointer to desired connection parameters. If NULL is provided on a peripheral role,
+ *                           the parameters in the PPCP characteristic of the GAP service will be used instead.
+ *                           If NULL is provided on a central role and in response to a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST, the peripheral request will be rejected
+ *
+ * @retval ::NRF_SUCCESS The Connection Update procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress, wait for pending procedures to complete and retry.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Disconnect (GAP Link Termination).
+ *
+ * @details This call initiates the disconnection procedure, and its completion will be communicated to the application
+ *          with a @ref BLE_GAP_EVT_DISCONNECTED event.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_DISCONNECTED, Generated when disconnection procedure is complete.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are @ref BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION and @ref BLE_HCI_CONN_INTERVAL_UNACCEPTABLE).
+ *
+ * @retval ::NRF_SUCCESS The disconnection procedure has been started successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress).
+ */
+SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
+
+
+/**@brief Set the radio's transmit power.
+ *
+ * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -20, -16, -12, -8, -4, 0, 3, and 4 dBm).
+ *
+ * @retval ::NRF_SUCCESS Successfully changed the transmit power.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
+
+
+/**@brief Set GAP Appearance value.
+ *
+ * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS  Appearance value set successfully.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance));
+
+
+/**@brief Get GAP Appearance value.
+ *
+ * @param[out] p_appearance Pointer to appearance (16-bit) to be filled in, see @ref BLE_APPEARANCES.
+ *
+ * @retval ::NRF_SUCCESS Appearance value retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t *p_appearance));
+
+
+/**@brief Set GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const *p_conn_params));
+
+
+/**@brief Get GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored.
+ *
+ * @retval ::NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t *p_conn_params));
+
+
+/**@brief Set GAP device name.
+ *
+ * @note  If the device name is located in application flash memory (see @ref ble_gap_cfg_device_name_t),
+ *        it cannot be changed. Then @ref NRF_ERROR_FORBIDDEN will be returned.
+ *
+ * @param[in] p_write_perm Write permissions for the Device Name characteristic, see @ref ble_gap_conn_sec_mode_t.
+ * @param[in] p_dev_name Pointer to a UTF-8 encoded, <b>non NULL-terminated</b> string.
+ * @param[in] len Length of the UTF-8, <b>non NULL-terminated</b> string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *
+ * @retval ::NRF_SUCCESS GAP device name and permissions set successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_FORBIDDEN Device name is not writable.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const *p_write_perm, uint8_t const *p_dev_name, uint16_t len));
+
+
+/**@brief Get GAP device name.
+ *
+ * @note  If the device name is longer than the size of the supplied buffer,
+ *        p_len will return the complete device name length,
+ *        and not the number of bytes actually returned in p_dev_name.
+ *        The application may use this information to allocate a suitable buffer size.
+ *
+ * @param[out]    p_dev_name Pointer to an empty buffer where the UTF-8 <b>non NULL-terminated</b> string will be placed. Set to NULL to obtain the complete device name length.
+ * @param[in,out] p_len      Length of the buffer pointed by p_dev_name, complete device name length on output.
+ *
+ * @retval ::NRF_SUCCESS GAP device name retrieved successfully.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t *p_dev_name, uint16_t *p_len));
+
+
+/**@brief Initiate the GAP Authentication procedure.
+ *
+ * @details In the central role, this function will send an SMP Pairing Request (or an SMP Pairing Failed if rejected),
+ *          otherwise in the peripheral role, an SMP Security Request will be sent.
+ *
+ * @events
+ * @event{Depending on the security parameters set and the packet exchanges with the peer\, the following events may be generated:}
+ * @event{@ref BLE_GAP_EVT_SEC_PARAMS_REQUEST}
+ * @event{@ref BLE_GAP_EVT_SEC_INFO_REQUEST}
+ * @event{@ref BLE_GAP_EVT_PASSKEY_DISPLAY}
+ * @event{@ref BLE_GAP_EVT_KEY_PRESSED}
+ * @event{@ref BLE_GAP_EVT_AUTH_KEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_LESC_DHKEY_REQUEST}
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE}
+ * @event{@ref BLE_GAP_EVT_AUTH_STATUS}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing or bonding procedure.
+ *                         In the peripheral role, only the bond, mitm, lesc and keypress fields of this structure are used.
+ *                         In the central role, this pointer may be NULL to reject a Security Request.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ * @retval ::NRF_ERROR_TIMEOUT A SMP timeout has occurred, and further SMP operations on this link is prohibited.
+ */
+SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const *p_sec_params));
+
+
+/**@brief Reply with GAP security parameters.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_STATIC_PK_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_CONFIRM_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_KS_TOO_SMALL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_APP_ERROR_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_REMOTE_PAIRING_FAIL_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_PAIRING_TIMEOUT_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS.
+ * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure. In the central role this must be set to NULL, as the parameters have
+ *                         already been provided during a previous call to @ref sd_ble_gap_authenticate.
+ * @param[in,out] p_sec_keyset Pointer to a @ref ble_gap_sec_keyset_t security keyset structure. Any keys generated and/or distributed as a result of the ongoing security procedure
+ *                         will be stored into the memory referenced by the pointers inside this structure. The keys will be stored and available to the application
+ *                         upon reception of a @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *                         Note that the SoftDevice expects the application to provide memory for storing the
+ *                         peer's keys. So it must be ensured that the relevant pointers inside this structure are not NULL. The pointers to the local key
+ *                         can, however, be NULL, in which case, the local key data will not be available to the application upon reception of the
+ *                         @ref BLE_GAP_EVT_AUTH_STATUS event.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security parameter from the application.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Setting of sign or link fields in @ref ble_gap_sec_kdist_t not supported.
+ */
+SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const *p_sec_params, ble_gap_sec_keyset_t const *p_sec_keyset));
+
+
+/**@brief Reply with an authentication key.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST or a @ref BLE_GAP_EVT_PASSKEY_DISPLAY, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_BONDING_PK_CENTRAL_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_BONDING_PK_PERIPH_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES.
+ * @param[in] p_key If key type is @ref BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination)
+ *                     or NULL when confirming LE Secure Connections Numeric Comparison.
+ *                  If key type is @ref BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in little-endian format.
+ *
+ * @retval ::NRF_SUCCESS Authentication key successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const *p_key));
+
+
+/**@brief Reply with an LE Secure connections DHKey.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST, calling it at other times will result in an @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_PAIRING_JW_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_NC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_PD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_dhkey LE Secure Connections DHKey.
+ *
+ * @retval ::NRF_SUCCESS DHKey successfully set.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_DHKEY_REPLY, uint32_t, sd_ble_gap_lesc_dhkey_reply(uint16_t conn_handle, ble_gap_lesc_dhkey_t const *p_dhkey));
+
+
+/**@brief Notify the peer of a local keypress.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_PKE_CD_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_PKE_CD_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] kp_not See @ref BLE_GAP_KP_NOT_TYPES.
+ *
+ * @retval ::NRF_SUCCESS Keypress notification successfully queued for transmission.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation. Either not entering a passkey or keypresses have not been enabled by both peers.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_BUSY The BLE stack is busy. Retry at later time.
+ */
+SVCALL(SD_BLE_GAP_KEYPRESS_NOTIFY, uint32_t, sd_ble_gap_keypress_notify(uint16_t conn_handle, uint8_t kp_not));
+
+
+/**@brief Generate a set of OOB data to send to a peer out of band.
+ *
+ * @note  The @ref ble_gap_addr_t included in the OOB data returned will be the currently active one (or, if a connection has already been established,
+ *        the one used during connection setup). The application may manually overwrite it with an updated value.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle. Can be @ref BLE_CONN_HANDLE_INVALID if a BLE connection has not been established yet.
+ * @param[in] p_pk_own LE Secure Connections local P-256 Public Key.
+ * @param[out] p_oobd_own The OOB data to be sent out of band to a peer.
+ *
+ * @retval ::NRF_SUCCESS OOB data successfully generated.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_GET, uint32_t, sd_ble_gap_lesc_oob_data_get(uint16_t conn_handle, ble_gap_lesc_p256_pk_t const *p_pk_own, ble_gap_lesc_oob_data_t *p_oobd_own));
+
+/**@brief Provide the OOB data sent/received out of band.
+ *
+ * @note  An authentication procedure with OOB selected as an algorithm must be in progress when calling this function.
+ * @note  A @ref BLE_GAP_EVT_LESC_DHKEY_REQUEST event with the oobd_req set to 1 must have been received prior to calling this function.
+ *
+ * @events
+ * @event{This function is used during authentication procedures\, see the list of events in the documentation of @ref sd_ble_gap_authenticate.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_LESC_BONDING_OOB_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_LESC_BONDING_OOB_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_oobd_own The OOB data sent out of band to a peer or NULL if the peer has not received OOB data.
+ *                       Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST.
+ * @param[in] p_oobd_peer The OOB data received out of band from a peer or NULL if none received.
+ *                        Must correspond to @ref ble_gap_sec_params_t::oob flag in @ref sd_ble_gap_authenticate in the central role
+ *                        or @ref sd_ble_gap_sec_params_reply in the peripheral role.
+ *
+ * @retval ::NRF_SUCCESS OOB data accepted.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_LESC_OOB_DATA_SET, uint32_t, sd_ble_gap_lesc_oob_data_set(uint16_t conn_handle, ble_gap_lesc_oob_data_t const *p_oobd_own, ble_gap_lesc_oob_data_t const *p_oobd_peer));
+
+
+/**@brief Initiate GAP Encryption procedure.
+ *
+ * @details In the central role, this function will initiate the encryption procedure using the encryption information provided.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_CONN_SEC_UPDATE, The connection security has been updated.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_AUTH_MUTEX_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_ENC_MSC}
+ * @mmsc{@ref BLE_GAP_MULTILINK_CTRL_PROC_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_SEC_REQ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_master_id Pointer to a @ref ble_gap_master_id_t master identification structure.
+ * @param[in] p_enc_info  Pointer to a @ref ble_gap_enc_info_t encryption information structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated authentication procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::BLE_ERROR_INVALID_ROLE Operation is not supported in the Peripheral role.
+ * @retval ::NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, wait for pending procedures to complete and retry.
+ */
+SVCALL(SD_BLE_GAP_ENCRYPT, uint32_t, sd_ble_gap_encrypt(uint16_t conn_handle, ble_gap_master_id_t const *p_master_id, ble_gap_enc_info_t const *p_enc_info));
+
+
+/**@brief Reply with GAP security information.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in @ref NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ * @note    Data signing is not yet supported, and p_sign_info must therefore be NULL.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_PERIPH_ENC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available.
+ * @param[in] p_id_info Pointer to a @ref ble_gap_irk_t identity information structure. May be NULL to signal none is available.
+ * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available.
+ *
+ * @retval ::NRF_SUCCESS Successfully accepted security information.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const *p_enc_info, ble_gap_irk_t const *p_id_info, ble_gap_sign_info_t const *p_sign_info));
+
+
+/**@brief Get the current connection security.
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_conn_sec  Pointer to a @ref ble_gap_conn_sec_t structure to be filled in.
+ *
+ * @retval ::NRF_SUCCESS Current connection security successfully retrieved.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t *p_conn_sec));
+
+
+/**@brief Start reporting the received signal strength to the application.
+ *
+ *        A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_RSSI_CHANGED, New RSSI data available. How often the event is generated is
+ *                                       dependent on the settings of the <code>threshold_dbm</code>
+ *                                       and <code>skip_count</code> input parameters.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle        Connection handle.
+ * @param[in] threshold_dbm      Minimum change in dBm before triggering the @ref BLE_GAP_EVT_RSSI_CHANGED event. Events are disabled if threshold_dbm equals @ref BLE_GAP_RSSI_THRESHOLD_INVALID.
+ * @param[in] skip_count         Number of RSSI samples with a change of threshold_dbm or more before sending a new @ref BLE_GAP_EVT_RSSI_CHANGED event.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully activated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Disconnection in progress. Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle, uint8_t threshold_dbm, uint8_t skip_count));
+
+
+/**@brief Stop reporting the received signal strength.
+ *
+ * @note  An RSSI change detected before the call but not yet received by the application
+ *        may be reported after @ref sd_ble_gap_rssi_stop has been called.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @mmsc{@ref BLE_GAP_RSSI_FILT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection handle.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully deactivated RSSI reporting.
+ * @retval ::NRF_ERROR_INVALID_STATE       Invalid state to perform operation.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle));
+
+
+/**@brief Get the received signal strength for the last connection event.
+ *
+ *        @ref sd_ble_gap_rssi_start must be called to start reporting RSSI before using this function. @ref NRF_ERROR_NOT_FOUND
+ *        will be returned until RSSI was sampled for the first time after calling @ref sd_ble_gap_rssi_start.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_RSSI_READ_MSC}
+ * @endmscs
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_rssi      Pointer to the location where the RSSI measurement shall be stored.
+ *
+ * @retval ::NRF_SUCCESS                   Successfully read the RSSI.
+ * @retval ::NRF_ERROR_NOT_FOUND           No sample is available.
+ * @retval ::NRF_ERROR_INVALID_ADDR        Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE       RSSI reporting is not ongoing, or disconnection in progress.
+ */
+SVCALL(SD_BLE_GAP_RSSI_GET, uint32_t, sd_ble_gap_rssi_get(uint16_t conn_handle, int8_t *p_rssi));
+
+
+/**@brief Start scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_ADV_REPORT, An advertising or scan response packet has been received.}
+ * @event{@ref BLE_GAP_EVT_TIMEOUT, Scanner has timed out.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_SCAN_START, uint32_t, sd_ble_gap_scan_start(ble_gap_scan_params_t const *p_scan_params));
+
+
+/**@brief Stop scanning (GAP Discovery procedure, Observer Procedure).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_SCAN_MSC}
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully stopped scanning procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in scanning state).
+ */
+SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void));
+
+
+/**@brief Create a connection (GAP Link Establishment).
+ *
+ * @note If a scanning procedure is currently in progress it will be automatically stopped when calling this function.
+ *       The scanning procedure will be stopped even if the function returns an error.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_WL_SHARE_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_PRIV_MSC}
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @param[in] p_peer_addr   Pointer to peer address. If the use_whitelist bit is set in @ref ble_gap_scan_params_t, then this is ignored.
+ * @param[in] p_scan_params Pointer to scan parameters structure.
+ * @param[in] p_conn_params Pointer to desired connection parameters.
+ * @param[in] conn_cfg_tag  Tag identifying a configuration set by @ref sd_ble_cfg_set or
+ *                          @ref BLE_CONN_CFG_TAG_DEFAULT to use the default connection configuration.
+ *
+ * @retval ::NRF_SUCCESS Successfully initiated connection procedure.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid parameter(s) pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ *                                   - Invalid parameter(s) in p_scan_params or p_conn_params.
+ *                                   - Use of whitelist requested but whitelist has not been set, see @ref sd_ble_gap_whitelist_set.
+ *                                   - Peer address was not present in the device identity list, see @ref sd_ble_gap_device_identities_set.
+ * @retval ::NRF_ERROR_INVALID_STATE The SoftDevice is in an invalid state to perform this operation. This may be due to an
+ *                                   existing locally initiated connect procedure, which must complete before initiating again.
+ * @retval ::BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Peer address.
+ * @retval ::NRF_ERROR_CONN_COUNT The limit of available connections has been reached.
+ * @retval ::NRF_ERROR_RESOURCES Not enough BLE role slots available.
+ *                               Stop one or more currently active roles (Central, Peripheral or Broadcaster) and try again
+ */
+SVCALL(SD_BLE_GAP_CONNECT, uint32_t, sd_ble_gap_connect(ble_gap_addr_t const *p_peer_addr, ble_gap_scan_params_t const *p_scan_params, ble_gap_conn_params_t const *p_conn_params, uint8_t conn_cfg_tag));
+
+
+/**@brief Cancel a connection establishment.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_CONN_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully canceled an ongoing connection procedure.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ */
+SVCALL(SD_BLE_GAP_CONNECT_CANCEL, uint32_t, sd_ble_gap_connect_cancel(void));
+
+
+/**@brief Initiate or respond to a PHY Update Procedure
+ *
+ * @details   This function is used to initiate or respond to a PHY Update Procedure. It will always
+ *            generate a @ref BLE_GAP_EVT_PHY_UPDATE event if successfully executed.
+ *            If this function is used to initiate a PHY Update procedure and the only option
+ *            provided in @ref ble_gap_phys_t::tx_phys and @ref ble_gap_phys_t::rx_phys is the
+ *            currently active PHYs in the respective directions, the SoftDevice will generate a
+ *            @ref BLE_GAP_EVT_PHY_UPDATE with the current PHYs set and will not initiate the
+ *            procedure in the Link Layer.
+ *            If @ref ble_gap_phys_t::tx_phys or @ref ble_gap_phys_t::rx_phys is
+ *            @ref BLE_GAP_PHY_AUTO, then the stack will select a PHY for the respective direction
+ *            based on the peer's PHY preferences and the local stack configuration.
+ *            If the peer does not support the PHY Update Procedure, then the resulting
+ *            @ref BLE_GAP_EVT_PHY_UPDATE event will have a status set to
+ *            @ref BLE_HCI_UNSUPPORTED_REMOTE_FEATURE.
+ *            If the PHY procedure was rejected by the peer due to a procedure collision, the status
+ *            will be @ref BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION or
+ *            @ref BLE_HCI_DIFFERENT_TRANSACTION_COLLISION.
+ *            If the peer responds to the PHY Update procedure with invalid parameters, the status
+ *            will be @ref BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS.
+ *            If the PHY procedure was rejected by the peer for a different reason, the status will
+ *            contain the reason as specified by the peer.
+ *
+ * @events
+ * @event{@ref BLE_GAP_EVT_PHY_UPDATE, Result of the PHY Update Procedure.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_CENTRAL_PHY_UPDATE}
+ * @mmsc{@ref BLE_GAP_PERIPHERAL_PHY_UPDATE}
+ * @endmscs
+ *
+ * @param[in] conn_handle   Connection handle to indicate the connection for which the PHY Update is requested.
+ * @param[in] p_gap_phys    Pointer to PHY structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully requested a PHY Update.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Unsupported PHYs supplied to the call.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_BUSY Procedure is already in progress or not allowed at this time. Process pending events and wait for the pending procedure to complete and retry.
+ *
+ */
+SVCALL(SD_BLE_GAP_PHY_UPDATE, uint32_t, sd_ble_gap_phy_update(uint16_t conn_handle, ble_gap_phys_t const *p_gap_phys));
+
+
+/**@brief Initiate or respond to a Data Length Update Procedure.
+ *
+ * @note Only symmetric input parameters for the Data Length Update is supported. Only
+ *       @ref BLE_GAP_DATA_LENGTH_AUTO for max_tx_time_us and max_rx_time_us is supported.
+ *
+ * @note If the application uses @ref BLE_GAP_DATA_LENGTH_AUTO for one or more members of
+ *       p_dl_params, the SoftDevice will choose the highest value supported in current
+ *       configuration and connection parameters.
+ *
+ * @param[in]   conn_handle       Connection handle.
+ * @param[in]   p_dl_params       Pointer to local parameters to be used in Data Length Update
+ *                                Procedure. Set any member to @ref BLE_GAP_DATA_LENGTH_AUTO to let
+ *                                the SoftDevice automatically decide the value for that member.
+ *                                Set to NULL to use automatic values for all members.
+ * @param[out]  p_dl_limitation   Pointer to limitation to be written when local device does not
+ *                                have enough resources to accommodate the requested Data Length
+ *                                Update parameters. Ignored if NULL.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GAP_DATA_LENGTH_UPDATE_PROCEDURE_MSC}
+ * @endmscs
+ *
+ * @retval ::NRF_SUCCESS Successfully set Data Length Extension initiation/response parameters.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle parameter supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED The requested parameters are not supported by the SoftDevice.
+ * @retval ::NRF_ERROR_RESOURCES The requested parameters can not be accommodated. Inspect
+ *                               p_dl_limitation so see where the limitation is.
+ * @retval ::NRF_ERROR_BUSY Peer has already initiated a Data Length Update Procedure. Process the
+ *                          pending @ref BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST event to respond.
+ */
+SVCALL(SD_BLE_GAP_DATA_LENGTH_UPDATE, uint32_t, sd_ble_gap_data_length_update(uint16_t conn_handle, ble_gap_data_length_params_t const *p_dl_params, ble_gap_data_length_limitation_t *p_dl_limitation));
+
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GAP_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatt.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatt.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatt.h
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2013 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common
+  @{
+  @brief  Common definitions and prototypes for the GATT interfaces.
+ */
+
+#ifndef BLE_GATT_H__
+#define BLE_GATT_H__
+
+#include <stdint.h>
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATT_DEFINES Defines
+ * @{ */
+
+/** @brief Default ATT MTU, in bytes. */
+#define BLE_GATT_ATT_MTU_DEFAULT          23
+
+/**@brief Invalid Attribute Handle. */
+#define BLE_GATT_HANDLE_INVALID            0x0000
+
+/**@brief First Attribute Handle. */
+#define BLE_GATT_HANDLE_START              0x0001
+
+/**@brief Last Attribute Handle. */
+#define BLE_GATT_HANDLE_END                0xFFFF
+
+/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources
+ * @{ */
+#define BLE_GATT_TIMEOUT_SRC_PROTOCOL      0x00  /**< ATT Protocol timeout. */
+/** @} */
+
+/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations
+ * @{ */
+#define BLE_GATT_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATT_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATT_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATT_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATT_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATT_OP_EXEC_WRITE_REQ         0x05  /**< Execute Write Request. */
+/** @} */
+
+/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags
+ * @{ */
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00   /**< Cancel prepared write. */
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE  0x01   /**< Execute prepared write. */
+/** @} */
+
+/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations
+ * @{ */
+#define BLE_GATT_HVX_INVALID               0x00  /**< Invalid Operation. */
+#define BLE_GATT_HVX_NOTIFICATION          0x01  /**< Handle Value Notification. */
+#define BLE_GATT_HVX_INDICATION            0x02  /**< Handle Value Indication. */
+/** @} */
+
+/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes
+ * @{ */
+#define BLE_GATT_STATUS_SUCCESS                           0x0000  /**< Success. */
+#define BLE_GATT_STATUS_UNKNOWN                           0x0001  /**< Unknown or not applicable status. */
+#define BLE_GATT_STATUS_ATTERR_INVALID                    0x0100  /**< ATT Error: Invalid Error Code. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE             0x0101  /**< ATT Error: Invalid Attribute Handle. */
+#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED         0x0102  /**< ATT Error: Read not permitted. */
+#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED        0x0103  /**< ATT Error: Write not permitted. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_PDU                0x0104  /**< ATT Error: Used in ATT as Invalid PDU. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION       0x0105  /**< ATT Error: Authenticated link required. */
+#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED      0x0106  /**< ATT Error: Used in ATT as Request Not Supported. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET             0x0107  /**< ATT Error: Offset specified was past the end of the attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION        0x0108  /**< ATT Error: Used in ATT as Insufficient Authorization. */
+#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL         0x0109  /**< ATT Error: Used in ATT as Prepare Queue Full. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND        0x010A  /**< ATT Error: Used in ATT as Attribute not found. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG         0x010B  /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE         0x010C  /**< ATT Error: Encryption key size used is insufficient. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH     0x010D  /**< ATT Error: Invalid value size. */
+#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR             0x010E  /**< ATT Error: Very unlikely error. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION           0x010F  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE     0x0110  /**< ATT Error: Attribute type is not a supported grouping attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES            0x0111  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN           0x0112  /**< ATT Error: Reserved for Future Use range #1 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END             0x017F  /**< ATT Error: Reserved for Future Use range #1 end. */
+#define BLE_GATT_STATUS_ATTERR_APP_BEGIN                  0x0180  /**< ATT Error: Application range begin. */
+#define BLE_GATT_STATUS_ATTERR_APP_END                    0x019F  /**< ATT Error: Application range end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN           0x01A0  /**< ATT Error: Reserved for Future Use range #2 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END             0x01DF  /**< ATT Error: Reserved for Future Use range #2 end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN           0x01E0  /**< ATT Error: Reserved for Future Use range #3 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END             0x01FC  /**< ATT Error: Reserved for Future Use range #3 end. */
+#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR      0x01FD  /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */
+#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG       0x01FE  /**< ATT Common Profile and Service Error: Procedure Already in Progress. */
+#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE           0x01FF  /**< ATT Common Profile and Service Error: Out Of Range. */
+/** @} */
+
+
+/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats
+ *  @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
+ * @{ */
+#define BLE_GATT_CPF_FORMAT_RFU                 0x00 /**< Reserved For Future Use. */
+#define BLE_GATT_CPF_FORMAT_BOOLEAN             0x01 /**< Boolean. */
+#define BLE_GATT_CPF_FORMAT_2BIT                0x02 /**< Unsigned 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_NIBBLE              0x03 /**< Unsigned 4-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT8               0x04 /**< Unsigned 8-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT12              0x05 /**< Unsigned 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT16              0x06 /**< Unsigned 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT24              0x07 /**< Unsigned 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT32              0x08 /**< Unsigned 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT48              0x09 /**< Unsigned 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT64              0x0A /**< Unsigned 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT128             0x0B /**< Unsigned 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT8               0x0C /**< Signed 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT12              0x0D /**< Signed 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT16              0x0E /**< Signed 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT24              0x0F /**< Signed 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT32              0x10 /**< Signed 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT48              0x11 /**< Signed 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT64              0x12 /**< Signed 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT128             0x13 /**< Signed 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_FLOAT32             0x14 /**< IEEE-754 32-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_FLOAT64             0x15 /**< IEEE-754 64-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_SFLOAT              0x16 /**< IEEE-11073 16-bit SFLOAT. */
+#define BLE_GATT_CPF_FORMAT_FLOAT               0x17 /**< IEEE-11073 32-bit FLOAT. */
+#define BLE_GATT_CPF_FORMAT_DUINT16             0x18 /**< IEEE-20601 format. */
+#define BLE_GATT_CPF_FORMAT_UTF8S               0x19 /**< UTF-8 string. */
+#define BLE_GATT_CPF_FORMAT_UTF16S              0x1A /**< UTF-16 string. */
+#define BLE_GATT_CPF_FORMAT_STRUCT              0x1B /**< Opaque Structure. */
+/** @} */
+
+/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces
+ * @{
+ */
+#define BLE_GATT_CPF_NAMESPACE_BTSIG            0x01 /**< Bluetooth SIG defined Namespace. */
+#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000 /**< Namespace Description Unknown. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATT_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE GATT connection configuration parameters, set with @ref sd_ble_cfg_set.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM att_mtu is smaller than @ref BLE_GATT_ATT_MTU_DEFAULT.
+ */
+typedef struct
+{
+  uint16_t  att_mtu;          /**< Maximum size of ATT packet the SoftDevice can send or receive.
+                                   The default and minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT.
+                                   @mscs
+                                   @mmsc{@ref BLE_GATTC_MTU_EXCHANGE}
+                                   @mmsc{@ref BLE_GATTS_MTU_EXCHANGE}
+                                   @endmscs
+                              */
+} ble_gatt_conn_cfg_t;
+
+/**@brief GATT Characteristic Properties. */
+typedef struct
+{
+  /* Standard properties */
+  uint8_t broadcast       :1; /**< Broadcasting of the value permitted. */
+  uint8_t read            :1; /**< Reading the value permitted. */
+  uint8_t write_wo_resp   :1; /**< Writing the value with Write Command permitted. */
+  uint8_t write           :1; /**< Writing the value with Write Request permitted. */
+  uint8_t notify          :1; /**< Notification of the value permitted. */
+  uint8_t indicate        :1; /**< Indications of the value permitted. */
+  uint8_t auth_signed_wr  :1; /**< Writing the value with Signed Write Command permitted. */
+} ble_gatt_char_props_t;
+
+/**@brief GATT Characteristic Extended Properties. */
+typedef struct
+{
+  /* Extended properties */
+  uint8_t reliable_wr     :1; /**< Writing the value with Queued Write operations permitted. */
+  uint8_t wr_aux          :1; /**< Writing the Characteristic User Description descriptor permitted. */
+} ble_gatt_char_ext_props_t;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GATT_H__
+
+/** @} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gattc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gattc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gattc.h
@@ -0,0 +1,707 @@
+/*
+ * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client
+  @{
+  @brief  Definitions and prototypes for the GATT Client interface.
+ */
+
+#ifndef BLE_GATTC_H__
+#define BLE_GATTC_H__
+
+#include <stdint.h>
+#include "nrf.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+#include "ble_gatt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATTC_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief GATTC API SVC numbers. */
+enum BLE_GATTC_SVCS
+{
+  SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */
+  SD_BLE_GATTC_RELATIONSHIPS_DISCOVER,                         /**< Relationship Discovery. */
+  SD_BLE_GATTC_CHARACTERISTICS_DISCOVER,                       /**< Characteristic Discovery. */
+  SD_BLE_GATTC_DESCRIPTORS_DISCOVER,                           /**< Characteristic Descriptor Discovery. */
+  SD_BLE_GATTC_ATTR_INFO_DISCOVER,                             /**< Attribute Information Discovery. */
+  SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ,                        /**< Read Characteristic Value by UUID. */
+  SD_BLE_GATTC_READ,                                           /**< Generic read. */
+  SD_BLE_GATTC_CHAR_VALUES_READ,                               /**< Read multiple Characteristic Values. */
+  SD_BLE_GATTC_WRITE,                                          /**< Generic write. */
+  SD_BLE_GATTC_HV_CONFIRM,                                     /**< Handle Value Confirmation. */
+  SD_BLE_GATTC_EXCHANGE_MTU_REQUEST,                           /**< Exchange MTU Request. */
+};
+
+/**
+ * @brief GATT Client Event IDs.
+ */
+enum BLE_GATTC_EVTS
+{
+  BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE,  /**< Primary Service Discovery Response event.          \n See @ref ble_gattc_evt_prim_srvc_disc_rsp_t.          */
+  BLE_GATTC_EVT_REL_DISC_RSP,                             /**< Relationship Discovery Response event.             \n See @ref ble_gattc_evt_rel_disc_rsp_t.                */
+  BLE_GATTC_EVT_CHAR_DISC_RSP,                            /**< Characteristic Discovery Response event.           \n See @ref ble_gattc_evt_char_disc_rsp_t.               */
+  BLE_GATTC_EVT_DESC_DISC_RSP,                            /**< Descriptor Discovery Response event.               \n See @ref ble_gattc_evt_desc_disc_rsp_t.               */
+  BLE_GATTC_EVT_ATTR_INFO_DISC_RSP,                       /**< Attribute Information Response event.              \n See @ref ble_gattc_evt_attr_info_disc_rsp_t. */
+  BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP,                /**< Read By UUID Response event.                       \n See @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t.   */
+  BLE_GATTC_EVT_READ_RSP,                                 /**< Read Response event.                               \n See @ref ble_gattc_evt_read_rsp_t.                    */
+  BLE_GATTC_EVT_CHAR_VALS_READ_RSP,                       /**< Read multiple Response event.                      \n See @ref ble_gattc_evt_char_vals_read_rsp_t.          */
+  BLE_GATTC_EVT_WRITE_RSP,                                /**< Write Response event.                              \n See @ref ble_gattc_evt_write_rsp_t.                   */
+  BLE_GATTC_EVT_HVX,                                      /**< Handle Value Notification or Indication event.     \n Confirm indication with @ref sd_ble_gattc_hv_confirm.  \n See @ref ble_gattc_evt_hvx_t. */
+  BLE_GATTC_EVT_EXCHANGE_MTU_RSP,                         /**< Exchange MTU Response event.                       \n See @ref ble_gattc_evt_exchange_mtu_rsp_t.            */
+  BLE_GATTC_EVT_TIMEOUT,                                  /**< Timeout event.                                     \n See @ref ble_gattc_evt_timeout_t.                     */
+  BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE                     /**< Write without Response transmission complete.      \n See @ref ble_gattc_evt_write_cmd_tx_complete_t.       */
+};
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC
+ * @{ */
+#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED    (NRF_GATTC_ERR_BASE + 0x000) /**< Procedure not Permitted. */
+/** @} */
+
+/** @defgroup BLE_GATTC_ATTR_INFO_FORMAT Attribute Information Formats
+ * @{ */
+#define BLE_GATTC_ATTR_INFO_FORMAT_16BIT    1 /**< 16-bit Attribute Information Format. */
+#define BLE_GATTC_ATTR_INFO_FORMAT_128BIT   2 /**< 128-bit Attribute Information Format. */
+/** @} */
+
+/** @defgroup BLE_GATTC_DEFAULTS GATT Client defaults
+ * @{ */
+#define BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT  1 /**< Default number of Write without Response that can be queued for transmission. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATTC_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE GATTC connection configuration parameters, set with @ref sd_ble_cfg_set.
+ */
+typedef struct
+{
+  uint8_t  write_cmd_tx_queue_size; /**< The guaranteed minimum number of Write without Response that can be queued for transmission.
+                                          The default value is @ref BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT */
+} ble_gattc_conn_cfg_t;
+
+/**@brief Operation Handle Range. */
+typedef struct
+{
+  uint16_t          start_handle; /**< Start Handle. */
+  uint16_t          end_handle;   /**< End Handle. */
+} ble_gattc_handle_range_t;
+
+
+/**@brief GATT service. */
+typedef struct
+{
+  ble_uuid_t               uuid;          /**< Service UUID. */
+  ble_gattc_handle_range_t handle_range;  /**< Service Handle Range. */
+} ble_gattc_service_t;
+
+
+/**@brief  GATT include. */
+typedef struct
+{
+  uint16_t            handle;           /**< Include Handle. */
+  ble_gattc_service_t included_srvc;    /**< Handle of the included service. */
+} ble_gattc_include_t;
+
+
+/**@brief GATT characteristic. */
+typedef struct
+{
+  ble_uuid_t              uuid;                 /**< Characteristic UUID. */
+  ble_gatt_char_props_t   char_props;           /**< Characteristic Properties. */
+  uint8_t                 char_ext_props : 1;   /**< Extended properties present. */
+  uint16_t                handle_decl;          /**< Handle of the Characteristic Declaration. */
+  uint16_t                handle_value;         /**< Handle of the Characteristic Value. */
+} ble_gattc_char_t;
+
+
+/**@brief GATT descriptor. */
+typedef struct
+{
+  uint16_t          handle;         /**< Descriptor Handle. */
+  ble_uuid_t        uuid;           /**< Descriptor UUID. */
+} ble_gattc_desc_t;
+
+
+/**@brief Write Parameters. */
+typedef struct
+{
+  uint8_t        write_op;             /**< Write Operation to be performed, see @ref BLE_GATT_WRITE_OPS. */
+  uint8_t        flags;                /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */
+  uint16_t       handle;               /**< Handle to the attribute to be written. */
+  uint16_t       offset;               /**< Offset in bytes. @note For WRITE_CMD and WRITE_REQ, offset must be 0. */
+  uint16_t       len;                  /**< Length of data in bytes. */
+  uint8_t const *p_value;              /**< Pointer to the value data. */
+} ble_gattc_write_params_t;
+
+/**@brief Attribute Information for 16-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid_t     uuid;                 /**< 16-bit Attribute UUID. */
+} ble_gattc_attr_info16_t;
+
+/**@brief Attribute Information for 128-bit Attribute UUID. */
+typedef struct
+{
+  uint16_t       handle;               /**< Attribute handle. */
+  ble_uuid128_t  uuid;                 /**< 128-bit Attribute UUID. */
+} ble_gattc_attr_info128_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Service count. */
+  ble_gattc_service_t services[1];      /**< Service data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_prim_srvc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_REL_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Include count. */
+  ble_gattc_include_t includes[1];      /**< Include data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_rel_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Characteristic count. */
+  ble_gattc_char_t    chars[1];       /**< Characteristic data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_DESC_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Descriptor count. */
+  ble_gattc_desc_t    descs[1];       /**< Descriptor data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_desc_disc_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP. */
+typedef struct
+{
+  uint16_t                     count;            /**< Attribute count. */
+  uint8_t                      format;           /**< Attribute information format, see @ref BLE_GATTC_ATTR_INFO_FORMAT. */
+  union {
+    ble_gattc_attr_info16_t  attr_info16[1];     /**< Attribute information for 16-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+    ble_gattc_attr_info128_t attr_info128[1];    /**< Attribute information for 128-bit Attribute UUID.
+                                                      @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                      See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+  } info;                                        /**< Attribute information union. */
+} ble_gattc_evt_attr_info_disc_rsp_t;
+
+/**@brief GATT read by UUID handle value pair. */
+typedef struct
+{
+  uint16_t            handle;          /**< Attribute Handle. */
+  uint8_t            *p_value;         /**< Pointer to the Attribute Value, length is available in @ref ble_gattc_evt_char_val_by_uuid_read_rsp_t::value_len. */
+} ble_gattc_handle_value_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */
+typedef struct
+{
+  uint16_t                  count;            /**< Handle-Value Pair Count. */
+  uint16_t                  value_len;        /**< Length of the value in Handle-Value(s) list. */
+  uint8_t                   handle_value[1];  /**< Handle-Value(s) list. To iterate through the list use @ref sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter.
+                                                   @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                   See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_val_by_uuid_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_READ_RSP. */
+typedef struct
+{
+  uint16_t            handle;         /**< Attribute Handle. */
+  uint16_t            offset;         /**< Offset of the attribute data. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */
+typedef struct
+{
+  uint16_t            len;            /**< Concatenated Attribute values length. */
+  uint8_t             values[1];      /**< Attribute values. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_char_vals_read_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_RSP. */
+typedef struct
+{
+  uint16_t            handle;           /**< Attribute Handle. */
+  uint8_t             write_op;         /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */
+  uint16_t            offset;           /**< Data offset. */
+  uint16_t            len;              /**< Data length. */
+  uint8_t             data[1];          /**< Data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                             See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_write_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_HVX. */
+typedef struct
+{
+  uint16_t            handle;         /**< Handle to which the HVx operation applies. */
+  uint8_t             type;           /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                           See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gattc_evt_hvx_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP. */
+typedef struct
+{
+  uint16_t          server_rx_mtu;            /**< Server RX MTU size. */
+} ble_gattc_evt_exchange_mtu_rsp_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gattc_evt_timeout_t;
+
+/**@brief Event structure for @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE. */
+typedef struct
+{
+  uint8_t             count;            /**< Number of write without response transmissions completed. */
+} ble_gattc_evt_write_cmd_tx_complete_t;
+
+/**@brief GATTC event structure. */
+typedef struct
+{
+  uint16_t            conn_handle;                /**< Connection Handle on which event occurred. */
+  uint16_t            gatt_status;                /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint16_t            error_handle;               /**< In case of error: The handle causing the error. In all other cases @ref BLE_GATT_HANDLE_INVALID. */
+  union
+  {
+    ble_gattc_evt_prim_srvc_disc_rsp_t          prim_srvc_disc_rsp;         /**< Primary Service Discovery Response Event Parameters. */
+    ble_gattc_evt_rel_disc_rsp_t                rel_disc_rsp;               /**< Relationship Discovery Response Event Parameters. */
+    ble_gattc_evt_char_disc_rsp_t               char_disc_rsp;              /**< Characteristic Discovery Response Event Parameters. */
+    ble_gattc_evt_desc_disc_rsp_t               desc_disc_rsp;              /**< Descriptor Discovery Response Event Parameters. */
+    ble_gattc_evt_char_val_by_uuid_read_rsp_t   char_val_by_uuid_read_rsp;  /**< Characteristic Value Read by UUID Response Event Parameters. */
+    ble_gattc_evt_read_rsp_t                    read_rsp;                   /**< Read Response Event Parameters. */
+    ble_gattc_evt_char_vals_read_rsp_t          char_vals_read_rsp;         /**< Characteristic Values Read Response Event Parameters. */
+    ble_gattc_evt_write_rsp_t                   write_rsp;                  /**< Write Response Event Parameters. */
+    ble_gattc_evt_hvx_t                         hvx;                        /**< Handle Value Notification/Indication Event Parameters. */
+    ble_gattc_evt_exchange_mtu_rsp_t            exchange_mtu_rsp;           /**< Exchange MTU Response Event Parameters. */
+    ble_gattc_evt_timeout_t                     timeout;                    /**< Timeout Event Parameters. */
+    ble_gattc_evt_attr_info_disc_rsp_t          attr_info_disc_rsp;         /**< Attribute Information Discovery Event Parameters. */
+    ble_gattc_evt_write_cmd_tx_complete_t       write_cmd_tx_complete;      /**< Write without Response transmission complete Event Parameters. */
+  } params;                                                                 /**< Event Parameters. @note Only valid if @ref gatt_status == @ref BLE_GATT_STATUS_SUCCESS. */
+} ble_gattc_evt_t;
+/** @} */
+
+/** @addtogroup BLE_GATTC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initiate or continue a GATT Primary Service Discovery procedure.
+ *
+ * @details This function initiates or resumes a Primary Service discovery procedure, starting from the supplied handle.
+ *          If the last service has not been reached, this function must be called again with an updated start handle value to continue the search.
+ *
+ * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_PRIM_SRVC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] start_handle Handle to start searching from.
+ * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const *p_srvc_uuid));
+
+
+/**@brief Initiate or continue a GATT Relationship Discovery procedure.
+ *
+ * @details This function initiates or resumes the Find Included Services sub-procedure. If the last included service has not been reached,
+ *          this must be called again with an updated handle range to continue the search.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_REL_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_REL_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic discovery procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type @ref BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_CHAR_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure.
+ *
+ * @details This function initiates or resumes a Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_DESC_DISC_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_DESC_DISC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure.
+ *
+ * @details This function initiates or resumes a Read using Characteristic UUID procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_UUID_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_uuid Pointer to a Characteristic value UUID to read.
+ * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const *p_uuid, ble_gattc_handle_range_t const *p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure.
+ *
+ * @details This function initiates or resumes a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor
+ *          to be read is longer than ATT_MTU - 1, this function must be called multiple times with appropriate offset to read the
+ *          complete value.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_READ_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute to be read.
+ * @param[in] offset Offset into the attribute value to be read.
+ *
+ * @retval ::NRF_SUCCESS Successfully started or resumed the Read (Long) procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset));
+
+
+/**@brief Initiate a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @details This function initiates a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_CHAR_VALS_READ_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_READ_MULT_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read.
+ * @param[in] handle_count The number of handles in p_handles.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const *p_handles, uint16_t handle_count));
+
+
+/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure.
+ *
+ * @details This function can perform all write procedures described in GATT.
+ *
+ * @note    Only one write with response procedure can be ongoing per connection at a time.
+ *          If the application tries to write with response while another write with response procedure is ongoing,
+ *          the function call will return @ref NRF_ERROR_BUSY.
+ *          A @ref BLE_GATTC_EVT_WRITE_RSP event will be issued as soon as the write response arrives from the peer.
+ *
+ * @note    The number of Write without Response that can be queued is configured by @ref ble_gattc_conn_cfg_t::write_cmd_tx_queue_size
+ *          When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES.
+ *          A @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event will be issued as soon as the transmission of the write without response is complete.
+ *
+ * @note    The application can keep track of the available queue element count for writes without responses by following the procedure below:
+ *          - Store initial queue element count in a variable.
+ *          - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS.
+ *          - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE, Write without response transmission complete.}
+ * @event{@ref BLE_GATTC_EVT_WRITE_RSP, Write response received from the peer.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_VALUE_WRITE_WITHOUT_RESP_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_LONG_WRITE_MSC}
+ * @mmsc{@ref BLE_GATTC_VALUE_RELIABLE_WRITE_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_write_params A pointer to a write parameters structure.
+ *
+ * @retval ::NRF_SUCCESS Successfully started the Write procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_BUSY For write with response, GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+                            Wait for a @ref BLE_GATTC_EVT_WRITE_RSP event and retry.
+                            For write without response it can only mean GATT procedure timeout.
+ * @retval ::NRF_ERROR_RESOURCES Too many writes without responses queued.
+ *                               Wait for a @ref BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE event and retry.
+ */
+SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const *p_write_params));
+
+
+/**@brief Send a Handle Value Confirmation to the GATT Server.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_HVI_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute in the indication.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no Indication pending to be confirmed.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle.
+ */
+SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle));
+
+/**@brief Discovers information about a range of attributes on a GATT server.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_ATTR_INFO_DISC_RSP, Generated when information about a range of attributes has been received.}
+ * @endevents
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range The range of handles to request information about.
+ *
+ * @retval ::NRF_SUCCESS Successfully started an attribute information discovery procedure.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state
+ * @retval ::NRF_ERROR_INVALID_ADDR  Invalid pointer supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_ATTR_INFO_DISCOVER, uint32_t, sd_ble_gattc_attr_info_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * p_handle_range));
+
+/**@brief Start an ATT_MTU exchange by sending an Exchange MTU Request to the server.
+ *
+ * @details The SoftDevice sets ATT_MTU to the minimum of:
+ *          - The Client RX MTU value, and
+ *          - The Server RX MTU value from @ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP.
+ *
+ *          However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT.
+ *
+ * @events
+ * @event{@ref BLE_GATTC_EVT_EXCHANGE_MTU_RSP}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTC_MTU_EXCHANGE}
+ * @endmscs
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] client_rx_mtu  Client RX MTU size.
+ *                           - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT.
+ *                           - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration
+                               used for this connection.
+ *                           - The value must be equal to Server RX MTU size given in @ref sd_ble_gatts_exchange_mtu_reply
+ *                             if an ATT_MTU exchange has already been performed in the other direction.
+ *
+ * @retval ::NRF_SUCCESS Successfully sent request to the server.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid connection state or an ATT_MTU exchange was already requested once.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid Client RX MTU size supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Client procedure already in progress or blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTC_EXCHANGE_MTU_REQUEST, uint32_t, sd_ble_gattc_exchange_mtu_request(uint16_t conn_handle, uint16_t client_rx_mtu));
+
+/**@brief Iterate through Handle-Value(s) list in @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *
+ * @param[in] p_gattc_evt  Pointer to event buffer containing @ref BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP event.
+ *                         @note If the buffer contains different event, behavior is undefined.
+ * @param[in,out] p_iter   Iterator, points to @ref ble_gattc_handle_value_t structure that will be filled in with
+ *                         the next Handle-Value pair in each iteration. If the function returns other than
+ *                         @ref NRF_SUCCESS, it will not be changed.
+ *                         - To start iteration, initialize the structure to zero.
+ *                         - To continue, pass the value from previous iteration.
+ *
+ * \code
+ * ble_gattc_handle_value_t iter;
+ * memset(&iter, 0, sizeof(ble_gattc_handle_value_t));
+ * while (sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(&ble_evt.evt.gattc_evt, &iter) == NRF_SUCCESS)
+ * {
+ *   app_handle = iter.handle;
+ *   memcpy(app_value, iter.p_value, ble_evt.evt.gattc_evt.params.char_val_by_uuid_read_rsp.value_len);
+ * }
+ * \endcode
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the next Handle-Value pair.
+ * @retval ::NRF_ERROR_NOT_FOUND No more Handle-Value pairs available in the list.
+ */
+__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter);
+
+/** @} */
+
+#ifndef SUPPRESS_INLINE_IMPLEMENTATION
+
+__STATIC_INLINE uint32_t sd_ble_gattc_evt_char_val_by_uuid_read_rsp_iter(ble_gattc_evt_t *p_gattc_evt, ble_gattc_handle_value_t *p_iter)
+{
+  uint32_t value_len = p_gattc_evt->params.char_val_by_uuid_read_rsp.value_len;
+  uint8_t *p_first = p_gattc_evt->params.char_val_by_uuid_read_rsp.handle_value;
+  uint8_t *p_next = p_iter->p_value ? p_iter->p_value + value_len : p_first;
+
+  if ((p_next - p_first) / (sizeof(uint16_t) + value_len) < p_gattc_evt->params.char_val_by_uuid_read_rsp.count)
+  {
+    p_iter->handle = (uint16_t)p_next[1] << 8 | p_next[0];
+    p_iter->p_value = p_next + sizeof(uint16_t);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_NOT_FOUND;
+  }
+}
+
+#endif /* SUPPRESS_INLINE_IMPLEMENTATION */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_GATTC_H__ */
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatts.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatts.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_gatts.h
@@ -0,0 +1,841 @@
+/*
+ * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server
+  @{
+  @brief  Definitions and prototypes for the GATTS interface.
+ */
+
+#ifndef BLE_GATTS_H__
+#define BLE_GATTS_H__
+
+#include <stdint.h>
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+#include "ble_gatt.h"
+#include "ble_gap.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_GATTS_ENUMERATIONS Enumerations
+ * @{ */
+
+/**
+ * @brief GATTS API SVC numbers.
+ */
+enum BLE_GATTS_SVCS
+{
+  SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */
+  SD_BLE_GATTS_INCLUDE_ADD,                      /**< Add an included service. */
+  SD_BLE_GATTS_CHARACTERISTIC_ADD,               /**< Add a characteristic. */
+  SD_BLE_GATTS_DESCRIPTOR_ADD,                   /**< Add a generic attribute. */
+  SD_BLE_GATTS_VALUE_SET,                        /**< Set an attribute value. */
+  SD_BLE_GATTS_VALUE_GET,                        /**< Get an attribute value. */
+  SD_BLE_GATTS_HVX,                              /**< Handle Value Notification or Indication. */
+  SD_BLE_GATTS_SERVICE_CHANGED,                  /**< Perform a Service Changed Indication to one or more peers. */
+  SD_BLE_GATTS_RW_AUTHORIZE_REPLY,               /**< Reply to an authorization request for a read or write operation on one or more attributes. */
+  SD_BLE_GATTS_SYS_ATTR_SET,                     /**< Set the persistent system attributes for a connection. */
+  SD_BLE_GATTS_SYS_ATTR_GET,                     /**< Retrieve the persistent system attributes. */
+  SD_BLE_GATTS_INITIAL_USER_HANDLE_GET,          /**< Retrieve the first valid user handle. */
+  SD_BLE_GATTS_ATTR_GET,                         /**< Retrieve the UUID and/or metadata of an attribute. */
+  SD_BLE_GATTS_EXCHANGE_MTU_REPLY                /**< Reply to Exchange MTU Request. */
+};
+
+/**
+ * @brief GATT Server Event IDs.
+ */
+enum BLE_GATTS_EVTS
+{
+  BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE,       /**< Write operation performed.                                           \n See @ref ble_gatts_evt_write_t.                 */
+  BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST,             /**< Read/Write Authorization request.                                    \n Reply with @ref sd_ble_gatts_rw_authorize_reply. \n See @ref ble_gatts_evt_rw_authorize_request_t. */
+  BLE_GATTS_EVT_SYS_ATTR_MISSING,                 /**< A persistent system attribute access is pending.                     \n Respond with @ref sd_ble_gatts_sys_attr_set.     \n See @ref ble_gatts_evt_sys_attr_missing_t.     */
+  BLE_GATTS_EVT_HVC,                              /**< Handle Value Confirmation.                                           \n See @ref ble_gatts_evt_hvc_t.                   */
+  BLE_GATTS_EVT_SC_CONFIRM,                       /**< Service Changed Confirmation.                                        \n No additional event structure applies.          */
+  BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST,             /**< Exchange MTU Request.                                                \n Reply with @ref sd_ble_gatts_exchange_mtu_reply. \n See @ref ble_gatts_evt_exchange_mtu_request_t. */
+  BLE_GATTS_EVT_TIMEOUT,                          /**< Peer failed to respond to an ATT request in time.                    \n See @ref ble_gatts_evt_timeout_t.               */
+  BLE_GATTS_EVT_HVN_TX_COMPLETE                   /**< Handle Value Notification transmission complete.                     \n See @ref ble_gatts_evt_hvn_tx_complete_t.       */
+};
+
+/**@brief GATTS Configuration IDs.
+ *
+ * IDs that uniquely identify a GATTS configuration.
+ */
+enum BLE_GATTS_CFGS
+{
+  BLE_GATTS_CFG_SERVICE_CHANGED = BLE_GATTS_CFG_BASE, /**< Service changed configuration. */
+  BLE_GATTS_CFG_ATTR_TAB_SIZE,                        /**< Attribute table size configuration. */
+};
+
+/** @} */
+
+/** @addtogroup BLE_GATTS_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS
+ * @{ */
+#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE   (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */
+#define BLE_ERROR_GATTS_SYS_ATTR_MISSING    (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */
+/** @} */
+
+/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths
+ * @{ */
+#define BLE_GATTS_FIX_ATTR_LEN_MAX (510)  /**< Maximum length for fixed length Attribute Values. */
+#define BLE_GATTS_VAR_ATTR_LEN_MAX (512)  /**< Maximum length for variable length Attribute Values. */
+/** @} */
+
+/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types
+ * @{ */
+#define BLE_GATTS_SRVC_TYPE_INVALID          0x00  /**< Invalid Service Type. */
+#define BLE_GATTS_SRVC_TYPE_PRIMARY          0x01  /**< Primary Service. */
+#define BLE_GATTS_SRVC_TYPE_SECONDARY        0x02  /**< Secondary Type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types
+ * @{ */
+#define BLE_GATTS_ATTR_TYPE_INVALID         0x00  /**< Invalid Attribute Type. */
+#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL  0x01  /**< Primary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL   0x02  /**< Secondary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_INC_DECL        0x03  /**< Include Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_DECL       0x04  /**< Characteristic Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_VAL        0x05  /**< Characteristic Value. */
+#define BLE_GATTS_ATTR_TYPE_DESC            0x06  /**< Descriptor. */
+#define BLE_GATTS_ATTR_TYPE_OTHER           0x07  /**< Other, non-GATT specific type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_OPS GATT Server Operations
+ * @{ */
+#define BLE_GATTS_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATTS_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATTS_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATTS_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATTS_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL  0x05  /**< Execute Write Request: Cancel all prepared writes. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW     0x06  /**< Execute Write Request: Immediately execute all prepared writes. */
+/** @} */
+
+/** @defgroup BLE_GATTS_VLOCS GATT Value Locations
+ * @{ */
+#define BLE_GATTS_VLOC_INVALID       0x00  /**< Invalid Location. */
+#define BLE_GATTS_VLOC_STACK         0x01  /**< Attribute Value is located in stack memory, no user memory is required. */
+#define BLE_GATTS_VLOC_USER          0x02  /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack
+                                                will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */
+/** @} */
+
+/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types
+ * @{ */
+#define BLE_GATTS_AUTHORIZE_TYPE_INVALID    0x00  /**< Invalid Type. */
+#define BLE_GATTS_AUTHORIZE_TYPE_READ       0x01  /**< Authorize a Read Operation. */
+#define BLE_GATTS_AUTHORIZE_TYPE_WRITE      0x02  /**< Authorize a Write Request Operation. */
+/** @} */
+
+/** @defgroup BLE_GATTS_SYS_ATTR_FLAGS System Attribute Flags
+ * @{ */
+#define BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS (1 << 0)  /**< Restrict system attributes to system services only. */
+#define BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS (1 << 1)  /**< Restrict system attributes to user services only. */
+/** @} */
+
+/** @defgroup BLE_GATTS_SERVICE_CHANGED Service Changed Inclusion Values
+ * @{
+ */
+#define BLE_GATTS_SERVICE_CHANGED_DEFAULT   (1)   /**< Default is to include the Service Changed characteristic in the Attribute Table. */
+/** @} */
+
+/** @defgroup BLE_GATTS_ATTR_TAB_SIZE Attribute Table size
+ * @{
+ */
+#define BLE_GATTS_ATTR_TAB_SIZE_MIN         (248)  /**< Minimum Attribute Table size */
+#define BLE_GATTS_ATTR_TAB_SIZE_DEFAULT     (1408) /**< Default Attribute Table size. */
+/** @} */
+
+/** @defgroup BLE_GATTS_DEFAULTS GATT Server defaults
+ * @{
+ */
+#define BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT  1 /**< Default number of Handle Value Notifications that can be queued for transmission. */
+/** @} */
+
+/** @} */
+
+/** @addtogroup BLE_GATTS_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE GATTS connection configuration parameters, set with @ref sd_ble_cfg_set.
+ */
+typedef struct
+{
+  uint8_t  hvn_tx_queue_size; /**< Minimum guaranteed number of Handle Value Notifications that can be queued for transmission.
+                                    The default value is @ref BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT */
+} ble_gatts_conn_cfg_t;
+
+/**@brief Attribute metadata. */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t read_perm;       /**< Read permissions. */
+  ble_gap_conn_sec_mode_t write_perm;      /**< Write permissions. */
+  uint8_t                 vlen       :1;   /**< Variable length attribute. */
+  uint8_t                 vloc       :2;   /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 rd_auth    :1;   /**< Read authorization and value will be requested from the application on every read operation. */
+  uint8_t                 wr_auth    :1;   /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */
+} ble_gatts_attr_md_t;
+
+
+/**@brief GATT Attribute. */
+typedef struct
+{
+  ble_uuid_t const          *p_uuid;        /**< Pointer to the attribute UUID. */
+  ble_gatts_attr_md_t const *p_attr_md;     /**< Pointer to the attribute metadata structure. */
+  uint16_t                   init_len;      /**< Initial attribute value length in bytes. */
+  uint16_t                   init_offs;     /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */
+  uint16_t                   max_len;       /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */
+  uint8_t                   *p_value;       /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer
+                                                 that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location.
+                                                 The stack may access that memory directly without the application's knowledge. For writable characteristics, this value must not be a location in flash memory.*/
+} ble_gatts_attr_t;
+
+/**@brief GATT Attribute Value. */
+typedef struct
+{
+  uint16_t  len;        /**< Length in bytes to be written or read. Length in bytes written or read after successful return.*/
+  uint16_t  offset;     /**< Attribute value offset. */
+  uint8_t  *p_value;    /**< Pointer to where value is stored or will be stored.
+                             If value is stored in user memory, only the attribute length is updated when p_value == NULL.
+                             Set to NULL when reading to obtain the complete length of the attribute value */
+} ble_gatts_value_t;
+
+
+/**@brief GATT Characteristic Presentation Format. */
+typedef struct
+{
+  uint8_t          format;      /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */
+  int8_t           exponent;    /**< Exponent for integer data types. */
+  uint16_t         unit;        /**< Unit from Bluetooth Assigned Numbers. */
+  uint8_t          name_space;  /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+  uint16_t         desc;        /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+} ble_gatts_char_pf_t;
+
+
+/**@brief GATT Characteristic metadata. */
+typedef struct
+{
+  ble_gatt_char_props_t       char_props;               /**< Characteristic Properties. */
+  ble_gatt_char_ext_props_t   char_ext_props;           /**< Characteristic Extended Properties. */
+  uint8_t const              *p_char_user_desc;         /**< Pointer to a UTF-8 encoded string (non-NULL terminated), NULL if the descriptor is not required. */
+  uint16_t                    char_user_desc_max_size;  /**< The maximum size in bytes of the user description descriptor. */
+  uint16_t                    char_user_desc_size;      /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */
+  ble_gatts_char_pf_t const  *p_char_pf;                /**< Pointer to a presentation format structure or NULL if the CPF descriptor is not required. */
+  ble_gatts_attr_md_t const  *p_user_desc_md;           /**< Attribute metadata for the User Description descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t const  *p_cccd_md;                /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t const  *p_sccd_md;                /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */
+} ble_gatts_char_md_t;
+
+
+/**@brief GATT Characteristic Definition Handles. */
+typedef struct
+{
+  uint16_t          value_handle;       /**< Handle to the characteristic value. */
+  uint16_t          user_desc_handle;   /**< Handle to the User Description descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          cccd_handle;        /**< Handle to the Client Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          sccd_handle;        /**< Handle to the Server Characteristic Configuration Descriptor, or @ref BLE_GATT_HANDLE_INVALID if not present. */
+} ble_gatts_char_handles_t;
+
+
+/**@brief GATT HVx parameters. */
+typedef struct
+{
+  uint16_t          handle;             /**< Characteristic Value Handle. */
+  uint8_t           type;               /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t          offset;             /**< Offset within the attribute value. */
+  uint16_t         *p_len;              /**< Length in bytes to be written, length in bytes written after successful return. */
+  uint8_t const    *p_data;             /**< Actual data content, use NULL to use the current attribute value. */
+} ble_gatts_hvx_params_t;
+
+/**@brief GATT Authorization parameters. */
+typedef struct
+{
+  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint8_t           update : 1;         /**< If set, data supplied in p_data will be used to update the attribute value.
+                                             Please note that for @ref BLE_GATTS_AUTHORIZE_TYPE_WRITE operations this bit must always be set,
+                                             as the data to be written needs to be stored and later provided by the application. */
+  uint16_t          offset;             /**< Offset of the attribute value being updated. */
+  uint16_t          len;                /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */
+  uint8_t const    *p_data;             /**< Pointer to new value used to update the attribute value. */
+} ble_gatts_authorize_params_t;
+
+/**@brief GATT Read or Write Authorize Reply parameters. */
+typedef struct
+{
+  uint8_t                               type;   /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_authorize_params_t        read;   /**< Read authorization parameters. */
+    ble_gatts_authorize_params_t        write;  /**< Write authorization parameters. */
+  } params;                                     /**< Reply Parameters. */
+} ble_gatts_rw_authorize_reply_params_t;
+
+/**@brief Service Changed Inclusion configuration parameters, set with @ref sd_ble_cfg_set. */
+typedef struct
+{
+  uint8_t service_changed : 1;       /**< If 1, include the Service Changed characteristic in the Attribute Table. Default is @ref BLE_GATTS_SERVICE_CHANGED_DEFAULT. */
+} ble_gatts_cfg_service_changed_t;
+
+/**@brief Attribute table size configuration parameters, set with @ref sd_ble_cfg_set.
+ *
+ * @retval ::NRF_ERROR_INVALID_LENGTH One or more of the following is true:
+ *                                    - The specified Attribute Table size is too small.
+ *                                      The minimum acceptable size is defined by @ref BLE_GATTS_ATTR_TAB_SIZE_MIN.
+ *                                    - The specified Attribute Table size is not a multiple of 4.
+ */
+typedef struct
+{
+  uint32_t attr_tab_size; /**< Attribute table size. Default is @ref BLE_GATTS_ATTR_TAB_SIZE_DEFAULT, minimum is @ref BLE_GATTS_ATTR_TAB_SIZE_MIN. */
+} ble_gatts_cfg_attr_tab_size_t;
+
+/**@brief Config structure for GATTS configurations. */
+typedef union
+{
+  ble_gatts_cfg_service_changed_t service_changed;  /**< Include service changed characteristic, cfg_id is @ref BLE_GATTS_CFG_SERVICE_CHANGED. */
+  ble_gatts_cfg_attr_tab_size_t attr_tab_size;      /**< Attribute table size, cfg_id is @ref BLE_GATTS_CFG_ATTR_TAB_SIZE. */
+} ble_gatts_cfg_t;
+
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_WRITE. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  ble_uuid_t                  uuid;               /**< Attribute UUID. */
+  uint8_t                     op;                 /**< Type of write operation, see @ref BLE_GATTS_OPS. */
+  uint8_t                     auth_required;      /**< Writing operation deferred due to authorization requirement. Application may use @ref sd_ble_gatts_value_set to finalize the writing operation. */
+  uint16_t                    offset;             /**< Offset for the write operation. */
+  uint16_t                    len;                /**< Length of the received data. */
+  uint8_t                     data[1];            /**< Received data. @note This is a variable length array. The size of 1 indicated is only a placeholder for compilation.
+                                                       See @ref sd_ble_evt_get for more information on how to use event structures with variable length array members. */
+} ble_gatts_evt_write_t;
+
+/**@brief Event substructure for authorized read requests, see @ref ble_gatts_evt_rw_authorize_request_t. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  ble_uuid_t                  uuid;               /**< Attribute UUID. */
+  uint16_t                    offset;             /**< Offset for the read operation. */
+} ble_gatts_evt_read_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;             /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_evt_read_t      read;             /**< Attribute Read Parameters. */
+    ble_gatts_evt_write_t     write;            /**< Attribute Write Parameters. */
+  } request;                                    /**< Request Parameters. */
+} ble_gatts_evt_rw_authorize_request_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_SYS_ATTR_MISSING. */
+typedef struct
+{
+  uint8_t hint;                                 /**< Hint (currently unused). */
+} ble_gatts_evt_sys_attr_missing_t;
+
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_HVC. */
+typedef struct
+{
+  uint16_t          handle;                       /**< Attribute Handle. */
+} ble_gatts_evt_hvc_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST. */
+typedef struct
+{
+  uint16_t          client_rx_mtu;              /**< Client RX MTU size. */
+} ble_gatts_evt_exchange_mtu_request_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gatts_evt_timeout_t;
+
+/**@brief Event structure for @ref BLE_GATTS_EVT_HVN_TX_COMPLETE. */
+typedef struct
+{
+  uint8_t          count;                     /**< Number of notification transmissions completed. */
+} ble_gatts_evt_hvn_tx_complete_t;
+
+/**@brief GATTS event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                       /**< Connection Handle on which the event occurred. */
+  union
+  {
+    ble_gatts_evt_write_t                 write;                 /**< Write Event Parameters. */
+    ble_gatts_evt_rw_authorize_request_t  authorize_request;     /**< Read or Write Authorize Request Parameters. */
+    ble_gatts_evt_sys_attr_missing_t      sys_attr_missing;      /**< System attributes missing. */
+    ble_gatts_evt_hvc_t                   hvc;                   /**< Handle Value Confirmation Event Parameters. */
+    ble_gatts_evt_exchange_mtu_request_t  exchange_mtu_request;  /**< Exchange MTU Request Event Parameters. */
+    ble_gatts_evt_timeout_t               timeout;               /**< Timeout Event. */
+    ble_gatts_evt_hvn_tx_complete_t       hvn_tx_complete;       /**< Handle Value Notification transmission complete Event Parameters. */
+  } params;                                                      /**< Event Parameters. */
+} ble_gatts_evt_t;
+
+/** @} */
+
+/** @addtogroup BLE_GATTS_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Add a service declaration to the Attribute Table.
+ *
+ * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to
+ *       add a secondary service declaration that is not referenced by another service later in the Attribute Table.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] type      Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES.
+ * @param[in] p_uuid    Pointer to service UUID.
+ * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a service declaration.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const *p_uuid, uint16_t *p_handle));
+
+
+/**@brief Add an include declaration to the Attribute Table.
+ *
+ * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential population is supported at this time).
+ *
+ * @note The included service must already be present in the Attribute Table prior to this call.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] service_handle    Handle of the service where the included service is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] inc_srvc_handle   Handle of the included service.
+ * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added an include declaration.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Feature is not supported, service_handle must be that of the last added service.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ */
+SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *p_include_handle));
+
+
+/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the Attribute Table.
+ *
+ * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential population is supported at this time).
+ *
+ * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writable auxiliaries bits,
+ *       readable (no security) and writable (selectable) CCCDs and SCCDs and valid presentation format values.
+ *
+ * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] service_handle    Handle of the service where the characteristic is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_char_md         Characteristic metadata.
+ * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value.
+ * @param[out] p_handles        Pointer to the structure where the assigned handles will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a characteristic.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const *p_char_md, ble_gatts_attr_t const *p_attr_char_value, ble_gatts_char_handles_t *p_handles));
+
+
+/**@brief Add a descriptor to the Attribute Table.
+ *
+ * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential population is supported at this time).
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_ATT_TABLE_POP_MSC}
+ * @endmscs
+ *
+ * @param[in] char_handle   Handle of the characteristic where the descriptor is to be placed, if @ref BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_attr        Pointer to the attribute structure.
+ * @param[out] p_handle     Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully added a descriptor.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const *p_attr, uint16_t *p_handle));
+
+/**@brief Set the value of a given attribute.
+ *
+ * @note Values other than system attributes can be set at any time, regardless of whether any active connections exist.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle. Ignored if the value does not belong to a system attribute.
+ * @param[in] handle       Attribute handle.
+ * @param[in,out] p_value  Attribute value information.
+ *
+ * @retval ::NRF_SUCCESS Successfully set the value of the attribute.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value));
+
+/**@brief Get the value of a given attribute.
+ *
+ * @note                 If the attribute value is longer than the size of the supplied buffer,
+ *                       p_len will return the total attribute value length (excluding offset),
+ *                       and not the number of bytes actually returned in p_data.
+ *                       The application may use this information to allocate a suitable buffer size.
+ *
+ * @note                 When retrieving system attribute values with this function, the connection handle
+ *                       may refer to an already disconnected connection. Refer to the documentation of
+ *                       @ref sd_ble_gatts_sys_attr_get for further information.
+ *
+ * @param[in] conn_handle  Connection handle. Ignored if the value does not belong to a system attribute.
+ * @param[in] handle       Attribute handle.
+ * @param[in,out] p_value  Attribute value information.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the value of the attribute.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid attribute offset supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied on a system attribute.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t conn_handle, uint16_t handle, ble_gatts_value_t *p_value));
+
+/**@brief Notify or Indicate an attribute value.
+ *
+ * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation
+ *          (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that
+ *          the application can atomically perform a value update and a server initiated transaction with a single API call.
+ *
+ * @note    The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution.
+ *          The Attribute Table has been updated if one of the following error codes is returned: @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY,
+ *          @ref NRF_ERROR_FORBIDDEN, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and @ref NRF_ERROR_RESOURCES.
+ *          The caller can check whether the value has been updated by looking at the contents of *(p_hvx_params->p_len).
+ *
+ * @note    Only one indication procedure can be ongoing per connection at a time.
+ *          If the application tries to indicate an attribute value while another indication procedure is ongoing,
+ *          the function call will return @ref NRF_ERROR_BUSY.
+ *          A @ref BLE_GATTS_EVT_HVC event will be issued as soon as the confirmation arrives from the peer.
+ *
+ * @note    The number of Handle Value Notifications that can be queued is configured by @ref ble_gatts_conn_cfg_t::hvn_tx_queue_size
+ *          When the queue is full, the function call will return @ref NRF_ERROR_RESOURCES.
+ *          A @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event will be issued as soon as the transmission of the notification is complete.
+ *
+ * @note    The application can keep track of the available queue element count for notifications by following the procedure below:
+ *          - Store initial queue element count in a variable.
+ *          - Decrement the variable, which stores the currently available queue element count, by one when a call to this function returns @ref NRF_SUCCESS.
+ *          - Increment the variable, which stores the current available queue element count, by the count variable in @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event.
+ *
+ * @events
+ * @event{@ref BLE_GATTS_EVT_HVN_TX_COMPLETE, Notification transmission complete.}
+ * @event{@ref BLE_GATTS_EVT_HVC, Confirmation received from the peer.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC}
+ * @mmsc{@ref BLE_GATTS_HVN_MSC}
+ * @mmsc{@ref BLE_GATTS_HVI_MSC}
+ * @mmsc{@ref BLE_GATTS_HVX_DISABLED_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] p_hvx_params Pointer to an HVx parameters structure. If the p_data member contains a non-NULL pointer the attribute value will be updated with
+ *                         the contents pointed by it before sending the notification or indication.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true:
+ *                                   - Invalid Connection State
+ *                                   - Notifications and/or indications not enabled in the CCCD
+ *                                   - An ATT_MTU exchange is ongoing
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate.
+ * @retval ::BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute not found.
+ * @retval ::NRF_ERROR_FORBIDDEN The connection's current security level is lower than the one required by the write permissions of the CCCD associated with this characteristic.
+ * @retval ::NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @retval ::NRF_ERROR_BUSY For @ref BLE_GATT_HVX_INDICATION, GATT Server procedure already in progress or blocked because of a previous GATT procedure timeout.
+                            Wait for a @ref BLE_GATTS_EVT_HVC event and retry.
+                            For @ref BLE_GATT_HVX_NOTIFICATION it can only mean GATT procedure timeout.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ * @retval ::NRF_ERROR_RESOURCES Too many notifications queued.
+ *                               Wait for a @ref BLE_GATTS_EVT_HVN_TX_COMPLETE event and retry.
+ */
+SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const *p_hvx_params));
+
+/**@brief Indicate the Service Changed attribute value.
+ *
+ * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the Attribute
+ *          Table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will
+ *          be issued.
+ *
+ * @note    Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here.
+ *
+ * @events
+ * @event{@ref BLE_GATTS_EVT_SC_CONFIRM, Confirmation of attribute table change received from peer.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_SC_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] start_handle Start of affected attribute handle range.
+ * @param[in] end_handle   End of affected attribute handle range.
+ *
+ * @retval ::NRF_SUCCESS Successfully queued the Service Changed indication for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Service Changed not enabled at initialization. See @ref
+ *                                   sd_ble_cfg_set and @ref ble_gatts_cfg_service_changed_t.
+ * @retval ::NRF_ERROR_INVALID_STATE One or more of the following is true:
+ *                                   - Invalid Connection State
+ *                                   - Notifications and/or indications not enabled in the CCCD
+ *                                   - An ATT_MTU exchange is ongoing
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @retval ::BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application.
+ * @retval ::NRF_ERROR_BUSY GATT Server procedure already in progress or blocked because of a previous GATT procedure timeout.
+ * @retval ::BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle));
+
+/**@brief Respond to a Read/Write authorization request.
+ *
+ * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_READ_REQ_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_WRITE_REQ_AUTH_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC}
+ * @mmsc{@ref BLE_GATTS_QUEUED_WRITE_PEER_CANCEL_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle                 Connection handle.
+ * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application.
+ *
+ * @note @ref ble_gatts_authorize_params_t::p_data is ignored when this function is used to respond
+ *       to a @ref BLE_GATTS_AUTHORIZE_TYPE_READ event if @ref ble_gatts_authorize_params_t::update
+ *       is set to 0.
+ *
+ * @retval ::NRF_SUCCESS               Successfully queued a response to the peer, and in the case of a write operation, Attribute Table updated.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_BUSY            The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_ADDR    Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE   Invalid Connection State or no authorization request pending.
+ * @retval ::NRF_ERROR_INVALID_PARAM   Authorization op invalid,
+ *                                         handle supplied does not match requested handle,
+ *                                         or invalid data to be written provided by the application.
+ */
+SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const *p_rw_authorize_reply_params));
+
+
+/**@brief Update persistent system attribute information.
+ *
+ * @details Supply information about persistent system attributes to the stack,
+ *          previously obtained using @ref sd_ble_gatts_sys_attr_get.
+ *          This call is only allowed for active connections, and is usually
+ *          made immediately after a connection is established with an known bonded device,
+ *          often as a response to a @ref BLE_GATTS_EVT_SYS_ATTR_MISSING.
+ *
+ *          p_sysattrs may point directly to the application's stored copy of the system attributes
+ *          obtained using @ref sd_ble_gatts_sys_attr_get.
+ *          If the pointer is NULL, the system attribute info is initialized, assuming that
+ *          the application does not have any previously saved system attribute data for this device.
+ *
+ * @note The state of persistent system attributes is reset upon connection establishment and then remembered for its duration.
+ *
+ * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially.
+ *       This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or
+ *       reset the SoftDevice to return to a known state.
+ *
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be modified.
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be modified.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC}
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC}
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC}
+ * @endmscs
+ *
+ * @param[in]  conn_handle        Connection handle.
+ * @param[in]  p_sys_attr_data    Pointer to a saved copy of system attributes supplied to the stack, or NULL.
+ * @param[in]  len                Size of data pointed by p_sys_attr_data, in octets.
+ * @param[in]  flags              Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS
+ *
+ * @retval ::NRF_SUCCESS Successfully set the system attribute information.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied.
+ * @retval ::NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get.
+ * @retval ::NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const *p_sys_attr_data, uint16_t len, uint32_t flags));
+
+
+/**@brief Retrieve persistent system attribute information from the stack.
+ *
+ * @details This call is used to retrieve information about values to be stored persistently by the application
+ *          during the lifetime of a connection or after it has been terminated. When a new connection is established with the same bonded device,
+ *          the system attribute information retrieved with this function should be restored using using @ref sd_ble_gatts_sys_attr_set.
+ *          If retrieved after disconnection, the data should be read before a new connection established. The connection handle for
+ *          the previous, now disconnected, connection will remain valid until a new one is created to allow this API call to refer to it.
+ *          Connection handles belonging to active connections can be used as well, but care should be taken since the system attributes
+ *          may be written to at any time by the peer during a connection's lifetime.
+ *
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_SYS_SRVCS is used with this function, only the system attributes included in system services will be returned.
+ * @note When the @ref BLE_GATTS_SYS_ATTR_FLAG_USR_SRVCS is used with this function, only the system attributes included in user services will be returned.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC}
+ * @endmscs
+ *
+ * @param[in]     conn_handle       Connection handle of the recently terminated connection.
+ * @param[out]    p_sys_attr_data   Pointer to a buffer where updated information about system attributes will be filled in. The format of the data is described
+ *                                  in @ref BLE_GATTS_SYS_ATTRS_FORMAT. NULL can be provided to obtain the length of the data.
+ * @param[in,out] p_len             Size of application buffer if p_sys_attr_data is not NULL. Unconditionally updated to actual length of system attribute data.
+ * @param[in]     flags             Optional additional flags, see @ref BLE_GATTS_SYS_ATTR_FLAGS
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the system attribute information.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid flags supplied.
+ * @retval ::NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer.
+ * @retval ::NRF_ERROR_NOT_FOUND No system attributes found.
+ */
+SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t *p_sys_attr_data, uint16_t *p_len, uint32_t flags));
+
+
+/**@brief Retrieve the first valid user attribute handle.
+ *
+ * @param[out] p_handle   Pointer to an integer where the handle will be stored.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the handle.
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GATTS_INITIAL_USER_HANDLE_GET, uint32_t, sd_ble_gatts_initial_user_handle_get(uint16_t *p_handle));
+
+/**@brief Retrieve the attribute UUID and/or metadata.
+ *
+ * @param[in]  handle Attribute handle
+ * @param[out] p_uuid UUID of the attribute. Use NULL to omit this field.
+ * @param[out] p_md Metadata of the attribute. Use NULL to omit this field.
+ *
+ * @retval ::NRF_SUCCESS Successfully retrieved the attribute metadata,
+ * @retval ::NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid parameters supplied. Returned when both @c p_uuid and @c p_md are NULL.
+ * @retval ::NRF_ERROR_NOT_FOUND Attribute was not found.
+ */
+SVCALL(SD_BLE_GATTS_ATTR_GET, uint32_t, sd_ble_gatts_attr_get(uint16_t handle, ble_uuid_t * p_uuid, ble_gatts_attr_md_t * p_md));
+
+/**@brief Reply to an ATT_MTU exchange request by sending an Exchange MTU Response to the client.
+ *
+ * @details This function is only used to reply to a @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST event.
+ *
+ * @details The SoftDevice sets ATT_MTU to the minimum of:
+ *          - The Client RX MTU value from @ref BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST, and
+ *          - The Server RX MTU value.
+ *
+ *          However, the SoftDevice never sets ATT_MTU lower than @ref BLE_GATT_ATT_MTU_DEFAULT.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_GATTS_MTU_EXCHANGE}
+ * @endmscs
+ *
+ * @param[in] conn_handle    The connection handle identifying the connection to perform this procedure on.
+ * @param[in] server_rx_mtu  Server RX MTU size.
+ *                           - The minimum value is @ref BLE_GATT_ATT_MTU_DEFAULT.
+ *                           - The maximum value is @ref ble_gatt_conn_cfg_t::att_mtu in the connection configuration
+ *                             used for this connection.
+ *                           - The value must be equal to Client RX MTU size given in @ref sd_ble_gattc_exchange_mtu_request
+ *                             if an ATT_MTU exchange has already been performed in the other direction.
+ *
+ * @retval ::NRF_SUCCESS Successfully sent response to the client.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE Invalid Connection State or no ATT_MTU exchange request pending.
+ * @retval ::NRF_ERROR_INVALID_PARAM Invalid Server RX MTU size supplied.
+ * @retval ::NRF_ERROR_BUSY GATT Blocked because of a previous GATT procedure timeout.
+ */
+SVCALL(SD_BLE_GATTS_EXCHANGE_MTU_REPLY, uint32_t, sd_ble_gatts_exchange_mtu_reply(uint16_t conn_handle, uint16_t server_rx_mtu));
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_GATTS_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_hci.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_hci.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_hci.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+*/
+
+
+#ifndef BLE_HCI_H__
+#define BLE_HCI_H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes
+ * @{ */
+
+#define BLE_HCI_STATUS_CODE_SUCCESS                        0x00   /**< Success. */
+#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND           0x01   /**< Unknown BLE Command. */
+#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER  0x02   /**< Unknown Connection Identifier. */
+/*0x03 Hardware Failure
+0x04 Page Timeout
+*/
+#define BLE_HCI_AUTHENTICATION_FAILURE                     0x05   /**< Authentication Failure. */
+#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING             0x06   /**< Pin or Key missing. */
+#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED                   0x07   /**< Memory Capacity Exceeded. */
+#define BLE_HCI_CONNECTION_TIMEOUT                         0x08   /**< Connection Timeout. */
+/*0x09 Connection Limit Exceeded
+0x0A Synchronous Connection Limit To A Device Exceeded
+0x0B ACL Connection Already Exists*/
+#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED             0x0C   /**< Command Disallowed. */
+/*0x0D Connection Rejected due to Limited Resources
+0x0E Connection Rejected Due To Security Reasons
+0x0F Connection Rejected due to Unacceptable BD_ADDR
+0x10 Connection Accept Timeout Exceeded
+0x11 Unsupported Feature or Parameter Value*/
+#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12  /**< Invalid BLE Command Parameters. */
+#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION           0x13  /**< Remote User Terminated Connection. */
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14  /**< Remote Device Terminated Connection due to low resources.*/
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF     0x15  /**< Remote Device Terminated Connection due to power off. */
+#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION            0x16  /**< Local Host Terminated Connection. */
+/*
+0x17 Repeated Attempts
+0x18 Pairing Not Allowed
+0x19 Unknown LMP PDU
+*/
+#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A                   /**< Unsupported Remote Feature. */
+/*
+0x1B SCO Offset Rejected
+0x1C SCO Interval Rejected
+0x1D SCO Air Mode Rejected*/
+#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS     0x1E       /**< Invalid LMP Parameters. */
+#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR          0x1F       /**< Unspecified Error. */
+/*0x20 Unsupported LMP Parameter Value
+0x21 Role Change Not Allowed
+*/
+#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT            0x22       /**< LMP Response Timeout. */
+#define BLE_HCI_STATUS_CODE_LMP_ERROR_TRANSACTION_COLLISION 0x23  /**< LMP Error Transaction Collision/LL Procedure Collision. */
+#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED             0x24       /**< LMP PDU Not Allowed. */
+/*0x25 Encryption Mode Not Acceptable
+0x26 Link Key Can Not be Changed
+0x27 Requested QoS Not Supported
+*/
+#define BLE_HCI_INSTANT_PASSED                         0x28       /**< Instant Passed. */
+#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED      0x29       /**< Pairing with Unit Key Unsupported. */
+#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION        0x2A       /**< Different Transaction Collision. */
+/*
+0x2B Reserved
+0x2C QoS Unacceptable Parameter
+0x2D QoS Rejected
+0x2E Channel Classification Not Supported
+0x2F Insufficient Security
+*/
+#define BLE_HCI_PARAMETER_OUT_OF_MANDATORY_RANGE       0x30            /**< Parameter Out Of Mandatory Range. */
+/*
+0x31 Reserved
+0x32 Role Switch Pending
+0x33 Reserved
+0x34 Reserved Slot Violation
+0x35 Role Switch Failed
+0x36 Extended Inquiry Response Too Large
+0x37 Secure Simple Pairing Not Supported By Host.
+0x38 Host Busy - Pairing
+0x39 Connection Rejected due to No Suitable Channel Found*/
+#define BLE_HCI_CONTROLLER_BUSY                        0x3A       /**< Controller Busy. */
+#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE             0x3B       /**< Connection Interval Unacceptable. */
+#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT            0x3C       /**< Directed Advertisement Timeout. */
+#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE     0x3D       /**< Connection Terminated due to MIC Failure. */
+#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED          0x3E       /**< Connection Failed to be Established. */
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_HCI_H__
+
+/** @} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_l2cap.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_l2cap.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_l2cap.h
@@ -0,0 +1,507 @@
+/*
+ * Copyright (c) 2011 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP)
+  @{
+  @brief Definitions and prototypes for the L2CAP interface.
+ */
+
+#ifndef BLE_L2CAP_H__
+#define BLE_L2CAP_H__
+
+#include <stdint.h>
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "ble_hci.h"
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_err.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup BLE_L2CAP_TERMINOLOGY Terminology
+ * @{
+ * @details
+ *
+ * L2CAP SDU
+ * - A data unit that the application can send/receive to/from a peer.
+ *
+ * L2CAP PDU
+ * - A data unit that is exchanged between local and remote L2CAP entities.
+ *   It consists of L2CAP protocol control information and payload fields.
+ *   The payload field can contain an L2CAP SDU or a part of an L2CAP SDU.
+ *
+ * L2CAP MTU
+ * - The maximum length of an L2CAP SDU.
+ *
+ * L2CAP MPS
+ * - The maximum length of an L2CAP PDU payload field.
+ *
+ * Credits
+ * - A value indicating the number of L2CAP PDUs that the receiver of the credit can send to the peer.
+ * @} */
+
+/**@addtogroup BLE_L2CAP_ENUMERATIONS Enumerations
+ * @{ */
+
+/**@brief L2CAP API SVC numbers. */
+enum BLE_L2CAP_SVCS
+{
+  SD_BLE_L2CAP_CH_SETUP        = BLE_L2CAP_SVC_BASE + 0, /**< Set up an L2CAP channel. */
+  SD_BLE_L2CAP_CH_RELEASE      = BLE_L2CAP_SVC_BASE + 1, /**< Release an L2CAP channel. */
+  SD_BLE_L2CAP_CH_RX           = BLE_L2CAP_SVC_BASE + 2, /**< Receive an SDU on an L2CAP channel. */
+  SD_BLE_L2CAP_CH_TX           = BLE_L2CAP_SVC_BASE + 3, /**< Transmit an SDU on an L2CAP channel. */
+  SD_BLE_L2CAP_CH_FLOW_CONTROL = BLE_L2CAP_SVC_BASE + 4, /**< Advanced SDU reception flow control. */
+};
+
+/**@brief L2CAP Event IDs. */
+enum BLE_L2CAP_EVTS
+{
+  BLE_L2CAP_EVT_CH_SETUP_REQUEST    = BLE_L2CAP_EVT_BASE + 0,    /**< L2CAP Channel Setup Request event.
+                                                                   \n See @ref ble_l2cap_evt_ch_setup_request_t. */
+  BLE_L2CAP_EVT_CH_SETUP_REFUSED    = BLE_L2CAP_EVT_BASE + 1,    /**< L2CAP Channel Setup Refused event.
+                                                                   \n See @ref ble_l2cap_evt_ch_setup_refused_t. */
+  BLE_L2CAP_EVT_CH_SETUP            = BLE_L2CAP_EVT_BASE + 2,    /**< L2CAP Channel Setup Completed event.
+                                                                   \n See @ref ble_l2cap_evt_ch_setup_t. */
+  BLE_L2CAP_EVT_CH_RELEASED         = BLE_L2CAP_EVT_BASE + 3,    /**< L2CAP Channel Released event.
+                                                                   \n No additional event structure applies. */
+  BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED = BLE_L2CAP_EVT_BASE + 4,    /**< L2CAP Channel SDU data buffer released event.
+                                                                   \n See @ref ble_l2cap_evt_ch_sdu_buf_released_t. */
+  BLE_L2CAP_EVT_CH_CREDIT           = BLE_L2CAP_EVT_BASE + 5,    /**< L2CAP Channel Credit received.
+                                                                   \n See @ref ble_l2cap_evt_ch_credit_t. */
+  BLE_L2CAP_EVT_CH_RX               = BLE_L2CAP_EVT_BASE + 6,    /**< L2CAP Channel SDU received.
+                                                                   \n See @ref ble_l2cap_evt_ch_rx_t. */
+  BLE_L2CAP_EVT_CH_TX               = BLE_L2CAP_EVT_BASE + 7,   /**< L2CAP Channel SDU transmitted.
+                                                                   \n See @ref ble_l2cap_evt_ch_tx_t. */
+};
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_DEFINES Defines
+ * @{ */
+
+/**@brief Maximum number of L2CAP channels per connection. */
+#define BLE_L2CAP_CH_COUNT_MAX    (64)
+
+/**@brief Minimum L2CAP MTU, in bytes. */
+#define BLE_L2CAP_MTU_MIN         (23)
+
+/**@brief Minimum L2CAP MPS, in bytes. */
+#define BLE_L2CAP_MPS_MIN         (23)
+
+/**@brief Invalid CID. */
+#define BLE_L2CAP_CID_INVALID     (0x0000)
+
+/**@brief Default number of credits for @ref sd_ble_l2cap_ch_flow_control. */
+#define BLE_L2CAP_CREDITS_DEFAULT (1)
+
+/**@defgroup BLE_L2CAP_CH_SETUP_REFUSED_SRCS L2CAP channel setup refused sources
+ * @{ */
+#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_LOCAL            (0x01)    /**< Local. */
+#define BLE_L2CAP_CH_SETUP_REFUSED_SRC_REMOTE           (0x02)    /**< Remote. */
+ /** @}  */
+
+ /** @defgroup BLE_L2CAP_CH_STATUS_CODES L2CAP channel status codes
+ * @{ */
+#define BLE_L2CAP_CH_STATUS_CODE_SUCCESS                (0x0000)  /**< Success. */
+#define BLE_L2CAP_CH_STATUS_CODE_LE_PSM_NOT_SUPPORTED   (0x0002)  /**< LE_PSM not supported. */
+#define BLE_L2CAP_CH_STATUS_CODE_NO_RESOURCES           (0x0004)  /**< No resources available. */
+#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHENTICATION  (0x0005)  /**< Insufficient authentication. */
+#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_AUTHORIZATION   (0x0006)  /**< Insufficient authorization. */
+#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC_KEY_SIZE    (0x0007)  /**< Insufficient encryption key size. */
+#define BLE_L2CAP_CH_STATUS_CODE_INSUFF_ENC             (0x0008)  /**< Insufficient encryption. */
+#define BLE_L2CAP_CH_STATUS_CODE_INVALID_SCID           (0x0009)  /**< Invalid Source CID. */
+#define BLE_L2CAP_CH_STATUS_CODE_SCID_ALLOCATED         (0x000A)  /**< Source CID already allocated. */
+#define BLE_L2CAP_CH_STATUS_CODE_UNACCEPTABLE_PARAMS    (0x000B)  /**< Unacceptable parameters. */
+#define BLE_L2CAP_CH_STATUS_CODE_NOT_UNDERSTOOD         (0x8000)  /**< Command Reject received instead of LE Credit Based Connection Response. */
+#define BLE_L2CAP_CH_STATUS_CODE_TIMEOUT                (0xC000)  /**< Operation timed out. */
+/** @} */
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_STRUCTURES Structures
+ * @{ */
+
+/**
+ * @brief BLE L2CAP connection configuration parameters, set with @ref sd_ble_cfg_set.
+ *
+ * @note  These parameters are set per connection, so all L2CAP channels created on this connection
+ *        will have the same parameters.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM  One or more of the following is true:
+ *                                    - rx_mps is smaller than @ref BLE_L2CAP_MPS_MIN.
+ *                                    - tx_mps is smaller than @ref BLE_L2CAP_MPS_MIN.
+ *                                    - ch_count is greater than @ref BLE_L2CAP_CH_COUNT_MAX.
+ * @retval ::NRF_ERROR_NO_MEM         rx_mps or tx_mps is set too high.
+ */
+typedef struct
+{
+  uint16_t    rx_mps;        /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall
+                                  be able to receive on L2CAP channels on connections with this
+                                  configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */
+  uint16_t    tx_mps;        /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall
+                                  be able to transmit on L2CAP channels on connections with this
+                                  configuration. The minimum value is @ref BLE_L2CAP_MPS_MIN. */
+  uint8_t     rx_queue_size; /**< Number of SDU data buffers that can be queued for reception per
+                                  L2CAP channel. The minimum value is one. */
+  uint8_t     tx_queue_size; /**< Number of SDU data buffers that can be queued for transmission
+                                  per L2CAP channel. The minimum value is one. */
+  uint8_t     ch_count;      /**< Number of L2CAP channels the application can create per connection
+                                  with this configuration. The default value is zero, the maximum
+                                  value is @ref BLE_L2CAP_CH_COUNT_MAX.
+                                  @note if this parameter is set to zero, all other parameters in
+                                  @ref ble_l2cap_conn_cfg_t are ignored. */
+} ble_l2cap_conn_cfg_t;
+
+/**@brief L2CAP channel RX parameters. */
+typedef struct
+{
+  uint16_t    rx_mtu;        /**< The maximum L2CAP SDU size, in bytes, that L2CAP shall be able to
+                                  receive on this L2CAP channel.
+                                  - Must be equal to or greater than @ref BLE_L2CAP_MTU_MIN. */
+  uint16_t    rx_mps;        /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP shall be
+                                  able to receive on this L2CAP channel.
+                                  - Must be equal to or greater than @ref BLE_L2CAP_MPS_MIN.
+                                  - Must be equal to or less than @ref ble_l2cap_conn_cfg_t::rx_mps. */
+  ble_data_t  sdu_buf;       /**< SDU data buffer for reception.
+                                  - If @ref ble_data_t::p_data is non-NULL, initial credits are
+                                    issued to the peer.
+                                  - If @ref ble_data_t::p_data is NULL, no initial credits are
+                                    issued to the peer. */
+} ble_l2cap_ch_rx_params_t;
+
+/**@brief L2CAP channel setup parameters. */
+typedef struct
+{
+  ble_l2cap_ch_rx_params_t      rx_params;  /**< L2CAP channel RX parameters. */
+  uint16_t                      le_psm;     /**< LE Protocol/Service Multiplexer. Used when requesting
+                                                 setup of an L2CAP channel, ignored otherwise. */
+  uint16_t                      status;     /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES.
+                                                 Used when replying to a setup request of an L2CAP
+                                                 channel, ignored otherwise. */
+} ble_l2cap_ch_setup_params_t;
+
+/**@brief L2CAP channel TX parameters. */
+typedef struct
+{
+  uint16_t    tx_mtu;        /**< The maximum L2CAP SDU size, in bytes, that L2CAP is able to
+                                  transmit on this L2CAP channel. */
+  uint16_t    peer_mps;      /**< The maximum L2CAP PDU payload size, in bytes, that the peer is
+                                  able to receive on this L2CAP channel. */
+  uint16_t    tx_mps;        /**< The maximum L2CAP PDU payload size, in bytes, that L2CAP is able
+                                  to transmit on this L2CAP channel. This is effective tx_mps,
+                                  selected by the SoftDevice as
+                                  MIN( @ref ble_l2cap_ch_tx_params_t::peer_mps, @ref ble_l2cap_conn_cfg_t::tx_mps ) */
+  uint16_t    credits;       /**< Initial credits given by the peer. */
+} ble_l2cap_ch_tx_params_t;
+
+/**@brief L2CAP Channel Setup Request event. */
+typedef struct
+{
+  ble_l2cap_ch_tx_params_t  tx_params;  /**< L2CAP channel TX parameters. */
+  uint16_t                  le_psm;     /**< LE Protocol/Service Multiplexer. */
+} ble_l2cap_evt_ch_setup_request_t;
+
+/**@brief L2CAP Channel Setup Refused event. */
+typedef struct
+{
+  uint8_t  source;           /**< Source, see @ref BLE_L2CAP_CH_SETUP_REFUSED_SRCS */
+  uint16_t status;           /**< Status code, see @ref BLE_L2CAP_CH_STATUS_CODES */
+} ble_l2cap_evt_ch_setup_refused_t;
+
+/**@brief L2CAP Channel Setup Completed event. */
+typedef struct
+{
+  ble_l2cap_ch_tx_params_t tx_params;  /**< L2CAP channel TX parameters. */
+} ble_l2cap_evt_ch_setup_t;
+
+/**@brief L2CAP Channel SDU Data Duffer Released event. */
+typedef struct
+{
+  ble_data_t  sdu_buf;       /**< Returned reception or transmission SDU data buffer. The SoftDevice
+                                  returns SDU data buffers supplied by the application, which have
+                                  not yet been returned previously via a @ref BLE_L2CAP_EVT_CH_RX or
+                                  @ref BLE_L2CAP_EVT_CH_TX event. */
+} ble_l2cap_evt_ch_sdu_buf_released_t;
+
+/**@brief L2CAP Channel Credit received event. */
+typedef struct
+{
+  uint16_t  credits;         /**< Additional credits given by the peer. */
+} ble_l2cap_evt_ch_credit_t;
+
+/**@brief L2CAP Channel received SDU event. */
+typedef struct
+{
+  uint16_t    sdu_len;       /**< Total SDU length, in bytes. */
+  ble_data_t  sdu_buf;       /**< SDU data buffer.
+                                  @note If there is not enough space in the buffer
+                                        (sdu_buf.len < sdu_len) then the rest of the SDU will be
+                                        silently discarded by the SoftDevice. */
+} ble_l2cap_evt_ch_rx_t;
+
+/**@brief L2CAP Channel transmitted SDU event. */
+typedef struct
+{
+  ble_data_t  sdu_buf;       /**< SDU data buffer. */
+} ble_l2cap_evt_ch_tx_t;
+
+/**@brief L2CAP event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                     /**< Connection Handle on which the event occured. */
+  uint16_t local_cid;                                       /**< Local Channel ID of the L2CAP channel, or
+                                                                 @ref BLE_L2CAP_CID_INVALID if not present. */
+  union
+  {
+    ble_l2cap_evt_ch_setup_request_t    ch_setup_request;   /**< L2CAP Channel Setup Request Event Parameters. */
+    ble_l2cap_evt_ch_setup_refused_t    ch_setup_refused;   /**< L2CAP Channel Setup Refused Event Parameters. */
+    ble_l2cap_evt_ch_setup_t            ch_setup;           /**< L2CAP Channel Setup Completed Event Parameters. */
+    ble_l2cap_evt_ch_sdu_buf_released_t ch_sdu_buf_released;/**< L2CAP Channel SDU Data Buffer Released Event Parameters. */
+    ble_l2cap_evt_ch_credit_t           credit;             /**< L2CAP Channel Credit Received Event Parameters. */
+    ble_l2cap_evt_ch_rx_t               rx;                 /**< L2CAP Channel SDU Received Event Parameters. */
+    ble_l2cap_evt_ch_tx_t               tx;                 /**< L2CAP Channel SDU Transmitted Event Parameters. */
+  } params;                                                 /**< Event Parameters. */
+} ble_l2cap_evt_t;
+
+/** @} */
+
+/**@addtogroup BLE_L2CAP_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Set up an L2CAP channel.
+ *
+ * @details This function is used to:
+ *          - Request setup of an L2CAP channel: sends an LE Credit Based Connection Request packet to a peer.
+ *          - Reply to a setup request of an L2CAP channel (if called in response to a
+ *            @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST event): sends an LE Credit Based Connection
+ *            Response packet to a peer.
+ *
+ * @note    A call to this function will require the application to keep the SDU data buffer alive
+ *          until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX or
+ *          @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event.
+ *
+ * @events
+ * @event{@ref BLE_L2CAP_EVT_CH_SETUP, Setup successful.}
+ * @event{@ref BLE_L2CAP_EVT_CH_SETUP_REFUSED, Setup failed.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_CH_SETUP_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle      Connection Handle.
+ * @param[in,out] p_local_cid  Pointer to a uint16_t containing Local Channel ID of the L2CAP channel:
+ *                             - As input: @ref BLE_L2CAP_CID_INVALID when requesting setup of an L2CAP
+ *                               channel or local_cid provided in the @ref BLE_L2CAP_EVT_CH_SETUP_REQUEST
+ *                               event when replying to a setup request of an L2CAP channel.
+ *                             - As output: local_cid for this channel.
+ * @param[in] p_params         L2CAP channel parameters.
+ *
+ * @retval ::NRF_SUCCESS                    Successfully queued request or response for transmission.
+ * @retval ::NRF_ERROR_BUSY                 The stack is busy, process pending events and retry.
+ * @retval ::NRF_ERROR_INVALID_ADDR         Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE  Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_PARAM        Invalid parameter(s) supplied.
+ * @retval ::NRF_ERROR_INVALID_LENGTH       Supplied higher rx_mps than has been configured on this link.
+ * @retval ::NRF_ERROR_INVALID_STATE        Invalid State to perform operation (L2CAP channel already set up).
+ * @retval ::NRF_ERROR_NOT_FOUND            CID not found.
+ * @retval ::NRF_ERROR_RESOURCES            The limit has been reached for available L2CAP channels,
+ *                                          see @ref ble_l2cap_conn_cfg_t::ch_count.
+ */
+SVCALL(SD_BLE_L2CAP_CH_SETUP, uint32_t, sd_ble_l2cap_ch_setup(uint16_t conn_handle, uint16_t *p_local_cid, ble_l2cap_ch_setup_params_t const *p_params));
+
+/**@brief Release an L2CAP channel.
+ *
+ * @details This sends a Disconnection Request packet to a peer.
+ *
+ * @events
+ * @event{@ref BLE_L2CAP_EVT_CH_RELEASED, Release complete.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_CH_RELEASE_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle   Connection Handle.
+ * @param[in] local_cid     Local Channel ID of the L2CAP channel.
+ *
+ * @retval ::NRF_SUCCESS                    Successfully queued request for transmission.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE  Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE        Invalid State to perform operation (Setup or release is
+ *                                          in progress for the L2CAP channel).
+ * @retval ::NRF_ERROR_NOT_FOUND            CID not found.
+ */
+SVCALL(SD_BLE_L2CAP_CH_RELEASE, uint32_t, sd_ble_l2cap_ch_release(uint16_t conn_handle, uint16_t local_cid));
+
+/**@brief Receive an SDU on an L2CAP channel.
+ *
+ * @details This may issue additional credits to the peer using an LE Flow Control Credit packet.
+ *
+ * @note    A call to this function will require the application to keep the memory pointed by
+ *          @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_RX
+ *          or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event.
+ *
+ * @note    The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::rx_queue_size SDU data buffers
+ *          for reception per L2CAP channel.
+ *
+ * @events
+ * @event{@ref BLE_L2CAP_EVT_CH_RX, The SDU is received.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_CH_RX_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection Handle.
+ * @param[in] local_cid   Local Channel ID of the L2CAP channel.
+ * @param[in] p_sdu_buf   Pointer to the SDU data buffer.
+ *
+ * @retval ::NRF_SUCCESS                    Buffer accepted.
+ * @retval ::NRF_ERROR_INVALID_ADDR         Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE  Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE        Invalid State to perform operation (Setup or release is
+ *                                          in progress for an L2CAP channel).
+ * @retval ::NRF_ERROR_NOT_FOUND            CID not found.
+ * @retval ::NRF_ERROR_RESOURCES            Too many SDU data buffers supplied. Wait for a
+ *                                          @ref BLE_L2CAP_EVT_CH_RX event and retry.
+ */
+SVCALL(SD_BLE_L2CAP_CH_RX, uint32_t, sd_ble_l2cap_ch_rx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf));
+
+/**@brief Transmit an SDU on an L2CAP channel.
+ *
+ * @note    A call to this function will require the application to keep the memory pointed by
+ *          @ref ble_data_t::p_data alive until the SDU data buffer is returned in @ref BLE_L2CAP_EVT_CH_TX
+ *          or @ref BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event.
+ *
+ * @note    The SoftDevice can queue up to @ref ble_l2cap_conn_cfg_t::tx_queue_size SDUs for
+ *          transmission per L2CAP channel.
+ *
+ * @note    The application can keep track of the available credits for transmission by following
+ *          the procedure below:
+ *          - Store initial credits given by the peer in a variable.
+ *            (Initial credits are provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.)
+ *          - Decrement the variable, which stores the currently available credits, by
+ *            ceiling((@ref ble_data_t::len + 2) / tx_mps) when a call to this function returns
+ *            @ref NRF_SUCCESS. (tx_mps is provided in a @ref BLE_L2CAP_EVT_CH_SETUP event.)
+ *          - Increment the variable, which stores the currently available credits, by additional
+ *            credits given by the peer in a @ref BLE_L2CAP_EVT_CH_CREDIT event.
+ *
+ * @events
+ * @event{@ref BLE_L2CAP_EVT_CH_TX, The SDU is transmitted.}
+ * @endevents
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_CH_TX_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection Handle.
+ * @param[in] local_cid   Local Channel ID of the L2CAP channel.
+ * @param[in] p_sdu_buf   Pointer to the SDU data buffer.
+ *
+ * @retval ::NRF_SUCCESS                    Successfully queued L2CAP SDU for transmission.
+ * @retval ::NRF_ERROR_INVALID_ADDR         Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE  Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE        Invalid State to perform operation (Setup or release is
+ *                                          in progress for the L2CAP channel).
+ * @retval ::NRF_ERROR_NOT_FOUND            CID not found.
+ * @retval ::NRF_ERROR_DATA_SIZE            Invalid SDU length supplied, must not be more than
+ *                                          @ref ble_l2cap_ch_tx_params_t::tx_mtu provided in
+ *                                          @ref BLE_L2CAP_EVT_CH_SETUP event.
+ * @retval ::NRF_ERROR_RESOURCES            Too many SDUs queued for transmission. Wait for a
+ *                                          @ref BLE_L2CAP_EVT_CH_TX event and retry.
+ */
+SVCALL(SD_BLE_L2CAP_CH_TX, uint32_t, sd_ble_l2cap_ch_tx(uint16_t conn_handle, uint16_t local_cid, ble_data_t const *p_sdu_buf));
+
+/**@brief Advanced SDU reception flow control.
+ *
+ * @details Adjust the way the SoftDevice issues credits to the peer.
+ *          This may issue additional credits to the peer using an LE Flow Control Credit packet.
+ *
+ * @mscs
+ * @mmsc{@ref BLE_L2CAP_CH_FLOW_CONTROL_MSC}
+ * @endmscs
+ *
+ * @param[in] conn_handle Connection Handle.
+ * @param[in] local_cid   Local Channel ID of the L2CAP channel or @ref BLE_L2CAP_CID_INVALID to set
+ *                        the value that will be used for newly created channels.
+ * @param[in] credits     Number of credits that the SoftDevice will make sure the peer has every
+ *                        time it starts using a new reception buffer.
+ *                        - @ref BLE_L2CAP_CREDITS_DEFAULT is the default value the SoftDevice will
+ *                          use if this function is not called.
+ *                        - If set to zero, the SoftDevice will stop issuing credits for new reception
+ *                          buffers the application provides or has provided. SDU reception that is
+ *                          currently ongoing will be allowed to complete.
+ * @param[out] p_credits  NULL or pointer to a uint16_t. If a valid pointer is provided, it will be
+ *                        written by the SoftDevice with the number of credits that is or will be
+ *                        available to the peer. If the value written by the SoftDevice is 0 when
+ *                        credits parameter was set to 0, the peer will not be able to send more
+ *                        data until more credits are provided by calling this function again with
+ *                        credits > 0. This parameter is ignored when local_cid is set to
+ *                        @ref BLE_L2CAP_CID_INVALID.
+ *
+ * @note Application should take care when setting number of credits higher than default value. In
+ *       this case the application must make sure that the SoftDevice always has reception buffers
+ *       available (see @ref sd_ble_l2cap_ch_rx) for that channel. If the SoftDevice does not have
+ *       such buffers available, packets may be NACKed on the Link Layer and all Bluetooth traffic
+ *       on the connection handle may be stalled until the SoftDevice again has an available
+ *       reception buffer. This applies even if the application has used this call to set the
+ *       credits back to default, or zero.
+ *
+ * @retval ::NRF_SUCCESS                    Flow control parameters accepted.
+ * @retval ::NRF_ERROR_INVALID_ADDR         Invalid pointer supplied.
+ * @retval ::BLE_ERROR_INVALID_CONN_HANDLE  Invalid Connection Handle.
+ * @retval ::NRF_ERROR_INVALID_STATE        Invalid State to perform operation (Setup or release is
+ *                                          in progress for an L2CAP channel).
+ * @retval ::NRF_ERROR_NOT_FOUND            CID not found.
+ */
+SVCALL(SD_BLE_L2CAP_CH_FLOW_CONTROL, uint32_t, sd_ble_l2cap_ch_flow_control(uint16_t conn_handle, uint16_t local_cid, uint16_t credits, uint16_t *p_credits));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // BLE_L2CAP_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_ranges.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_ranges.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_ranges.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_ranges Module specific SVC, event and option number subranges
+  @{
+
+  @brief Definition of SVC, event and option number subranges for each API module.
+
+  @note
+  SVCs, event and option numbers are split into subranges for each API module.
+  Each module receives its entire allocated range of SVC calls, whether implemented or not,
+  but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range.
+
+  Note that the symbols BLE_<module>_SVC_LAST is the end of the allocated SVC range,
+  rather than the last SVC function call actually defined and implemented.
+
+  Specific SVC, event and option values are defined in each module's ble_<module>.h file,
+  which defines names of each individual SVC code based on the range start value.
+*/
+
+#ifndef BLE_RANGES_H__
+#define BLE_RANGES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BLE_SVC_BASE           0x60       /**< Common BLE SVC base. */
+#define BLE_SVC_LAST           0x6B       /**< Common BLE SVC last. */
+
+#define BLE_GAP_SVC_BASE       0x6C       /**< GAP BLE SVC base. */
+#define BLE_GAP_SVC_LAST       0x93       /**< GAP BLE SVC last. */
+
+#define BLE_GATTC_SVC_BASE     0x94       /**< GATTC BLE SVC base. */
+#define BLE_GATTC_SVC_LAST     0x9F       /**< GATTC BLE SVC last. */
+
+#define BLE_GATTS_SVC_BASE     0xA0       /**< GATTS BLE SVC base. */
+#define BLE_GATTS_SVC_LAST     0xAF       /**< GATTS BLE SVC last. */
+
+#define BLE_L2CAP_SVC_BASE     0xB0       /**< L2CAP BLE SVC base. */
+#define BLE_L2CAP_SVC_LAST     0xBF       /**< L2CAP BLE SVC last. */
+
+
+#define BLE_EVT_INVALID        0x00       /**< Invalid BLE Event. */
+
+#define BLE_EVT_BASE           0x01       /**< Common BLE Event base. */
+#define BLE_EVT_LAST           0x0F       /**< Common BLE Event last. */
+
+#define BLE_GAP_EVT_BASE       0x10       /**< GAP BLE Event base. */
+#define BLE_GAP_EVT_LAST       0x2F       /**< GAP BLE Event last. */
+
+#define BLE_GATTC_EVT_BASE     0x30       /**< GATTC BLE Event base. */
+#define BLE_GATTC_EVT_LAST     0x4F       /**< GATTC BLE Event last. */
+
+#define BLE_GATTS_EVT_BASE     0x50       /**< GATTS BLE Event base. */
+#define BLE_GATTS_EVT_LAST     0x6F       /**< GATTS BLE Event last. */
+
+#define BLE_L2CAP_EVT_BASE     0x70       /**< L2CAP BLE Event base. */
+#define BLE_L2CAP_EVT_LAST     0x8F       /**< L2CAP BLE Event last. */
+
+
+#define BLE_OPT_INVALID        0x00       /**< Invalid BLE Option. */
+
+#define BLE_OPT_BASE           0x01       /**< Common BLE Option base. */
+#define BLE_OPT_LAST           0x1F       /**< Common BLE Option last. */
+
+#define BLE_GAP_OPT_BASE       0x20       /**< GAP BLE Option base. */
+#define BLE_GAP_OPT_LAST       0x3F       /**< GAP BLE Option last. */
+
+#define BLE_GATT_OPT_BASE      0x40       /**< GATT BLE Option base. */
+#define BLE_GATT_OPT_LAST      0x5F       /**< GATT BLE Option last. */
+
+#define BLE_GATTC_OPT_BASE     0x60       /**< GATTC BLE Option base. */
+#define BLE_GATTC_OPT_LAST     0x7F       /**< GATTC BLE Option last. */
+
+#define BLE_GATTS_OPT_BASE     0x80       /**< GATTS BLE Option base. */
+#define BLE_GATTS_OPT_LAST     0x9F       /**< GATTS BLE Option last. */
+
+#define BLE_L2CAP_OPT_BASE     0xA0       /**< L2CAP BLE Option base. */
+#define BLE_L2CAP_OPT_LAST     0xBF       /**< L2CAP BLE Option last. */
+
+
+#define BLE_CFG_INVALID        0x00       /**< Invalid BLE configuration. */
+
+#define BLE_CFG_BASE           0x01       /**< Common BLE configuration base. */
+#define BLE_CFG_LAST           0x1F       /**< Common BLE configuration last. */
+
+#define BLE_CONN_CFG_BASE      0x20       /**< BLE connection configuration base. */
+#define BLE_CONN_CFG_LAST      0x3F       /**< BLE connection configuration last. */
+
+#define BLE_GAP_CFG_BASE       0x40       /**< GAP BLE configuration base. */
+#define BLE_GAP_CFG_LAST       0x5F       /**< GAP BLE configuration last. */
+
+#define BLE_GATT_CFG_BASE      0x60       /**< GATT BLE configuration base. */
+#define BLE_GATT_CFG_LAST      0x7F       /**< GATT BLE configuration last. */
+
+#define BLE_GATTC_CFG_BASE     0x80       /**< GATTC BLE configuration base. */
+#define BLE_GATTC_CFG_LAST     0x9F       /**< GATTC BLE configuration last. */
+
+#define BLE_GATTS_CFG_BASE     0xA0       /**< GATTS BLE configuration base. */
+#define BLE_GATTS_CFG_LAST     0xBF       /**< GATTS BLE configuration last. */
+
+#define BLE_L2CAP_CFG_BASE     0xC0       /**< L2CAP BLE configuration base. */
+#define BLE_L2CAP_CFG_LAST     0xDF       /**< L2CAP BLE configuration last. */
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* BLE_RANGES_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_types.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_types.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/ble_types.h
@@ -0,0 +1,215 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_types Common types and macro definitions
+  @{
+
+  @brief Common types and macro definitions for the BLE SoftDevice.
+ */
+
+#ifndef BLE_TYPES_H__
+#define BLE_TYPES_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup BLE_TYPES_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_CONN_HANDLES BLE Connection Handles
+ * @{ */
+#define BLE_CONN_HANDLE_INVALID 0xFFFF  /**< Invalid Connection Handle. */
+#define BLE_CONN_HANDLE_ALL     0xFFFE  /**< Applies to all Connection Handles. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs
+ * @{ */
+/* Generic UUIDs, applicable to all services */
+#define BLE_UUID_UNKNOWN                              0x0000 /**< Reserved UUID. */
+#define BLE_UUID_SERVICE_PRIMARY                      0x2800 /**< Primary Service. */
+#define BLE_UUID_SERVICE_SECONDARY                    0x2801 /**< Secondary Service. */
+#define BLE_UUID_SERVICE_INCLUDE                      0x2802 /**< Include. */
+#define BLE_UUID_CHARACTERISTIC                       0x2803 /**< Characteristic. */
+#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP             0x2900 /**< Characteristic Extended Properties Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC            0x2901 /**< Characteristic User Description Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG        0x2902 /**< Client Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG        0x2903 /**< Server Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT  0x2904 /**< Characteristic Presentation Format Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT     0x2905 /**< Characteristic Aggregate Format Descriptor. */
+/* GATT specific UUIDs */
+#define BLE_UUID_GATT                                 0x1801 /**< Generic Attribute Profile. */
+#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED  0x2A05 /**< Service Changed Characteristic. */
+/* GAP specific UUIDs */
+#define BLE_UUID_GAP                                  0x1800 /**< Generic Access Profile. */
+#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME       0x2A00 /**< Device Name Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE        0x2A01 /**< Appearance Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR       0x2A03 /**< Reconnection Address Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_PPCP              0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_CAR               0x2AA6 /**< Central Address Resolution Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_RPA_ONLY          0x2AC9 /**< Resolvable Private Address Only Characteristic. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_TYPES Types of UUID
+ * @{ */
+#define BLE_UUID_TYPE_UNKNOWN       0x00 /**< Invalid UUID type. */
+#define BLE_UUID_TYPE_BLE           0x01 /**< Bluetooth SIG UUID (16-bit). */
+#define BLE_UUID_TYPE_VENDOR_BEGIN  0x02 /**< Vendor UUID types start at this index (128-bit). */
+/** @} */
+
+
+/** @defgroup BLE_APPEARANCES Bluetooth Appearance values
+ *  @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
+ * @{ */
+#define BLE_APPEARANCE_UNKNOWN                                0 /**< Unknown. */
+#define BLE_APPEARANCE_GENERIC_PHONE                         64 /**< Generic Phone. */
+#define BLE_APPEARANCE_GENERIC_COMPUTER                     128 /**< Generic Computer. */
+#define BLE_APPEARANCE_GENERIC_WATCH                        192 /**< Generic Watch. */
+#define BLE_APPEARANCE_WATCH_SPORTS_WATCH                   193 /**< Watch: Sports Watch. */
+#define BLE_APPEARANCE_GENERIC_CLOCK                        256 /**< Generic Clock. */
+#define BLE_APPEARANCE_GENERIC_DISPLAY                      320 /**< Generic Display. */
+#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL               384 /**< Generic Remote Control. */
+#define BLE_APPEARANCE_GENERIC_EYE_GLASSES                  448 /**< Generic Eye-glasses. */
+#define BLE_APPEARANCE_GENERIC_TAG                          512 /**< Generic Tag. */
+#define BLE_APPEARANCE_GENERIC_KEYRING                      576 /**< Generic Keyring. */
+#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER                 640 /**< Generic Media Player. */
+#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER              704 /**< Generic Barcode Scanner. */
+#define BLE_APPEARANCE_GENERIC_THERMOMETER                  768 /**< Generic Thermometer. */
+#define BLE_APPEARANCE_THERMOMETER_EAR                      769 /**< Thermometer: Ear. */
+#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR            832 /**< Generic Heart rate Sensor. */
+#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT    833 /**< Heart Rate Sensor: Heart Rate Belt. */
+#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE               896 /**< Generic Blood Pressure. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM                   897 /**< Blood Pressure: Arm. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST                 898 /**< Blood Pressure: Wrist. */
+#define BLE_APPEARANCE_GENERIC_HID                          960 /**< Human Interface Device (HID). */
+#define BLE_APPEARANCE_HID_KEYBOARD                         961 /**< Keyboard (HID Subtype). */
+#define BLE_APPEARANCE_HID_MOUSE                            962 /**< Mouse (HID Subtype). */
+#define BLE_APPEARANCE_HID_JOYSTICK                         963 /**< Joystick (HID Subtype). */
+#define BLE_APPEARANCE_HID_GAMEPAD                          964 /**< Gamepad (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE                 965 /**< Digitizer Tablet (HID Subtype). */
+#define BLE_APPEARANCE_HID_CARD_READER                      966 /**< Card Reader (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITAL_PEN                      967 /**< Digital Pen (HID Subtype). */
+#define BLE_APPEARANCE_HID_BARCODE                          968 /**< Barcode Scanner (HID Subtype). */
+#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER               1024 /**< Generic Glucose Meter. */
+#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR      1088 /**< Generic Running Walking Sensor. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE      1089 /**< Running Walking Sensor: In-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE      1090 /**< Running Walking Sensor: On-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP       1091 /**< Running Walking Sensor: On-Hip. */
+#define BLE_APPEARANCE_GENERIC_CYCLING                     1152 /**< Generic Cycling. */
+#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER            1153 /**< Cycling: Cycling Computer. */
+#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR                1154 /**< Cycling: Speed Sensor. */
+#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR              1155 /**< Cycling: Cadence Sensor. */
+#define BLE_APPEARANCE_CYCLING_POWER_SENSOR                1156 /**< Cycling: Power Sensor. */
+#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR        1157 /**< Cycling: Speed and Cadence Sensor. */
+#define BLE_APPEARANCE_GENERIC_PULSE_OXIMETER              3136 /**< Generic Pulse Oximeter. */
+#define BLE_APPEARANCE_PULSE_OXIMETER_FINGERTIP            3137 /**< Fingertip (Pulse Oximeter subtype). */
+#define BLE_APPEARANCE_PULSE_OXIMETER_WRIST_WORN           3138 /**< Wrist Worn(Pulse Oximeter subtype). */
+#define BLE_APPEARANCE_GENERIC_WEIGHT_SCALE                3200 /**< Generic Weight Scale. */
+#define BLE_APPEARANCE_GENERIC_OUTDOOR_SPORTS_ACT          5184 /**< Generic Outdoor Sports Activity. */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_DISP         5185 /**< Location Display Device (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_DISP 5186 /**< Location and Navigation Display Device (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD          5187 /**< Location Pod (Outdoor Sports Activity subtype). */
+#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD  5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */
+/** @} */
+
+/** @brief Set .type and .uuid fields of ble_uuid_struct to specified UUID value. */
+#define BLE_UUID_BLE_ASSIGN(instance, value) do {\
+            instance.type = BLE_UUID_TYPE_BLE; \
+            instance.uuid = value;} while(0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */
+#define BLE_UUID_COPY_PTR(dst, src) do {\
+            (dst)->type = (src)->type; \
+            (dst)->uuid = (src)->uuid;} while(0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */
+#define BLE_UUID_COPY_INST(dst, src) do {\
+            (dst).type = (src).type; \
+            (dst).uuid = (src).uuid;} while(0)
+
+/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_EQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid))
+
+/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid))
+
+/** @} */
+
+/** @addtogroup BLE_TYPES_STRUCTURES Structures
+ * @{ */
+
+/** @brief 128 bit UUID values. */
+typedef struct
+{
+  uint8_t uuid128[16]; /**< Little-Endian UUID bytes. */
+} ble_uuid128_t;
+
+/** @brief  Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */
+typedef struct
+{
+  uint16_t    uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */
+  uint8_t     type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is @ref BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */
+} ble_uuid_t;
+
+/**@brief Data structure. */
+typedef struct
+{
+  uint8_t     *p_data;  /**< Pointer to the data buffer provided to/from the application. */
+  uint16_t     len;     /**< Length of the data buffer, in bytes. */
+} ble_data_t;
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* BLE_TYPES_H__ */
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf52/nrf_mbr.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf52/nrf_mbr.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf52/nrf_mbr.h
@@ -0,0 +1,241 @@
+/*
+ * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @defgroup nrf_mbr_api Master Boot Record API
+  @{
+
+  @brief APIs for updating SoftDevice and BootLoader
+
+*/
+
+#ifndef NRF_MBR_H__
+#define NRF_MBR_H__
+
+#include "nrf_svc.h"
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup NRF_MBR_DEFINES Defines
+ * @{ */
+
+/**@brief MBR SVC Base number. */
+#define MBR_SVC_BASE            (0x18)
+
+/**@brief Page size in words. */
+#define MBR_PAGE_SIZE_IN_WORDS  (1024)
+
+/** @brief The size that must be reserved for the MBR when a SoftDevice is written to flash.
+This is the offset where the first byte of the SoftDevice hex file is written.*/
+#define MBR_SIZE                (0x1000)
+
+/** @} */
+
+/** @addtogroup NRF_MBR_ENUMS Enumerations
+ * @{ */
+
+/**@brief nRF Master Boot Record API SVC numbers. */
+enum NRF_MBR_SVCS
+{
+  SD_MBR_COMMAND = MBR_SVC_BASE, /**< ::sd_mbr_command */
+};
+
+/**@brief Possible values for ::sd_mbr_command_t.command */
+enum NRF_MBR_COMMANDS
+{
+  SD_MBR_COMMAND_COPY_BL,                 /**< Copy a new BootLoader. @see ::sd_mbr_command_copy_bl_t*/
+  SD_MBR_COMMAND_COPY_SD,                 /**< Copy a new SoftDevice. @see ::sd_mbr_command_copy_sd_t*/
+  SD_MBR_COMMAND_INIT_SD,                 /**< Initialize forwarding interrupts to SD, and run reset function in SD. Does not require any parameters in ::sd_mbr_command_t params.*/
+  SD_MBR_COMMAND_COMPARE,                 /**< This command works like memcmp. @see ::sd_mbr_command_compare_t*/
+  SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET,   /**< Change the address the MBR starts after a reset. @see ::sd_mbr_command_vector_table_base_set_t*/
+  SD_MBR_COMMAND_RESERVED,
+  SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET, /**< Start forwarding all interrupts to this address. @see ::sd_mbr_command_irq_forward_address_set_t*/
+};
+
+/** @} */
+
+/** @addtogroup NRF_MBR_TYPES Types
+ * @{ */
+
+/**@brief This command copies part of a new SoftDevice
+ *
+ * The destination area is erased before copying.
+ * If dst is in the middle of a flash page, that whole flash page will be erased.
+ * If (dst+len) is in the middle of a flash page, that whole flash page will be erased.
+ *
+ * The user of this function is responsible for setting the BPROT registers.
+ *
+ * @retval ::NRF_SUCCESS indicates that the contents of the memory blocks where copied correctly.
+ * @retval ::NRF_ERROR_INTERNAL indicates that the contents of the memory blocks where not verified correctly after copying.
+ */
+typedef struct
+{
+  uint32_t *src;  /**< Pointer to the source of data to be copied.*/
+  uint32_t *dst;  /**< Pointer to the destination where the content is to be copied.*/
+  uint32_t len;   /**< Number of 32 bit words to copy. Must be a multiple of @ref MBR_PAGE_SIZE_IN_WORDS words.*/
+} sd_mbr_command_copy_sd_t;
+
+
+/**@brief This command works like memcmp, but takes the length in words.
+ *
+ * @retval ::NRF_SUCCESS indicates that the contents of both memory blocks are equal.
+ * @retval ::NRF_ERROR_NULL indicates that the contents of the memory blocks are not equal.
+ */
+typedef struct
+{
+  uint32_t *ptr1; /**< Pointer to block of memory. */
+  uint32_t *ptr2; /**< Pointer to block of memory. */
+  uint32_t len;   /**< Number of 32 bit words to compare.*/
+} sd_mbr_command_compare_t;
+
+
+/**@brief This command copies a new BootLoader.
+ *
+ * With this command, destination of BootLoader is always the address written in
+ * NRF_UICR->BOOTADDR.
+ *
+ * Destination is erased by this function.
+ * If (destination+bl_len) is in the middle of a flash page, that whole flash page will be erased.
+ *
+ * This function will use PROTENSET to protect the flash that is not intended to be written.
+ *
+ * On success, this function will not return. It will start the new BootLoader from reset-vector as normal.
+ *
+ * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
+ * @retval ::NRF_ERROR_FORBIDDEN if NRF_UICR->BOOTADDR is not set.
+ * @retval ::NRF_ERROR_INVALID_LENGTH if parameters attempts to read or write outside flash area.
+ * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info)
+ */
+typedef struct
+{
+  uint32_t *bl_src;  /**< Pointer to the source of the Bootloader to be be copied.*/
+  uint32_t bl_len;   /**< Number of 32 bit words to copy for BootLoader. */
+} sd_mbr_command_copy_bl_t;
+
+/**@brief Change the address the MBR starts after a reset
+ *
+ * Once this function has been called, this address is where the MBR will start to forward
+ * interrupts to after a reset.
+ *
+ * To restore default forwarding this function should be called with @ref address set to 0. The
+ * MBR will then start forwarding interrupts to the address in NFR_UICR->BOOTADDR or to the
+ * SoftDevice if the BOOTADDR is not set.
+ *
+ * On success, this function will not return. It will reset the device.
+ *
+ * @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
+ * @retval ::NRF_ERROR_INVALID_ADDR if parameter address is outside of the flash size.
+ * @retval ::NRF_ERROR_NO_MEM if no parameter page is provided (see SoftDevice Specification for more info)
+ */
+typedef struct
+{
+  uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/
+} sd_mbr_command_vector_table_base_set_t;
+
+/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the MBR
+ *
+ * Unlike sd_mbr_command_vector_table_base_set_t, this function does not reset, and it does not
+ * change where the MBR starts after reset.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+typedef struct
+{
+  uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/
+} sd_mbr_command_irq_forward_address_set_t;
+
+/**@brief Input structure containing data used when calling ::sd_mbr_command
+ *
+ * Depending on what command value that is set, the corresponding params value type must also be
+ * set. See @ref NRF_MBR_COMMANDS for command types and corresponding params value type. If command
+ * @ref SD_MBR_COMMAND_INIT_SD is set, it is not necessary to set any values under params.
+ */
+typedef struct
+{
+  uint32_t command;  /**< Type of command to be issued. See @ref NRF_MBR_COMMANDS. */
+  union
+  {
+    sd_mbr_command_copy_sd_t copy_sd;  /**< Parameters for copy SoftDevice.*/
+    sd_mbr_command_compare_t compare;  /**< Parameters for verify.*/
+    sd_mbr_command_copy_bl_t copy_bl;  /**< Parameters for copy BootLoader. Requires parameter page. */
+    sd_mbr_command_vector_table_base_set_t base_set; /**< Parameters for vector table base set. Requires parameter page.*/
+    sd_mbr_command_irq_forward_address_set_t irq_forward_address_set; /**< Parameters for irq forward address set*/
+  } params; /**< Command parameters. */
+} sd_mbr_command_t;
+
+/** @} */
+
+/** @addtogroup NRF_MBR_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Issue Master Boot Record commands
+ *
+ * Commands used when updating a SoftDevice and bootloader.
+ *
+ * The @ref SD_MBR_COMMAND_COPY_BL and @ref SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET requires
+ * parameters to be retained by the MBR when resetting the IC. This is done in a separate flash
+ * page provided by the application. The UICR register UICR.NRFFW[1] must be set to an address
+ * corresponding to a page in the application flash space. This page will be cleared by the MBR and
+ * used to store the command before reset. When the UICR.NRFFW[1] field is set the page it refers
+ * to must not be used by the application. If the UICR.NRFFW[1] is set to 0xFFFFFFFF (the default)
+ * MBR commands which use flash will be unavailable and return @ref NRF_ERROR_NO_MEM.
+ *
+ * @param[in]  param Pointer to a struct describing the command.
+ *
+ * @note For return values, see ::sd_mbr_command_copy_sd_t, ::sd_mbr_command_copy_bl_t,
+ *       ::sd_mbr_command_compare_t, ::sd_mbr_command_vector_table_base_set_t,
+ *       ::sd_mbr_command_irq_forward_address_set_t
+ *
+ * @retval ::NRF_ERROR_NO_MEM if UICR.NRFFW[1] is not set (i.e. is 0xFFFFFFFF).
+ * @retval ::NRF_ERROR_INVALID_PARAM if an invalid command is given.
+*/
+SVCALL(SD_MBR_COMMAND, uint32_t, sd_mbr_command(sd_mbr_command_t* param));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_MBR_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+  @defgroup nrf_error SoftDevice Global Error Codes
+  @{
+
+  @brief Global Error definitions
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_H__
+#define NRF_ERROR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions
+ * @{ */
+#define NRF_ERROR_BASE_NUM      (0x0)       ///< Global error base
+#define NRF_ERROR_SDM_BASE_NUM  (0x1000)    ///< SDM error base
+#define NRF_ERROR_SOC_BASE_NUM  (0x2000)    ///< SoC error base
+#define NRF_ERROR_STK_BASE_NUM  (0x3000)    ///< STK error base
+/** @} */
+
+#define NRF_SUCCESS                           (NRF_ERROR_BASE_NUM + 0)  ///< Successful command
+#define NRF_ERROR_SVC_HANDLER_MISSING         (NRF_ERROR_BASE_NUM + 1)  ///< SVC handler is missing
+#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED      (NRF_ERROR_BASE_NUM + 2)  ///< SoftDevice has not been enabled
+#define NRF_ERROR_INTERNAL                    (NRF_ERROR_BASE_NUM + 3)  ///< Internal Error
+#define NRF_ERROR_NO_MEM                      (NRF_ERROR_BASE_NUM + 4)  ///< No Memory for operation
+#define NRF_ERROR_NOT_FOUND                   (NRF_ERROR_BASE_NUM + 5)  ///< Not found
+#define NRF_ERROR_NOT_SUPPORTED               (NRF_ERROR_BASE_NUM + 6)  ///< Not supported
+#define NRF_ERROR_INVALID_PARAM               (NRF_ERROR_BASE_NUM + 7)  ///< Invalid Parameter
+#define NRF_ERROR_INVALID_STATE               (NRF_ERROR_BASE_NUM + 8)  ///< Invalid state, operation disallowed in this state
+#define NRF_ERROR_INVALID_LENGTH              (NRF_ERROR_BASE_NUM + 9)  ///< Invalid Length
+#define NRF_ERROR_INVALID_FLAGS               (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags
+#define NRF_ERROR_INVALID_DATA                (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data
+#define NRF_ERROR_DATA_SIZE                   (NRF_ERROR_BASE_NUM + 12) ///< Invalid Data size
+#define NRF_ERROR_TIMEOUT                     (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out
+#define NRF_ERROR_NULL                        (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer
+#define NRF_ERROR_FORBIDDEN                   (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation
+#define NRF_ERROR_INVALID_ADDR                (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address
+#define NRF_ERROR_BUSY                        (NRF_ERROR_BASE_NUM + 17) ///< Busy
+#define NRF_ERROR_CONN_COUNT                  (NRF_ERROR_BASE_NUM + 18) ///< Maximum connection count exceeded.
+#define NRF_ERROR_RESOURCES                   (NRF_ERROR_BASE_NUM + 19) ///< Not enough resources for operation
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_sdm.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_sdm.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_sdm.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+  @addtogroup nrf_sdm_api
+  @{
+  @defgroup nrf_sdm_error SoftDevice Manager Error Codes
+  @{
+
+  @brief Error definitions for the SDM API
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SDM_H__
+#define NRF_ERROR_SDM_H__
+
+#include "nrf_error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN              (NRF_ERROR_SDM_BASE_NUM + 0)  ///< Unknown LFCLK source.
+#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1)  ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts).
+#define NRF_ERROR_SDM_INCORRECT_CLENR0                  (NRF_ERROR_SDM_BASE_NUM + 2)  ///< Incorrect CLENR0 (can be caused by erroneous SoftDevice flashing).
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_SDM_H__
+
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_soc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_soc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_error_soc.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @addtogroup nrf_soc_api
+  @{
+  @defgroup nrf_soc_error SoC Library Error Codes
+  @{
+
+  @brief Error definitions for the SoC library
+
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SOC_H__
+#define NRF_ERROR_SOC_H__
+
+#include "nrf_error.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Mutex Errors */
+#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN                 (NRF_ERROR_SOC_BASE_NUM + 0)  ///< Mutex already taken
+
+/* NVIC errors */
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE        (NRF_ERROR_SOC_BASE_NUM + 1)  ///< NVIC interrupt not available
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2)  ///< NVIC interrupt priority not allowed
+#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN              (NRF_ERROR_SOC_BASE_NUM + 3)  ///< NVIC should not return
+
+/* Power errors */
+#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN                  (NRF_ERROR_SOC_BASE_NUM + 4)  ///< Power mode unknown
+#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN         (NRF_ERROR_SOC_BASE_NUM + 5)  ///< Power POF threshold unknown
+#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN         (NRF_ERROR_SOC_BASE_NUM + 6)  ///< Power off should not return
+
+/* Rand errors */
+#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES              (NRF_ERROR_SOC_BASE_NUM + 7)  ///< RAND not enough values
+
+/* PPI errors */
+#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL                 (NRF_ERROR_SOC_BASE_NUM + 8)  ///< Invalid PPI Channel
+#define NRF_ERROR_SOC_PPI_INVALID_GROUP                   (NRF_ERROR_SOC_BASE_NUM + 9)  ///< Invalid PPI Group
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_ERROR_SOC_H__
+/**
+  @}
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_nvic.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_nvic.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_nvic.h
@@ -0,0 +1,486 @@
+/*
+ * Copyright (c) 2016 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @defgroup nrf_nvic_api SoftDevice NVIC API
+ * @{
+ *
+ * @note In order to use this module, the following code has to be added to a .c file:
+ *     \code
+ *     nrf_nvic_state_t nrf_nvic_state = {0};
+ *     \endcode
+ *
+ * @note Definitions and declarations starting with __ (double underscore) in this header file are
+ * not intended for direct use by the application.
+ *
+ * @brief APIs for the accessing NVIC when using a SoftDevice.
+ *
+ */
+
+#ifndef NRF_NVIC_H__
+#define NRF_NVIC_H__
+
+#include <stdint.h>
+#include "nrf.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "nrf_error_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup NRF_NVIC_DEFINES Defines
+ * @{ */
+
+/**@defgroup NRF_NVIC_ISER_DEFINES SoftDevice NVIC internal definitions
+ * @{ */
+
+#define __NRF_NVIC_NVMC_IRQn (30) /**< The peripheral ID of the NVMC. IRQ numbers are used to identify peripherals, but the NVMC doesn't have an IRQ number in the MDK. */
+
+#define __NRF_NVIC_ISER_COUNT (2) /**< The number of ISER/ICER registers in the NVIC that are used. */
+
+/**@brief Interrupts used by the SoftDevice, with IRQn in the range 0-31. */
+#define __NRF_NVIC_SD_IRQS_0 ((uint32_t)( \
+      (1U << POWER_CLOCK_IRQn) \
+    | (1U << RADIO_IRQn) \
+    | (1U << RTC0_IRQn) \
+    | (1U << TIMER0_IRQn) \
+    | (1U << RNG_IRQn) \
+    | (1U << ECB_IRQn) \
+    | (1U << CCM_AAR_IRQn) \
+    | (1U << TEMP_IRQn) \
+    | (1U << __NRF_NVIC_NVMC_IRQn) \
+    | (1U << (uint32_t)SWI5_IRQn) \
+  ))
+
+/**@brief Interrupts used by the SoftDevice, with IRQn in the range 32-63. */
+#define __NRF_NVIC_SD_IRQS_1 ((uint32_t)0)
+
+/**@brief Interrupts available for to application, with IRQn in the range 0-31. */
+#define __NRF_NVIC_APP_IRQS_0 (~__NRF_NVIC_SD_IRQS_0)
+
+/**@brief Interrupts available for to application, with IRQn in the range 32-63. */
+#define __NRF_NVIC_APP_IRQS_1 (~__NRF_NVIC_SD_IRQS_1)
+
+/**@} */
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_VARIABLES Variables
+ * @{ */
+
+/**@brief Type representing the state struct for the SoftDevice NVIC module. */
+typedef struct
+{
+  uint32_t volatile __irq_masks[__NRF_NVIC_ISER_COUNT]; /**< IRQs enabled by the application in the NVIC. */
+  uint32_t volatile __cr_flag;                          /**< Non-zero if already in a critical region */
+} nrf_nvic_state_t;
+
+/**@brief Variable keeping the state for the SoftDevice NVIC module. This must be declared in an
+ * application source file. */
+extern nrf_nvic_state_t nrf_nvic_state;
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_INTERNAL_FUNCTIONS SoftDevice NVIC internal functions
+ * @{ */
+
+/**@brief Disables IRQ interrupts globally, including the SoftDevice's interrupts.
+ *
+ * @retval  The value of PRIMASK prior to disabling the interrupts.
+ */
+__STATIC_INLINE int __sd_nvic_irq_disable(void);
+
+/**@brief Enables IRQ interrupts globally, including the SoftDevice's interrupts.
+ */
+__STATIC_INLINE void __sd_nvic_irq_enable(void);
+
+/**@brief Checks if IRQn is available to application
+ * @param[in]  IRQn  IRQ to check
+ *
+ * @retval  1 (true) if the IRQ to check is available to the application
+ */
+__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn);
+
+/**@brief Checks if priority is available to application
+ * @param[in]  priority  priority to check
+ *
+ * @retval  1 (true) if the priority to check is available to the application
+ */
+__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority);
+
+/**@} */
+
+/**@addtogroup NRF_NVIC_FUNCTIONS SoftDevice NVIC public functions
+ * @{ */
+
+/**@brief Enable External Interrupt.
+ * @note Corresponds to NVIC_EnableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was enabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn);
+
+/**@brief  Disable External Interrupt.
+ * @note Corresponds to NVIC_DisableIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was disabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn);
+
+/**@brief  Get Pending Interrupt.
+ * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]   IRQn          See the NVIC_GetPendingIRQ documentation in CMSIS.
+ * @param[out]  p_pending_irq Return value from NVIC_GetPendingIRQ.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq);
+
+/**@brief  Set Pending Interrupt.
+ * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is set pending.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn);
+
+/**@brief  Clear Pending Interrupt.
+ * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn);
+
+/**@brief Set Interrupt Priority.
+ * @note Corresponds to NVIC_SetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ * @pre Priority is valid and not reserved by the stack.
+ *
+ * @param[in] IRQn      See the NVIC_SetPriority documentation in CMSIS.
+ * @param[in] priority  A valid IRQ priority for use by the application.
+ *
+ * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority);
+
+/**@brief Get Interrupt Priority.
+ * @note Corresponds to NVIC_GetPriority in CMSIS.
+ *
+ * @pre IRQn is valid and not reserved by the stack.
+ *
+ * @param[in]  IRQn         See the NVIC_GetPriority documentation in CMSIS.
+ * @param[out] p_priority   Return value from NVIC_GetPriority.
+ *
+ * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application.
+ */
+__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority);
+
+/**@brief System Reset.
+ * @note Corresponds to NVIC_SystemReset in CMSIS.
+ *
+ * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
+ */
+__STATIC_INLINE uint32_t sd_nvic_SystemReset(void);
+
+/**@brief Enter critical region.
+ *
+ * @post Application interrupts will be disabled.
+ * @note sd_nvic_critical_region_enter() and ::sd_nvic_critical_region_exit() must be called in matching pairs inside each
+ * execution context
+ * @sa sd_nvic_critical_region_exit
+ *
+ * @param[out] p_is_nested_critical_region If 1, the application is now in a nested critical region.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region);
+
+/**@brief Exit critical region.
+ *
+ * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
+ * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called.
+ *
+ * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region);
+
+/**@} */
+
+#ifndef SUPPRESS_INLINE_IMPLEMENTATION
+
+__STATIC_INLINE int __sd_nvic_irq_disable(void)
+{
+  int pm = __get_PRIMASK();
+  __disable_irq();
+  return pm;
+}
+
+__STATIC_INLINE void __sd_nvic_irq_enable(void)
+{
+  __enable_irq();
+}
+
+__STATIC_INLINE uint32_t __sd_nvic_app_accessible_irq(IRQn_Type IRQn)
+{
+  if (IRQn < 32)
+  {
+    return ((1UL<<IRQn) & __NRF_NVIC_APP_IRQS_0) != 0;
+  }
+  else if (IRQn < 64)
+  {
+    return ((1UL<<(IRQn-32)) & __NRF_NVIC_APP_IRQS_1) != 0;
+  }
+  else
+  {
+    return 1;
+  }
+}
+
+__STATIC_INLINE uint32_t __sd_nvic_is_app_accessible_priority(uint32_t priority)
+{
+  if(priority >= (1 << __NVIC_PRIO_BITS))
+  {
+    return 0;
+  }
+  if(   priority == 0
+     || priority == 1
+     || priority == 4
+     )
+  {
+    return 0;
+  }
+  return 1;
+}
+
+
+__STATIC_INLINE uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+  if (!__sd_nvic_is_app_accessible_priority(NVIC_GetPriority(IRQn)))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] |= (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F));
+  }
+  else
+  {
+    NVIC_EnableIRQ(IRQn);
+  }
+  return NRF_SUCCESS;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__irq_masks[(uint32_t)((int32_t)IRQn) >> 5] &= ~(1UL << ((uint32_t)(IRQn) & 0x1F));
+  }
+  else
+  {
+    NVIC_DisableIRQ(IRQn);
+  }
+
+  return NRF_SUCCESS;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_pending_irq = NVIC_GetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_SetPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    NVIC_ClearPendingIRQ(IRQn);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+  if (!__sd_nvic_app_accessible_irq(IRQn))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+
+  if (!__sd_nvic_is_app_accessible_priority(priority))
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED;
+  }
+
+  NVIC_SetPriority(IRQn, (uint32_t)priority);
+  return NRF_SUCCESS;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority)
+{
+  if (__sd_nvic_app_accessible_irq(IRQn))
+  {
+    *p_priority = (NVIC_GetPriority(IRQn) & 0xFF);
+    return NRF_SUCCESS;
+  }
+  else
+  {
+    return NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE;
+  }
+}
+
+__STATIC_INLINE uint32_t sd_nvic_SystemReset(void)
+{
+  NVIC_SystemReset();
+  return NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region)
+{
+  int was_masked = __sd_nvic_irq_disable();
+  if (!nrf_nvic_state.__cr_flag)
+  {
+    nrf_nvic_state.__cr_flag = 1;
+    nrf_nvic_state.__irq_masks[0] = ( NVIC->ICER[0] & __NRF_NVIC_APP_IRQS_0 );
+    NVIC->ICER[0] = __NRF_NVIC_APP_IRQS_0;
+    nrf_nvic_state.__irq_masks[1] = ( NVIC->ICER[1] & __NRF_NVIC_APP_IRQS_1 );
+    NVIC->ICER[1] = __NRF_NVIC_APP_IRQS_1;
+    *p_is_nested_critical_region = 0;
+  }
+  else
+  {
+    *p_is_nested_critical_region = 1;
+  }
+  if (!was_masked)
+  {
+    __sd_nvic_irq_enable();
+  }
+  return NRF_SUCCESS;
+}
+
+__STATIC_INLINE uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region)
+{
+  if (nrf_nvic_state.__cr_flag && (is_nested_critical_region == 0))
+  {
+    int was_masked = __sd_nvic_irq_disable();
+    NVIC->ISER[0] = nrf_nvic_state.__irq_masks[0];
+    NVIC->ISER[1] = nrf_nvic_state.__irq_masks[1];
+    nrf_nvic_state.__cr_flag = 0;
+    if (!was_masked)
+    {
+      __sd_nvic_irq_enable();
+    }
+  }
+
+  return NRF_SUCCESS;
+}
+
+#endif /* SUPPRESS_INLINE_IMPLEMENTATION */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // NRF_NVIC_H__
+
+/**@} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sd_def.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sd_def.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sd_def.h
@@ -0,0 +1,28 @@
+/* Copyright (c) 2015 - 2018 Nordic Semiconductor ASA. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor ASA.
+ * The use, copying, transfer or disclosure of such information is prohibited except by
+ * express written agreement with Nordic Semiconductor ASA.
+ *
+ */
+
+#ifndef NRF_SD_DEF_H__
+#define NRF_SD_DEF_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SD_PPI_CHANNELS_USED            0xFFFE0000uL /**< PPI channels utilized by SotfDevice (not available to the application). */
+#define SD_PPI_GROUPS_USED              0x0000000CuL /**< PPI groups utilized by SoftDevice (not available to the application). */
+#define SD_TIMERS_USED                  0x00000001uL /**< Timers used by SoftDevice. */
+#define SD_SWI_USED                     0x0000003CuL /**< Software interrupts used by SoftDevice */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NRF_SD_DEF_H__ */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sdm.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sdm.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_sdm.h
@@ -0,0 +1,357 @@
+/*
+ * Copyright (c) 2015 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+  @defgroup nrf_sdm_api SoftDevice Manager API
+  @{
+
+  @brief APIs for SoftDevice management.
+
+*/
+
+#ifndef NRF_SDM_H__
+#define NRF_SDM_H__
+
+#include <stdint.h>
+#include "nrf.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "nrf_error_sdm.h"
+#include "nrf_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @addtogroup NRF_SDM_DEFINES Defines
+ * @{ */
+#ifdef NRFSOC_DOXYGEN
+/// Declared in nrf_mbr.h
+#define MBR_SIZE 0
+#warning test
+#endif
+
+/** @brief The major version for the SoftDevice binary distributed with this header file. */
+#define SD_MAJOR_VERSION  (5)
+
+/** @brief The minor version for the SoftDevice binary distributed with this header file. */
+#define SD_MINOR_VERSION  (1)
+
+/** @brief The bugfix version for the SoftDevice binary distributed with this header file. */
+#define SD_BUGFIX_VERSION (0)
+
+/** @brief The full version number for the SoftDevice binary this header file was distributed
+ *         with, as a decimal number in the form Mmmmbbb, where:
+ *           - M is major version (one or more digits)
+ *           - mmm is minor version (three digits)
+ *           - bbb is bugfix version (three digits). */
+#define SD_VERSION (SD_MAJOR_VERSION * 1000000 + SD_MINOR_VERSION * 1000 + SD_BUGFIX_VERSION)
+
+/** @brief SoftDevice Manager SVC Base number. */
+#define SDM_SVC_BASE 0x10
+
+/** @brief SoftDevice unique string size in bytes. */
+#define SD_UNIQUE_STR_SIZE 20
+
+/** @brief Invalid info field. Returned when an info field does not exist. */
+#define SDM_INFO_FIELD_INVALID (0)
+
+/** @brief Defines the SoftDevice Information Structure location (address) as an offset from
+the start of the SoftDevice (without MBR)*/
+#define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000)
+
+/** @brief Defines the absolute SoftDevice Information Structure location (address) when the
+ *         SoftDevice is installed just above the MBR (the usual case). */
+#define SOFTDEVICE_INFO_STRUCT_ADDRESS (SOFTDEVICE_INFO_STRUCT_OFFSET + MBR_SIZE)
+
+/** @brief Defines the offset for the SoftDevice Information Structure size value relative to the
+ *         SoftDevice base address. The size value is of type uint8_t. */
+#define SD_INFO_STRUCT_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET)
+
+/** @brief Defines the offset for the SoftDevice size value relative to the SoftDevice base address.
+ *         The size value is of type uint32_t. */
+#define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08)
+
+/** @brief Defines the offset for FWID value relative to the SoftDevice base address. The FWID value
+ *         is of type uint16_t.  */
+#define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C)
+
+/** @brief Defines the offset for the SoftDevice ID relative to the SoftDevice base address. The ID
+ *         is of type uint32_t. */
+#define SD_ID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x10)
+
+/** @brief Defines the offset for the SoftDevice version relative to the SoftDevice base address in
+ *         the same format as @ref SD_VERSION, stored as an uint32_t. */
+#define SD_VERSION_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x14)
+
+/** @brief Defines the offset for the SoftDevice unique string relative to the SoftDevice base address.
+ *         The SD_UNIQUE_STR is stored as an array of uint8_t. The size of array is @ref SD_UNIQUE_STR_SIZE.
+ */
+#define SD_UNIQUE_STR_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x18)
+
+/** @brief Defines a macro for retrieving the actual SoftDevice Information Structure size value
+ *         from a given base address. Use @ref MBR_SIZE as the argument when the SoftDevice is
+ *         installed just above the MBR (the usual case). */
+#define SD_INFO_STRUCT_SIZE_GET(baseaddr) (*((uint8_t *) ((baseaddr) + SD_INFO_STRUCT_SIZE_OFFSET)))
+
+/** @brief Defines a macro for retrieving the actual SoftDevice size value from a given base
+ *         address. Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above
+ *         the MBR (the usual case). */
+#define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET)))
+
+/** @brief Defines a macro for retrieving the actual FWID value from a given base address. Use
+ *         @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the usual
+ *         case). */
+#define SD_FWID_GET(baseaddr) (*((uint16_t *) ((baseaddr) + SD_FWID_OFFSET)))
+
+/** @brief Defines a macro for retrieving the actual SoftDevice ID from a given base address. Use
+ *         @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR (the
+ *         usual case). */
+#define SD_ID_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_ID_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
+        ? (*((uint32_t *) ((baseaddr) + SD_ID_OFFSET))) : SDM_INFO_FIELD_INVALID)
+
+/** @brief Defines a macro for retrieving the actual SoftDevice version from a given base address.
+ *         Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR
+ *         (the usual case). */
+#define SD_VERSION_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_VERSION_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
+        ? (*((uint32_t *) ((baseaddr) + SD_VERSION_OFFSET))) : SDM_INFO_FIELD_INVALID)
+
+/** @brief Defines a macro for retrieving the address of SoftDevice unique str based on a given base address.
+ *         Use @ref MBR_SIZE as the argument when the SoftDevice is installed just above the MBR
+ *         (the usual case). */
+#define SD_UNIQUE_STR_ADDR_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_UNIQUE_STR_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
+        ? (((uint8_t *) ((baseaddr) + SD_UNIQUE_STR_OFFSET))) : SDM_INFO_FIELD_INVALID)
+
+/**@defgroup NRF_FAULT_ID_RANGES Fault ID ranges
+ * @{ */
+#define NRF_FAULT_ID_SD_RANGE_START     0x00000000            /**< SoftDevice ID range start. */
+#define NRF_FAULT_ID_APP_RANGE_START    0x00001000            /**< Application ID range start. */
+/**@} */
+
+/**@defgroup NRF_FAULT_IDS Fault ID types
+ * @{ */
+#define NRF_FAULT_ID_SD_ASSERT    (NRF_FAULT_ID_SD_RANGE_START  + 1)          /**< SoftDevice assertion. The info parameter is reserved for future used. */
+#define NRF_FAULT_ID_APP_MEMACC   (NRF_FAULT_ID_APP_RANGE_START + 1)          /**< Application invalid memory access. The info parameter will contain 0x00000000,
+                                                                                   in case of SoftDevice RAM access violation. In case of SoftDevice peripheral
+                                                                                   register violation the info parameter will contain the sub-region number of
+                                                                                   PREGION[0], on whose address range the disallowed write access caused the
+                                                                                   memory access fault. */
+/**@} */
+
+/** @} */
+
+/** @addtogroup NRF_SDM_ENUMS Enumerations
+ * @{ */
+
+/**@brief nRF SoftDevice Manager API SVC numbers. */
+enum NRF_SD_SVCS
+{
+  SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */
+  SD_SOFTDEVICE_DISABLE,               /**< ::sd_softdevice_disable */
+  SD_SOFTDEVICE_IS_ENABLED,            /**< ::sd_softdevice_is_enabled */
+  SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, /**< ::sd_softdevice_vector_table_base_set */
+  SVC_SDM_LAST                         /**< Placeholder for last SDM SVC */
+};
+
+/** @} */
+
+/** @addtogroup NRF_SDM_DEFINES Defines
+ * @{ */
+
+/**@defgroup NRF_CLOCK_LF_ACCURACY Clock accuracy
+ * @{ */
+
+#define NRF_CLOCK_LF_ACCURACY_250_PPM (0) /**< Default: 250 ppm */
+#define NRF_CLOCK_LF_ACCURACY_500_PPM (1) /**< 500 ppm */
+#define NRF_CLOCK_LF_ACCURACY_150_PPM (2) /**< 150 ppm */
+#define NRF_CLOCK_LF_ACCURACY_100_PPM (3) /**< 100 ppm */
+#define NRF_CLOCK_LF_ACCURACY_75_PPM  (4) /**< 75 ppm */
+#define NRF_CLOCK_LF_ACCURACY_50_PPM  (5) /**< 50 ppm */
+#define NRF_CLOCK_LF_ACCURACY_30_PPM  (6) /**< 30 ppm */
+#define NRF_CLOCK_LF_ACCURACY_20_PPM  (7) /**< 20 ppm */
+#define NRF_CLOCK_LF_ACCURACY_10_PPM  (8) /**< 10 ppm */
+#define NRF_CLOCK_LF_ACCURACY_5_PPM   (9) /**<  5 ppm */
+#define NRF_CLOCK_LF_ACCURACY_2_PPM  (10) /**<  2 ppm */
+#define NRF_CLOCK_LF_ACCURACY_1_PPM  (11) /**<  1 ppm */
+
+/** @} */
+
+/**@defgroup NRF_CLOCK_LF_SRC Possible LFCLK oscillator sources
+ * @{ */
+
+#define NRF_CLOCK_LF_SRC_RC      (0)                        /**< LFCLK RC oscillator. */
+#define NRF_CLOCK_LF_SRC_XTAL    (1)                        /**< LFCLK crystal oscillator. */
+#define NRF_CLOCK_LF_SRC_SYNTH   (2)                        /**< LFCLK Synthesized from HFCLK. */
+
+/** @} */
+
+/** @} */
+
+/** @addtogroup NRF_SDM_TYPES Types
+ * @{ */
+
+/**@brief Type representing LFCLK oscillator source. */
+typedef struct
+{
+  uint8_t source;         /**< LF oscillator clock source, see @ref NRF_CLOCK_LF_SRC. */
+  uint8_t rc_ctiv;        /**< Only for ::NRF_CLOCK_LF_SRC_RC: Calibration timer interval in 1/4 second
+                               units (nRF52: 1-32).
+                               @note To avoid excessive clock drift, 0.5 degrees Celsius is the
+                                     maximum temperature change allowed in one calibration timer
+                                     interval. The interval should be selected to ensure this.
+
+                                  @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC.  */
+  uint8_t rc_temp_ctiv;   /**<  Only for ::NRF_CLOCK_LF_SRC_RC: How often (in number of calibration
+                                intervals) the RC oscillator shall be calibrated if the temperature
+                                hasn't changed.
+                                     0: Always calibrate even if the temperature hasn't changed.
+                                     1: Only calibrate if the temperature has changed (legacy - nRF51 only).
+                                     2-33: Check the temperature and only calibrate if it has changed,
+                                           however calibration will take place every rc_temp_ctiv
+                                           intervals in any case.
+
+                                @note Must be 0 if source is not ::NRF_CLOCK_LF_SRC_RC.
+
+                                @note For nRF52, the application must ensure calibration at least once
+                                      every 8 seconds to ensure +/-500 ppm clock stability. The
+                                      recommended configuration for ::NRF_CLOCK_LF_SRC_RC on nRF52 is
+                                      rc_ctiv=16 and rc_temp_ctiv=2. This will ensure calibration at
+                                      least once every 8 seconds and for temperature changes of 0.5
+                                      degrees Celsius every 4 seconds. See the Product Specification
+                                      for the nRF52 device being used for more information.*/
+  uint8_t accuracy;       /**< External clock accuracy used in the LL to compute timing
+                               windows, see @ref NRF_CLOCK_LF_ACCURACY.*/
+} nrf_clock_lf_cfg_t;
+
+/**@brief Fault Handler type.
+ *
+ * When certain unrecoverable errors occur within the application or SoftDevice the fault handler will be called back.
+ * The protocol stack will be in an undefined state when this happens and the only way to recover will be to
+ * perform a reset, using e.g. CMSIS NVIC_SystemReset().
+ * If the application returns from the fault handler the SoftDevice will call NVIC_SystemReset().
+ *
+ * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the fault callback.
+ *
+ * @param[in] id Fault identifier. See @ref NRF_FAULT_IDS.
+ * @param[in] pc The program counter of the instruction that triggered the fault.
+ * @param[in] info Optional additional information regarding the fault. Refer to each Fault identifier for details.
+ *
+ * @note When id is set to @ref NRF_FAULT_ID_APP_MEMACC, pc will contain the address of the instruction being executed at the time when
+ * the fault is detected by the CPU. The CPU program counter may have advanced up to 2 instructions (no branching) after the one that triggered the fault.
+ */
+typedef void (*nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info);
+
+/** @} */
+
+/** @addtogroup NRF_SDM_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Enables the SoftDevice and by extension the protocol stack.
+ *
+ * @note Some care must be taken if a low frequency clock source is already running when calling this function:
+ *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
+ *       clock source will be started.
+ *
+ * @note This function has no effect when returning with an error.
+ *
+ * @post If return code is ::NRF_SUCCESS
+ *       - SoC library and protocol stack APIs are made available.
+ *       - A portion of RAM will be unavailable (see relevant SDS documentation).
+ *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation).
+ *       - Interrupts will not arrive from protected peripherals or interrupts.
+ *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice.
+ *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation).
+ *       - Chosen low frequency clock source will be running.
+ *
+ * @param p_clock_lf_cfg Low frequency clock source and accuracy.
+                         If NULL the clock will be configured as an RC source with rc_ctiv = 16 and .rc_temp_ctiv = 2
+                         In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock.
+ * @param fault_handler Callback to be invoked in case of fault, cannot be NULL.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_INVALID_ADDR  Invalid or NULL pointer supplied.
+ * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated.
+ * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level.
+ * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected.
+ */
+SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
+
+
+/**@brief Disables the SoftDevice and by extension the protocol stack.
+ *
+ * Idempotent function to disable the SoftDevice.
+ *
+ * @post SoC library and protocol stack APIs are made unavailable.
+ * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest).
+ * @post All peripherals used by the SoftDevice will be reset to default values.
+ * @post All of RAM become available.
+ * @post All interrupts are forwarded to the application.
+ * @post LFCLK source chosen in ::sd_softdevice_enable will be left running.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void));
+
+/**@brief Check if the SoftDevice is enabled.
+ *
+ * @param[out]  p_softdevice_enabled If the SoftDevice is enabled: 1 else 0.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled));
+
+/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the SoftDevice
+ *
+ * This function is only intended to be called when a bootloader is enabled.
+ *
+ * @param[in] address The base address of the interrupt vector table for forwarded interrupts.
+
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, uint32_t, sd_softdevice_vector_table_base_set(uint32_t address));
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_SDM_H__
+
+/**
+  @}
+*/
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_soc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_soc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_soc.h
@@ -0,0 +1,934 @@
+/*
+ * Copyright (c) 2015 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @defgroup nrf_soc_api SoC Library API
+ * @{
+ *
+ * @brief APIs for the SoC library.
+ *
+ */
+
+#ifndef NRF_SOC_H__
+#define NRF_SOC_H__
+
+#include <stdint.h>
+#include "nrf.h"
+#include "nrf_svc.h"
+#include "nrf_error.h"
+#include "nrf_error_soc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**@addtogroup NRF_SOC_DEFINES Defines
+ * @{ */
+
+/**@brief The number of the lowest SVC number reserved for the SoC library. */
+#define SOC_SVC_BASE               (0x20)                   /**< Base value for SVCs that are available when the SoftDevice is disabled. */
+#define SOC_SVC_BASE_NOT_AVAILABLE (0x2B)                   /**< Base value for SVCs that are not available when the SoftDevice is disabled. */
+
+/**@brief Guaranteed time for application to process radio inactive notification. */
+#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US  (62)
+
+/**@brief The minimum allowed timeslot extension time. */
+#define NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US (200)
+
+/**@brief The maximum processing time to handle a timeslot extension. */
+#define NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US           (17)
+
+/**@brief The latest time before the end of a timeslot the timeslot can be extended. */
+#define NRF_RADIO_MIN_EXTENSION_MARGIN_US                    (79)
+
+#define SOC_ECB_KEY_LENGTH                (16)                       /**< ECB key length. */
+#define SOC_ECB_CLEARTEXT_LENGTH          (16)                       /**< ECB cleartext length. */
+#define SOC_ECB_CIPHERTEXT_LENGTH         (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */
+
+#define SD_EVT_IRQn                       (SWI2_IRQn)        /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */
+#define SD_EVT_IRQHandler                 (SWI2_IRQHandler)  /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events.
+                                                                       The default interrupt priority for this handler is set to 4 */
+#define RADIO_NOTIFICATION_IRQn           (SWI1_IRQn)        /**< The radio notification IRQ number. */
+#define RADIO_NOTIFICATION_IRQHandler     (SWI1_IRQHandler)  /**< The radio notification IRQ handler.
+                                                                       The default interrupt priority for this handler is set to 4 */
+#define NRF_RADIO_LENGTH_MIN_US           (100)               /**< The shortest allowed radio timeslot, in microseconds. */
+#define NRF_RADIO_LENGTH_MAX_US           (100000)            /**< The longest allowed radio timeslot, in microseconds. */
+
+#define NRF_RADIO_DISTANCE_MAX_US         (128000000UL - 1UL) /**< The longest timeslot distance, in microseconds, allowed for the distance parameter (see @ref nrf_radio_request_normal_t) in the request. */
+
+#define NRF_RADIO_EARLIEST_TIMEOUT_MAX_US (128000000UL - 1UL) /**< The longest timeout, in microseconds, allowed when requesting the earliest possible timeslot. */
+
+#define NRF_RADIO_START_JITTER_US         (2)                 /**< The maximum jitter in @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START relative to the requested start time. */
+
+/**@} */
+
+/**@addtogroup NRF_SOC_ENUMS Enumerations
+ * @{ */
+
+/**@brief The SVC numbers used by the SVC functions in the SoC library. */
+enum NRF_SOC_SVCS
+{
+  SD_PPI_CHANNEL_ENABLE_GET = SOC_SVC_BASE,
+  SD_PPI_CHANNEL_ENABLE_SET,
+  SD_PPI_CHANNEL_ENABLE_CLR,
+  SD_PPI_CHANNEL_ASSIGN,
+  SD_PPI_GROUP_TASK_ENABLE,
+  SD_PPI_GROUP_TASK_DISABLE,
+  SD_PPI_GROUP_ASSIGN,
+  SD_PPI_GROUP_GET,
+  SD_FLASH_PAGE_ERASE,
+  SD_FLASH_WRITE,
+  SD_FLASH_PROTECT,
+  SD_MUTEX_NEW = SOC_SVC_BASE_NOT_AVAILABLE,
+  SD_MUTEX_ACQUIRE,
+  SD_MUTEX_RELEASE,
+  SD_RAND_APPLICATION_POOL_CAPACITY_GET,
+  SD_RAND_APPLICATION_BYTES_AVAILABLE_GET,
+  SD_RAND_APPLICATION_VECTOR_GET,
+  SD_POWER_MODE_SET,
+  SD_POWER_SYSTEM_OFF,
+  SD_POWER_RESET_REASON_GET,
+  SD_POWER_RESET_REASON_CLR,
+  SD_POWER_POF_ENABLE,
+  SD_POWER_POF_THRESHOLD_SET,
+  SD_POWER_RAM_POWER_SET,
+  SD_POWER_RAM_POWER_CLR,
+  SD_POWER_RAM_POWER_GET,
+  SD_POWER_GPREGRET_SET,
+  SD_POWER_GPREGRET_CLR,
+  SD_POWER_GPREGRET_GET,
+  SD_POWER_DCDC_MODE_SET,
+  SD_APP_EVT_WAIT,
+  SD_CLOCK_HFCLK_REQUEST,
+  SD_CLOCK_HFCLK_RELEASE,
+  SD_CLOCK_HFCLK_IS_RUNNING,
+  SD_RADIO_NOTIFICATION_CFG_SET,
+  SD_ECB_BLOCK_ENCRYPT,
+  SD_ECB_BLOCKS_ENCRYPT,
+  SD_RADIO_SESSION_OPEN,
+  SD_RADIO_SESSION_CLOSE,
+  SD_RADIO_REQUEST,
+  SD_EVT_GET,
+  SD_TEMP_GET,
+  SVC_SOC_LAST
+};
+
+/**@brief Possible values of a ::nrf_mutex_t. */
+enum NRF_MUTEX_VALUES
+{
+  NRF_MUTEX_FREE,
+  NRF_MUTEX_TAKEN
+};
+
+/**@brief Power modes. */
+enum NRF_POWER_MODES
+{
+  NRF_POWER_MODE_CONSTLAT,  /**< Constant latency mode. See power management in the reference manual. */
+  NRF_POWER_MODE_LOWPWR     /**< Low power mode. See power management in the reference manual. */
+};
+
+
+/**@brief Power failure thresholds */
+enum NRF_POWER_THRESHOLDS
+{
+  NRF_POWER_THRESHOLD_V17 = 4UL, /**< 1.7 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V18,       /**< 1.8 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V19,       /**< 1.9 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V20,       /**< 2.0 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V21,       /**< 2.1 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V22,       /**< 2.2 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V23,       /**< 2.3 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V24,       /**< 2.4 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V25,       /**< 2.5 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V26,       /**< 2.6 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V27,       /**< 2.7 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V28        /**< 2.8 Volts power failure threshold. */
+};
+
+
+/**@brief DC/DC converter modes. */
+enum NRF_POWER_DCDC_MODES
+{
+  NRF_POWER_DCDC_DISABLE,          /**< The DCDC is disabled. */
+  NRF_POWER_DCDC_ENABLE            /**< The DCDC is enabled.  */
+};
+
+/**@brief Radio notification distances. */
+enum NRF_RADIO_NOTIFICATION_DISTANCES
+{
+  NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_800US,    /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_1740US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_2680US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_3620US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_4560US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_5500US    /**< The distance from the active notification to start of radio activity. */
+};
+
+
+/**@brief Radio notification types. */
+enum NRF_RADIO_NOTIFICATION_TYPES
+{
+  NRF_RADIO_NOTIFICATION_TYPE_NONE = 0,        /**< The event does not have a radio notification signal. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE,   /**< Using interrupt for notification when the radio will be enabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH,     /**< Using interrupt for notification both when the radio will be enabled and disabled. */
+};
+
+/**@brief The Radio signal callback types. */
+enum NRF_RADIO_CALLBACK_SIGNAL_TYPE
+{
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_START,             /**< This signal indicates the start of the radio timeslot. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0,            /**< This signal indicates the NRF_TIMER0 interrupt. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO,             /**< This signal indicates the NRF_RADIO interrupt. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_FAILED,     /**< This signal indicates extend action failed. */
+  NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_SUCCEEDED   /**< This signal indicates extend action succeeded. */
+};
+
+/**@brief The actions requested by the signal callback.
+ *
+ *  This code gives the SOC instructions about what action to take when the signal callback has
+ *  returned.
+ */
+enum NRF_RADIO_SIGNAL_CALLBACK_ACTION
+{
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_NONE,            /**< Return without action. */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND,          /**< Request an extension of the current
+                                                         timeslot. Maximum execution time for this action:
+                                                         @ref NRF_RADIO_MAX_EXTENSION_PROCESSING_TIME_US.
+                                                         This action must be started at least
+                                                         @ref NRF_RADIO_MIN_EXTENSION_MARGIN_US before
+                                                         the end of the timeslot. */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_END,             /**< End the current radio timeslot. */
+  NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END  /**< Request a new radio timeslot and end the current timeslot. */
+};
+
+/**@brief Radio timeslot high frequency clock source configuration. */
+enum NRF_RADIO_HFCLK_CFG
+{
+  NRF_RADIO_HFCLK_CFG_XTAL_GUARANTEED, /**< The SoftDevice will guarantee that the high frequency clock source is the
+                                           external crystal for the whole duration of the timeslot. This should be the
+                                           preferred option for events that use the radio or require high timing accuracy.
+                                           @note The SoftDevice will automatically turn on and off the external crystal,
+                                           at the beginning and end of the timeslot, respectively. The crystal may also
+                                           intentionally be left running after the timeslot, in cases where it is needed
+                                           by the SoftDevice shortly after the end of the timeslot. */
+  NRF_RADIO_HFCLK_CFG_NO_GUARANTEE    /**< This configuration allows for earlier and tighter scheduling of timeslots.
+                                           The RC oscillator may be the clock source in part or for the whole duration of the timeslot.
+                                           The RC oscillator's accuracy must therefore be taken into consideration.
+                                           @note If the application will use the radio peripheral in timeslots with this configuration,
+                                           it must make sure that the crystal is running and stable before starting the radio. */
+};
+
+/**@brief Radio timeslot priorities. */
+enum NRF_RADIO_PRIORITY
+{
+  NRF_RADIO_PRIORITY_HIGH,                          /**< High (equal priority as the normal connection priority of the SoftDevice stack(s)). */
+  NRF_RADIO_PRIORITY_NORMAL,                        /**< Normal (equal priority as the priority of secondary activities of the SoftDevice stack(s)). */
+};
+
+/**@brief Radio timeslot request type. */
+enum NRF_RADIO_REQUEST_TYPE
+{
+  NRF_RADIO_REQ_TYPE_EARLIEST,                      /**< Request radio timeslot as early as possible. This should always be used for the first request in a session. */
+  NRF_RADIO_REQ_TYPE_NORMAL                         /**< Normal radio timeslot request. */
+};
+
+/**@brief SoC Events. */
+enum NRF_SOC_EVTS
+{
+  NRF_EVT_HFCLKSTARTED,                         /**< Event indicating that the HFCLK has started. */
+  NRF_EVT_POWER_FAILURE_WARNING,                /**< Event indicating that a power failure warning has occurred. */
+  NRF_EVT_FLASH_OPERATION_SUCCESS,              /**< Event indicating that the ongoing flash operation has completed successfully. */
+  NRF_EVT_FLASH_OPERATION_ERROR,                /**< Event indicating that the ongoing flash operation has timed out with an error. */
+  NRF_EVT_RADIO_BLOCKED,                        /**< Event indicating that a radio timeslot was blocked. */
+  NRF_EVT_RADIO_CANCELED,                       /**< Event indicating that a radio timeslot was canceled by SoftDevice. */
+  NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN, /**< Event indicating that a radio timeslot signal callback handler return was invalid. */
+  NRF_EVT_RADIO_SESSION_IDLE,                   /**< Event indicating that a radio timeslot session is idle. */
+  NRF_EVT_RADIO_SESSION_CLOSED,                 /**< Event indicating that a radio timeslot session is closed. */
+  NRF_EVT_NUMBER_OF_EVTS
+};
+
+/**@} */
+
+
+/**@addtogroup NRF_SOC_STRUCTURES Structures
+ * @{ */
+
+/**@brief Represents a mutex for use with the nrf_mutex functions.
+ * @note Accessing the value directly is not safe, use the mutex functions!
+ */
+typedef volatile uint8_t nrf_mutex_t;
+
+/**@brief Parameters for a request for a timeslot as early as possible. */
+typedef struct
+{
+  uint8_t       hfclk;                              /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */
+  uint8_t       priority;                           /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */
+  uint32_t      length_us;                          /**< The radio timeslot length (in the range 100 to 100,000] microseconds). */
+  uint32_t      timeout_us;                         /**< Longest acceptable delay until the start of the requested timeslot (up to @ref NRF_RADIO_EARLIEST_TIMEOUT_MAX_US microseconds). */
+} nrf_radio_request_earliest_t;
+
+/**@brief Parameters for a normal radio timeslot request. */
+typedef struct
+{
+  uint8_t       hfclk;                              /**< High frequency clock source, see @ref NRF_RADIO_HFCLK_CFG. */
+  uint8_t       priority;                           /**< The radio timeslot priority, see @ref NRF_RADIO_PRIORITY. */
+  uint32_t      distance_us;                        /**< Distance from the start of the previous radio timeslot (up to @ref NRF_RADIO_DISTANCE_MAX_US microseconds). */
+  uint32_t      length_us;                          /**< The radio timeslot length (in the range [100..100,000] microseconds). */
+} nrf_radio_request_normal_t;
+
+/**@brief Radio timeslot request parameters. */
+typedef struct
+{
+  uint8_t                         request_type;     /**< Type of request, see @ref NRF_RADIO_REQUEST_TYPE. */
+  union
+  {
+    nrf_radio_request_earliest_t  earliest;         /**< Parameters for requesting a radio timeslot as early as possible. */
+    nrf_radio_request_normal_t    normal;           /**< Parameters for requesting a normal radio timeslot. */
+  } params;                                         /**< Parameter union. */
+} nrf_radio_request_t;
+
+/**@brief Return parameters of the radio timeslot signal callback. */
+typedef struct
+{
+  uint8_t               callback_action;            /**< The action requested by the application when returning from the signal callback, see @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION. */
+  union
+  {
+    struct
+    {
+      nrf_radio_request_t * p_next;                 /**< The request parameters for the next radio timeslot. */
+    } request;                                      /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END. */
+    struct
+    {
+      uint32_t              length_us;              /**< Requested extension of the radio timeslot duration (microseconds) (for minimum time see @ref NRF_RADIO_MINIMUM_TIMESLOT_LENGTH_EXTENSION_TIME_US). */
+    } extend;                                       /**< Additional parameters for return_code @ref NRF_RADIO_SIGNAL_CALLBACK_ACTION_EXTEND. */
+  } params;                                         /**< Parameter union. */
+} nrf_radio_signal_callback_return_param_t;
+
+/**@brief The radio timeslot signal callback type.
+ *
+ * @note In case of invalid return parameters, the radio timeslot will automatically end
+ *       immediately after returning from the signal callback and the
+ *       @ref NRF_EVT_RADIO_SIGNAL_CALLBACK_INVALID_RETURN event will be sent.
+ * @note The returned struct pointer must remain valid after the signal callback
+ *       function returns. For instance, this means that it must not point to a stack variable.
+ *
+ * @param[in] signal_type Type of signal, see @ref NRF_RADIO_CALLBACK_SIGNAL_TYPE.
+ *
+ * @return Pointer to structure containing action requested by the application.
+ */
+typedef nrf_radio_signal_callback_return_param_t * (*nrf_radio_signal_callback_t) (uint8_t signal_type);
+
+/**@brief AES ECB parameter typedefs */
+typedef uint8_t soc_ecb_key_t[SOC_ECB_KEY_LENGTH];                /**< Encryption key type. */
+typedef uint8_t soc_ecb_cleartext_t[SOC_ECB_CLEARTEXT_LENGTH];    /**< Cleartext data type. */
+typedef uint8_t soc_ecb_ciphertext_t[SOC_ECB_CIPHERTEXT_LENGTH];  /**< Ciphertext data type. */
+
+/**@brief AES ECB data structure */
+typedef struct
+{
+  soc_ecb_key_t        key;            /**< Encryption key. */
+  soc_ecb_cleartext_t  cleartext;      /**< Cleartext data. */
+  soc_ecb_ciphertext_t ciphertext;     /**< Ciphertext data. */
+} nrf_ecb_hal_data_t;
+
+/**@brief AES ECB block. Used to provide multiple blocks in a single call
+          to @ref sd_ecb_blocks_encrypt.*/
+typedef struct
+{
+  soc_ecb_key_t const *       p_key;           /**< Pointer to the Encryption key. */
+  soc_ecb_cleartext_t const * p_cleartext;     /**< Pointer to the Cleartext data. */
+  soc_ecb_ciphertext_t *      p_ciphertext;    /**< Pointer to the Ciphertext data. */
+} nrf_ecb_hal_data_block_t;
+
+/**@} */
+
+/**@addtogroup NRF_SOC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initialize a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to initialize.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex));
+
+/**@brief Attempt to acquire a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to acquire.
+ *
+ * @retval ::NRF_SUCCESS The mutex was successfully acquired.
+ * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired.
+ */
+SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex));
+
+/**@brief Release a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to release.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex));
+
+/**@brief Query the capacity of the application random pool.
+ *
+ * @param[out] p_pool_capacity The capacity of the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY_GET, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity));
+
+/**@brief Get number of random bytes available to the application.
+ *
+ * @param[out] p_bytes_available The number of bytes currently available in the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE_GET, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available));
+
+/**@brief Get random bytes from the application pool.
+ *
+ * @param[out]  p_buff  Pointer to unit8_t buffer for storing the bytes.
+ * @param[in]   length  Number of bytes to take from pool and place in p_buff.
+ *
+ * @retval ::NRF_SUCCESS The requested bytes were written to p_buff.
+ * @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available.
+*/
+SVCALL(SD_RAND_APPLICATION_VECTOR_GET, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length));
+
+/**@brief Gets the reset reason register.
+ *
+ * @param[out]  p_reset_reason  Contents of the NRF_POWER->RESETREAS register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason));
+
+/**@brief Clears the bits of the reset reason register.
+ *
+ * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk));
+
+/**@brief Sets the power mode when in CPU sleep.
+ *
+ * @param[in] power_mode The power mode to use when in CPU sleep, see @ref NRF_POWER_MODES. @sa sd_app_evt_wait
+ *
+ * @retval ::NRF_SUCCESS The power mode was set.
+ * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown.
+ */
+SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(uint8_t power_mode));
+
+/**@brief Puts the chip in System OFF mode.
+ *
+ * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN
+ */
+SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void));
+
+/**@brief Enables or disables the power-fail comparator.
+ *
+ * Enabling this will give a SoftDevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs.
+ * The event can be retrieved with sd_evt_get();
+ *
+ * @param[in] pof_enable    True if the power-fail comparator should be enabled, false if it should be disabled.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable));
+
+/**@brief Sets the power-fail threshold value.
+ *
+ * @param[in] threshold The power-fail threshold value to use, see @ref NRF_POWER_THRESHOLDS.
+ *
+ * @retval ::NRF_SUCCESS The power failure threshold was set.
+ * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown.
+ */
+SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(uint8_t threshold));
+
+/**@brief Writes the NRF_POWER->RAM[index].POWERSET register.
+ *
+ * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERSET register to write to.
+ * @param[in] ram_powerset Contains the word to write to the NRF_POWER->RAM[index].POWERSET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAM_POWER_SET, uint32_t, sd_power_ram_power_set(uint8_t index, uint32_t ram_powerset));
+
+/**@brief Writes the NRF_POWER->RAM[index].POWERCLR register.
+ *
+ * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWERCLR register to write to.
+ * @param[in] ram_powerclr Contains the word to write to the NRF_POWER->RAM[index].POWERCLR register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAM_POWER_CLR, uint32_t, sd_power_ram_power_clr(uint8_t index, uint32_t ram_powerclr));
+
+/**@brief Get contents of NRF_POWER->RAM[index].POWER register, indicates power status of RAM[index] blocks.
+ *
+ * @param[in] index Contains the index in the NRF_POWER->RAM[index].POWER register to read from.
+ * @param[out] p_ram_power Content of NRF_POWER->RAM[index].POWER register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAM_POWER_GET, uint32_t, sd_power_ram_power_get(uint8_t index, uint32_t * p_ram_power));
+
+/**@brief Set bits in the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[in] gpregret_msk Bits to be set in the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_id, uint32_t gpregret_msk));
+
+/**@brief Clear bits in the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[in] gpregret_msk Bits to be clear in the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_id, uint32_t gpregret_msk));
+
+/**@brief Get contents of the general purpose retention registers (NRF_POWER->GPREGRET*).
+ *
+ * @param[in] gpregret_id 0 for GPREGRET, 1 for GPREGRET2.
+ * @param[out] p_gpregret Contents of the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t gpregret_id, uint32_t *p_gpregret));
+
+/**@brief Sets the DCDC mode.
+ *
+ * Enable or disable the DCDC peripheral.
+ *
+ * @param[in] dcdc_mode The mode of the DCDC, see @ref NRF_POWER_DCDC_MODES.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid.
+ */
+SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(uint8_t dcdc_mode));
+
+/**@brief Request the high frequency crystal oscillator.
+ *
+ * Will start the high frequency crystal oscillator, the startup time of the crystal varies
+ * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_release
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void));
+
+/**@brief Releases the high frequency crystal oscillator.
+ *
+ * Will stop the high frequency crystal oscillator, this happens immediately.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_request
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void));
+
+/**@brief Checks if the high frequency crystal oscillator is running.
+ *
+ * @see sd_clock_hfclk_request
+ * @see sd_clock_hfclk_release
+ *
+ * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running));
+
+/**@brief Waits for an application event.
+ *
+ * An application event is either an application interrupt or a pended interrupt when the interrupt
+ * is disabled.
+ *
+ * When the application waits for an application event by calling this function, an interrupt that
+ * is enabled will be taken immediately on pending since this function will wait in thread mode,
+ * then the execution will return in the application's main thread.
+ *
+ * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M
+ * MCU's System Control Register (SCR), CMSIS_SCB. In that case, when a disabled interrupt gets
+ * pended, this function will return to the application's main thread.
+ *
+ * @note The application must ensure that the pended flag is cleared using ::sd_nvic_ClearPendingIRQ
+ *       in order to sleep using this function. This is only necessary for disabled interrupts, as
+ *       the interrupt handler will clear the pending flag automatically for enabled interrupts.
+ *
+ * @note If an application interrupt has happened since the last time sd_app_evt_wait was
+ *       called this function will return immediately and not go to sleep. This is to avoid race
+ *       conditions that can occur when a flag is updated in the interrupt handler and processed
+ *       in the main loop.
+ *
+ * @post An application interrupt has happened or a interrupt pending flag is set.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void));
+
+/**@brief Get PPI channel enable register contents.
+ *
+ * @param[out] p_channel_enable The contents of the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable));
+
+/**@brief Set PPI channel enable register.
+ *
+ * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk));
+
+/**@brief Clear PPI channel enable register.
+ *
+ * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk));
+
+/**@brief Assign endpoints to a PPI channel.
+ *
+ * @param[in] channel_num Number of the PPI channel to assign.
+ * @param[in] evt_endpoint Event endpoint of the PPI channel.
+ * @param[in] task_endpoint Task endpoint of the PPI channel.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint));
+
+/**@brief Task to enable a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num));
+
+/**@brief Task to disable a channel group.
+ *
+ * @param[in] group_num Number of the PPI group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num));
+
+/**@brief Assign PPI channels to a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ * @param[in] channel_msk Mask of the channels to assign to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk));
+
+/**@brief Gets the PPI channels of a channel group.
+ *
+ * @param[in]   group_num Number of the channel group.
+ * @param[out]  p_channel_msk Mask of the channels assigned to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk));
+
+/**@brief Configures the Radio Notification signal.
+ *
+ * @note
+ *      - The notification signal latency depends on the interrupt priority settings of SWI used
+ *        for notification signal.
+ *      - To ensure that the radio notification signal behaves in a consistent way, the radio
+ *        notifications must be configured when there is no protocol stack or other SoftDevice
+ *        activity in progress. It is recommended that the radio notification signal is
+ *        configured directly after the SoftDevice has been enabled.
+ *      - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice
+ *        will interrupt the application to do Radio Event preparation.
+ *      - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have
+ *        to shorten the connection events to have time for the Radio Notification signals.
+ *
+ * @param[in]  type      Type of notification signal, see @ref NRF_RADIO_NOTIFICATION_TYPES.
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio
+ *                       notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is
+ *                       recommended (but not required) to be used with
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE.
+ *
+ * @param[in]  distance  Distance between the notification signal and start of radio activity, see @ref NRF_RADIO_NOTIFICATION_DISTANCES.
+ *                       This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid.
+ * @retval ::NRF_ERROR_INVALID_STATE A protocol stack or other SoftDevice is running. Stop all
+ *                                   running activities and retry.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(uint8_t type, uint8_t distance));
+
+/**@brief Encrypts a block according to the specified parameters.
+ *
+ * 128-bit AES encryption.
+ *
+ * @note:
+ *    - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while
+ *      the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application
+ *      main or low interrupt level.
+ *
+ * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input
+ *                            parameters and one output parameter).
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data));
+
+/**@brief Encrypts multiple data blocks provided as an array of data block structures.
+ *
+ * @details: Performs 128-bit AES encryption on multiple data blocks
+ *
+ * @note:
+ *    - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while
+ *      the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application
+ *      main or low interrupt level.
+ *
+ * @param[in]     block_count     Count of blocks in the p_data_blocks array.
+ * @param[in,out] p_data_blocks   Pointer to the first entry in a contiguous array of
+ *                                @ref nrf_ecb_hal_data_block_t structures.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_ECB_BLOCKS_ENCRYPT, uint32_t, sd_ecb_blocks_encrypt(uint8_t block_count, nrf_ecb_hal_data_block_t * p_data_blocks));
+
+/**@brief Gets any pending events generated by the SoC API.
+ *
+ * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned.
+ *
+ * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending.
+ *
+ * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter.
+ * @retval ::NRF_ERROR_NOT_FOUND No pending events.
+ */
+SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id));
+
+/**@brief Get the temperature measured on the chip
+ *
+ * This function will block until the temperature measurement is done.
+ * It takes around 50 us from call to return.
+ *
+ * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees Celsius.
+ *
+ * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp
+ */
+SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp));
+
+/**@brief Flash Write
+*
+* Commands to write a buffer to flash
+*
+* If the SoftDevice is enabled:
+*  This call initiates the flash access command, and its completion will be communicated to the
+*  application with exactly one of the following events:
+*      - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+*      - @ref NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+*
+* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the
+ * write has been completed
+*
+* @note
+*      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+*        they will not interfere with the flash access. This means that all interrupts will be blocked
+*        for a predictable time (depending on the NVMC specification in the device's Product Specification
+*        and the command parameters).
+*      - The data in the p_src buffer should not be modified before the @ref NRF_EVT_FLASH_OPERATION_SUCCESS
+*        or the @ref NRF_EVT_FLASH_OPERATION_ERROR have been received if the SoftDevice is enabled.
+*
+*
+* @param[in]  p_dst Pointer to start of flash location to be written.
+* @param[in]  p_src Pointer to buffer with data to be written.
+* @param[in]  size  Number of 32-bit words to write. Maximum size is the number of words in one
+*                   flash page. See the device's Product Specification for details.
+*
+* @retval ::NRF_ERROR_INVALID_ADDR   Tried to write to a non existing flash address, or p_dst or p_src was unaligned.
+* @retval ::NRF_ERROR_BUSY           The previous command has not yet completed.
+* @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or higher than the maximum allowed size.
+* @retval ::NRF_ERROR_FORBIDDEN      Tried to write to or read from protected location.
+* @retval ::NRF_SUCCESS              The command was accepted.
+*/
+SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * p_dst, uint32_t const * p_src, uint32_t size));
+
+
+/**@brief Flash Erase page
+*
+* Commands to erase a flash page
+* If the SoftDevice is enabled:
+*  This call initiates the flash access command, and its completion will be communicated to the
+*  application with exactly one of the following events:
+*      - @ref NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+*      - @ref NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+*
+* If the SoftDevice is not enabled no event will be generated, and this call will return @ref NRF_SUCCESS when the
+* erase has been completed
+*
+* @note
+*      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+*        they will not interfere with the flash access. This means that all interrupts will be blocked
+*        for a predictable time (depending on the NVMC specification in the device's Product Specification
+*        and the command parameters).
+*
+*
+* @param[in]  page_number           Page number of the page to erase
+*
+* @retval ::NRF_ERROR_INTERNAL      If a new session could not be opened due to an internal error.
+* @retval ::NRF_ERROR_INVALID_ADDR  Tried to erase to a non existing flash page.
+* @retval ::NRF_ERROR_BUSY          The previous command has not yet completed.
+* @retval ::NRF_ERROR_FORBIDDEN     Tried to erase a protected page.
+* @retval ::NRF_SUCCESS             The command was accepted.
+*/
+SVCALL(SD_FLASH_PAGE_ERASE, uint32_t, sd_flash_page_erase(uint32_t page_number));
+
+
+/**@brief Flash Protection set
+ *
+ * Commands to set the flash protection configuration registers.
+   This sets the CONFIGx registers of the BPROT peripheral.
+ *
+ * @note Not all parameters are valid for all products. Some bits in each parameter may not be
+ *       valid for your product. Please refer your Product Specification for more details.
+ *
+ * @note To read the values read them directly. They are only write-protected.
+ *
+ * @param[in]  block_cfg0 Value to be written to the configuration register.
+ * @param[in]  block_cfg1 Value to be written to the configuration register.
+ * @param[in]  block_cfg2 Value to be written to the configuration register.
+ * @param[in]  block_cfg3 Value to be written to the configuration register.
+ *
+ * @retval ::NRF_ERROR_NOT_SUPPORTED Non-zero value supplied to one or more of the unsupported parameters.
+ * @retval ::NRF_ERROR_FORBIDDEN Tried to protect the flash region used by the SoftDevice.
+ * @retval ::NRF_SUCCESS Values successfully written to configuration registers.
+ */
+SVCALL(SD_FLASH_PROTECT, uint32_t, sd_flash_protect(uint32_t block_cfg0, uint32_t block_cfg1, uint32_t block_cfg2, uint32_t block_cfg3));
+
+/**@brief Opens a session for radio timeslot requests.
+ *
+ * @note Only one session can be open at a time.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) will be called when the radio timeslot
+ *       starts. From this point the NRF_RADIO and NRF_TIMER0 peripherals can be freely accessed
+ *       by the application.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_TIMER0) is called whenever the NRF_TIMER0
+ *       interrupt occurs.
+ * @note p_radio_signal_callback(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_RADIO) is called whenever the NRF_RADIO
+ *       interrupt occurs.
+ * @note p_radio_signal_callback() will be called at ARM interrupt priority level 0. This
+ *       implies that none of the sd_* API calls can be used from p_radio_signal_callback().
+ *
+ * @param[in] p_radio_signal_callback The signal callback.
+ *
+ * @retval ::NRF_ERROR_INVALID_ADDR p_radio_signal_callback is an invalid function pointer.
+ * @retval ::NRF_ERROR_BUSY If session cannot be opened.
+ * @retval ::NRF_ERROR_INTERNAL If a new session could not be opened due to an internal error.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_SESSION_OPEN, uint32_t, sd_radio_session_open(nrf_radio_signal_callback_t p_radio_signal_callback));
+
+/**@brief Closes a session for radio timeslot requests.
+ *
+ * @note Any current radio timeslot will be finished before the session is closed.
+ * @note If a radio timeslot is scheduled when the session is closed, it will be canceled.
+ * @note The application cannot consider the session closed until the @ref NRF_EVT_RADIO_SESSION_CLOSED
+ *       event is received.
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN If session not opened.
+ * @retval ::NRF_ERROR_BUSY If session is currently being closed.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_SESSION_CLOSE, uint32_t, sd_radio_session_close(void));
+
+/**@brief Requests a radio timeslot.
+ *
+ * @note The request type is determined by p_request->request_type, and can be one of @ref NRF_RADIO_REQ_TYPE_EARLIEST
+ *       and @ref NRF_RADIO_REQ_TYPE_NORMAL. The first request in a session must always be of type @ref NRF_RADIO_REQ_TYPE_EARLIEST.
+ * @note For a normal request (@ref NRF_RADIO_REQ_TYPE_NORMAL), the start time of a radio timeslot is specified by
+ *       p_request->distance_us and is given relative to the start of the previous timeslot.
+ * @note A too small p_request->distance_us will lead to a @ref NRF_EVT_RADIO_BLOCKED event.
+ * @note Timeslots scheduled too close will lead to a @ref NRF_EVT_RADIO_BLOCKED event.
+ * @note See the SoftDevice Specification for more on radio timeslot scheduling, distances and lengths.
+ * @note If an opportunity for the first radio timeslot is not found before 100 ms after the call to this
+ *       function, it is not scheduled, and instead a @ref NRF_EVT_RADIO_BLOCKED event is sent.
+ *       The application may then try to schedule the first radio timeslot again.
+ * @note Successful requests will result in nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START).
+ *       Unsuccessful requests will result in a @ref NRF_EVT_RADIO_BLOCKED event, see @ref NRF_SOC_EVTS.
+ * @note The jitter in the start time of the radio timeslots is +/- @ref NRF_RADIO_START_JITTER_US us.
+ * @note The nrf_radio_signal_callback_t(@ref NRF_RADIO_CALLBACK_SIGNAL_TYPE_START) call has a latency relative to the
+ *       specified radio timeslot start, but this does not affect the actual start time of the timeslot.
+ * @note NRF_TIMER0 is reset at the start of the radio timeslot, and is clocked at 1MHz from the high frequency
+ *       (16 MHz) clock source. If p_request->hfclk_force_xtal is true, the high frequency clock is
+ *       guaranteed to be clocked from the external crystal.
+ * @note The SoftDevice will neither access the NRF_RADIO peripheral nor the NRF_TIMER0 peripheral
+ *       during the radio timeslot.
+ *
+ * @param[in] p_request Pointer to the request parameters.
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN If session not opened or the session is not IDLE.
+ * @retval ::NRF_ERROR_INVALID_ADDR If the p_request pointer is invalid.
+ * @retval ::NRF_ERROR_INVALID_PARAM If the parameters of p_request are not valid.
+ * @retval ::NRF_SUCCESS Otherwise.
+ */
+ SVCALL(SD_RADIO_REQUEST, uint32_t, sd_radio_request(nrf_radio_request_t const * p_request));
+
+/**@} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif // NRF_SOC_H__
+
+/**@} */
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_svc.h nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_svc.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers/nrf_svc.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2012 - 2017, Nordic Semiconductor ASA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NRF_SVC__
+#define NRF_SVC__
+
+#include "stdint.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef SVCALL_AS_NORMAL_FUNCTION
+#define SVCALL(number, return_type, signature) return_type signature
+#else
+
+#ifndef SVCALL
+#if defined (__CC_ARM)
+#define SVCALL(number, return_type, signature) return_type __svc(number) signature
+#elif defined (__GNUC__)
+#ifdef __cplusplus
+#define GCC_CAST_CPP (uint16_t)
+#else
+#define GCC_CAST_CPP
+#endif
+#define SVCALL(number, return_type, signature)          \
+  _Pragma("GCC diagnostic push")                        \
+  _Pragma("GCC diagnostic ignored \"-Wreturn-type\"")   \
+  __attribute__((naked))                                \
+  __attribute__((unused))                               \
+  static return_type signature                          \
+  {                                                     \
+    __asm(                                              \
+        "svc %0\n"                                      \
+        "bx r14" : : "I" (GCC_CAST_CPP number) : "r0"   \
+    );                                                  \
+  }                                                     \
+  _Pragma("GCC diagnostic pop")
+
+#elif defined (__ICCARM__)
+#define PRAGMA(x) _Pragma(#x)
+#define SVCALL(number, return_type, signature)          \
+PRAGMA(swi_number = (number))                           \
+ __swi return_type signature;
+#else
+#define SVCALL(number, return_type, signature) return_type signature
+#endif
+#endif  // SVCALL
+
+#endif  // SVCALL_AS_NORMAL_FUNCTION
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // NRF_SVC__
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers_replacement/test.rb nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers_replacement/test.rb
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/headers_replacement/test.rb
@@ -0,0 +1,2 @@
+a = 'xxx const * const*'
+puts a.gsub('const','')
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex
@@ -0,0 +1,7843 @@
+:020000040000FA
+:1000000000040020E90800007D050000C908000088
+:1000100087050000910500009B050000000000001E
+:100020000000000000000000000000000D090000BA
+:10003000A505000000000000AF050000B9050000A4
+:10004000C3050000CD050000D7050000E105000054
+:10005000EB050000F5050000FF05000009060000A3
+:10006000130600001D0600002706000031060000F0
+:100070003B060000450600004F0600005906000040
+:10008000630600006D060000770600008106000090
+:100090008B060000950600009F060000A9060000E0
+:1000A000B3060000BD060000C7060000D106000030
+:1000B000DB060000E5060000EF060000F906000080
+:1000C000030700000D0700001707000021070000CC
+:1000D0002B070000350700003F070000490700001C
+:1000E000530700005D07000067070000710700006C
+:1000F0007B070000850700008F07000099070000BC
+:10010000A30700001FB500F003F88DE80F001FBD26
+:1001100000F0E0BB1FB56FF00100009040100390AD
+:10012000029001904FF010208069000B420900F00E
+:100130001F045DF822300120A04083434DF8223097
+:10014000684600F045F91FBDF0B54FF6FF734FF458
+:10015000B4751A466E1E11E0A94201D3344600E080
+:100160000C46091B30F8027B641E3B441A44F9D14B
+:100170009CB204EB134394B204EB12420029EBD17E
+:1001800098B200EB134002EB124140EA0140F0BD8F
+:10019000DE4992B00446D1E90001CDE91001FF2209
+:1001A0004021684600F03CFB94E80F008DE80F000A
+:1001B000684610A902E004C841F8042D8842FAD12B
+:1001C00010216846FFF7C0FF1090AA208DF8440068
+:1001D000FFF7A0FF00F0F3F84FF01024A069102201
+:1001E0006946803000F002F9A069082210A900F0E9
+:1001F000FDF800F0D8F84FF080510A6949690068AD
+:100200004A43824201D8102070470020704710B541
+:10021000D0E900214FF0805002EB8103026944696C
+:100220006243934209D84FF01022536903EB8103D4
+:100230000169406941438B4201D9092010BD5069D1
+:10024000401C01D0002010BD0F2010BD70B501680A
+:100250000446AF4D4FF01020072952D2DFE801F0DD
+:10026000330419293C1E2500D4E902656468294637
+:10027000304600F0CDF82A462146304600F0B6F868
+:10028000AA002146304600F09FFA002800D0032043
+:1002900070BD00F051FB4FF4805007E0201DFFF7C8
+:1002A000AAFF0028F4D100F047FB60682860002016
+:1002B00070BD241D94E80700920000F085FA002824
+:1002C000F6D00E2070BD8069401C12D0201DFFF7B3
+:1002D0009EFF0028F6D109E08069401C09D0201D4E
+:1002E000FFF789FF0028EDD1606820B12046FFF7B5
+:1002F0004FFF042070BDFFF70DFF00F060F800F025
+:1003000052F8072070BD10B50C46182802D0012005
+:10031000086010BD2068FFF799FF206010BD4FF006
+:100320001024A069401C05D0A569A66980353079E4
+:10033000AA2808D06069401C2DD060690068401C64
+:1003400029D060692CE010212846FFF7FDFE3168B6
+:1003500081421CD1A16901F18002C03105E030B1B8
+:1003600008CA51F8040D984201D1012000E0002094
+:100370008A42F4D158B1286810B1042803D0FEE7AE
+:10038000284600F057F862496868086008E000F005
+:1003900016F800F008F84FF480500168491C01D0AD
+:1003A00000F0A4FAFEE7BFF34F8F5A4801685A4A9B
+:1003B00001F4E06111430160BFF34F8FFEE74FF09E
+:1003C00010208169491C02D0806900F0AEB87047E6
+:1003D000524A01681160121D416811604F4A8168DC
+:1003E00010321160111DC068086070472DE9F0419E
+:1003F00017460D460646002406E03046296800F000
+:10040000A7F8641C2D1D361DBC42F6D3BDE8F08153
+:1004100070B50C4605464FF4806608E0284600F0AB
+:1004200084F8B44205D3A4F5806405F58055002C0A
+:10043000F4D170BD4168044609B1012500E00025F2
+:100440004FF010267069A268920000F0BDF9C8B1A3
+:10045000204600F01AF89DB17669A56864684FF4EB
+:10046000002084420AD2854208D229463046FFF74E
+:10047000CFFF2A4621463046FFF7B8FFFFF79FFF20
+:10048000FFF791FFFFF746FEF8E72DE9FF414FF038
+:100490001024616980680D0B01EB800000F6FF708D
+:1004A000010B0020009001900290024603906846E4
+:1004B00001230BE0560902F01F0C50F8267003FAD6
+:1004C0000CFC47EA0C0740F82670521CAA42F1D3F4
+:1004D0000AE04A0901F01F0650F8225003FA06F616
+:1004E000354340F82250491C8029F2D3A169090BF9
+:1004F0004A0901F01F0150F822408B409C4340F80C
+:100500002240FFF765FFBDE8FF8100005C090000A5
+:10051000000000200CED00E00400FA050006004099
+:10052000144801680029FCD07047134A0221116069
+:1005300010490B68002BFCD00F4B1B1D186008687E
+:100540000028FCD00020106008680028FCD070470C
+:10055000094B10B501221A60064A1468002CFCD021
+:10056000016010680028FCD0002018601068002886
+:10057000FCD010BD00E4014004E5014008208F4993
+:1005800009680958084710208C4909680958084724
+:1005900014208A49096809580847182087490968BA
+:1005A0000958084730208549096809580847382004
+:1005B00082490968095808473C2080490968095858
+:1005C000084740207D4909680958084744207B496D
+:1005D00009680958084748207849096809580847B0
+:1005E0004C20764909680958084750207349096822
+:1005F0000958084754207149096809580847582084
+:100600006E490968095808475C206C49096809580F
+:100610000847602069490968095808476420674904
+:100620000968095808476820644909680958084753
+:100630006C20624909680958084770205F490968B9
+:100640000958084774205D49096809580847782007
+:100650005A490968095808477C20584909680958C7
+:10066000084780205549096809580847842053499C
+:1006700009680958084788205049096809580847F7
+:100680008C204E4909680958084790204B49096851
+:10069000095808479420494909680958084798208B
+:1006A00046490968095808479C204449096809587F
+:1006B0000847A0204149096809580847A4203F4934
+:1006C000096809580847A8203C490968095808479B
+:1006D000AC203A49096809580847B02037490968E9
+:1006E00009580847B4203549096809580847B8200F
+:1006F0003249096809580847BC2030490968095837
+:100700000847C0202D49096809580847C4202B49CB
+:10071000096809580847C82028490968095808473E
+:10072000CC202649096809580847D0202349096880
+:1007300009580847D4202149096809580847D82092
+:100740001E49096809580847DC201C4909680958EE
+:100750000847E0201949096809580847E420174963
+:10076000096809580847E8201449096809580847E2
+:10077000EC201249096809580847F0200F49096818
+:1007800009580847F4200D49096809580847F82016
+:100790000A49096809580847FC20084909680958A6
+:1007A00008475FF480700549096809580847000048
+:1007B00003480449024A034B704700000000002030
+:1007C000680900006809000040EA010310B59B07B2
+:1007D0000FD1042A0DD310C808C9121F9C42F8D0AB
+:1007E00020BA19BA884201D9012010BD4FF0FF305C
+:1007F00010BD1AB1D30703D0521C07E0002010BD72
+:1008000010F8013B11F8014B1B1B07D110F8013BFD
+:1008100011F8014B1B1B01D1921EF1D1184610BDDE
+:1008200002F0FF0343EA032242EA024200F005B865
+:100830007047704770474FF000020429C0F01280E3
+:1008400010F0030C00F01B80CCF1040CBCF1020F83
+:1008500018BF00F8012BA8BF20F8022BA1EB0C0158
+:1008600000F00DB85FEAC17C24BF00F8012B00F84E
+:10087000012B48BF00F8012B70474FF0000200B574
+:10088000134694469646203922BFA0E80C50A0E8B3
+:100890000C50B1F12001BFF4F7AF090728BFA0E861
+:1008A0000C5048BF0CC05DF804EB890028BF40F82D
+:1008B000042B08BF704748BF20F8022B11F0804F6F
+:1008C00018BF00F8012B7047014B1B68DB68184705
+:1008D0000000002009480A497047FFF7FBFFFFF7B7
+:1008E00011FC00BD20BFFDE7064B1847064A10600B
+:1008F000016881F30888406800470000680900002B
+:10090000680900001F030000000000201EF0040F13
+:100910000CBFEFF30881EFF3098188690238007892
+:10092000182803D100E00000074A1047074A126860
+:100930002C3212681047000000B5054B1B68054AB1
+:100940009B58984700BD00000703000000000020EE
+:100950005809000004000000001000000000000022
+:0809600000FFFFFF0090D0032F
+:10100000A8110020F5EA0100BD2F000067EA0100E9
+:10101000BD2F0000BD2F0000BD2F0000000000000C
+:101020000000000000000000000000004DEB010087
+:10103000BD2F000000000000BD2F0000BD2F0000EC
+:10104000B5EB0100BBEB0100BD2F0000BD2F000080
+:10105000BD2F0000BD2F0000BD2F0000BD2F0000E0
+:10106000C1EB0100BD2F0000BD2F0000C7EB010048
+:10107000BD2F0000CDEB0100D3EB0100D9EB010047
+:10108000BD2F0000BD2F0000BD2F0000BD2F0000B0
+:10109000BD2F0000BD2F0000BD2F0000BD2F0000A0
+:1010A000BD2F0000DFEB0100BD2F0000BD2F0000B1
+:1010B000BD2F0000BD2F0000BD2F0000BD2F000080
+:1010C000E5EB0100BD2F0000BD2F0000BD2F00008B
+:1010D000BD2F0000BD2F0000BD2F0000BD2F000060
+:1010E000BD2F0000BD2F0000BD2F0000BD2F000050
+:1010F000BD2F0000BD2F0000BD2F0000BD2F000040
+:10110000BD2F0000BD2F000000F002F81DF0DFFC35
+:101110000AA090E8000C82448344AAF10107DA4552
+:1011200001D11DF0D4FCAFF2090EBAE80F0013F0A4
+:10113000010F18BFFB1A43F001031847F8DE010046
+:1011400018DF01000A444FF0000C10F8013B13F0C7
+:10115000070408BF10F8014B1D1108BF10F8015B10
+:10116000641E05D010F8016B641E01F8016BF9D103
+:1011700013F0080F1EBF10F8014BAD1C0C1B09D15A
+:101180006D1E58BF01F801CBFAD505E014F8016BCC
+:1011900001F8016B6D1EF9D59142D6D3704700005E
+:1011A0000023002400250026103A28BF78C1FBD870
+:1011B000520728BF30C148BF0B6070471FB500F011
+:1011C0003DF88DE80F001FBD1EF0040F0CBFEFF3BC
+:1011D0000880EFF30980014A1047000011B80000B1
+:1011E0008269034981614FF001001044704700009B
+:1011F000F511000001B41EB400B511F01DFF01B4DB
+:101200000198864601BC01B01EBD0000F0B4404606
+:10121000494652465B460FB402A0013001B506486C
+:10122000004700BF01BC86460FBC804689469246F7
+:101230009B46F0BC70470000091100001DF044BC43
+:1012400070B51A4C054609202070A01C00F05FF80C
+:101250005920A08029462046BDE8704007F02CBBED
+:1012600007F035BB70B50C461149097829B1A0F1DA
+:101270006001562908D3012013E0602804D06928B2
+:1012800002D043F201000CE020CC0A4E94E80E009C
+:1012900006EB8000A0F58050241FD0F8806E284611
+:1012A000B047206070BD012070470000080000209A
+:1012B0001C00002014EC010010B5044600210120A0
+:1012C00000F03DF800210B2000F039F8042119202E
+:1012D00000F035F804210D2000F031F804210E2033
+:1012E00000F02DF804210F2000F029F80421C84354
+:1012F00000F025F80621162000F021F8062115201F
+:1013000000F01DF82046FFF79BFF002010BDA5212F
+:1013100001807047FFF7A4BF11487047104870471D
+:10132000104A10B514680F4B0F4A08331A60FFF7C4
+:1013300099FF0C48001D046010BD704770474907B5
+:10134000090E002806DA00F00F0000F1E02080F816
+:10135000141D704700F1E02080F800147047000071
+:1013600003F90042100502400100000130B5FA4DBA
+:10137000044610280AD0112C06D02846122CC17819
+:1013800006D0132C08D0FFDFEC7030BDFFDFFBE789
+:101390001129F9D0FFDFF7E71129F5D0FFDFF3E7D7
+:1013A0002DE9F04110F000FB044611F094FC201AE6
+:1013B000C5B206200EF094FB044606200EF098FB02
+:1013C000211AE54CE078132818D000200F180720C8
+:1013D0000EF086FB064607200EF08AFB301A3918FD
+:1013E000E07812280CD0002001442078022809D08F
+:1013F00000200844281AC0B2BDE8F0810120E5E7CA
+:101400000120F1E70120F4E7D34810B5817900F11C
+:101410000700490805D00CF079FEBDE8104007F040
+:10142000FFB80CF054FEF8E702210EF0B1BB2DE935
+:10143000FC411D4690460E460746FFF7F5FF0400A7
+:101440000AD02078222804D3A07FC0F34010A842FD
+:1014500005D10820BDE8FC8143F20200FAE7ADF8AF
+:1014600000703DB101208DF802008DF803608DF809
+:10147000048002E000208DF8020068460DF015FCA3
+:10148000A07F65F34510A0770020E3E730B5044660
+:10149000A1F120000D460A284AD2DFE800F0050736
+:1014A0000C1C2328353A3F44FFDF42E020782028F7
+:1014B0003FD1FFDF3DE0A8480178032939D0C0784B
+:1014C000132836D02078242833D0252831D023285B
+:1014D0002FD0FFDF2DE0207822282AD0232828D8FB
+:1014E000FFDF26E02078222823D0FFDF21E02078CC
+:1014F00022281ED024281CD026281AD0272818D00D
+:10150000292816D0FFDF14E02078252811D0FFDF2E
+:101510000FE0207825280CD0FFDF0AE0207825286E
+:1015200007D0FFDF05E02078282802D0FFDF00E0A9
+:10153000FFDF257030BD1FB504466A46002001F06C
+:101540005EFCB4B1BDF802204FF6FF700621824266
+:1015500001D1ADF80210BDF80420824201D1ADF8EE
+:101560000410BDF80810814203D14FF44860ADF873
+:10157000080068460DF067F807F052F804B010BD97
+:1015800070B514460D46064611F0D6FF58B90DB198
+:10159000A54201D90C2070BD002408E056F82400B3
+:1015A00011F0CAFF08B1102070BD641CE4B2AC4257
+:1015B000F4D3002070BDF0B50024059D10B1A94200
+:1015C00003D850E009B90020F0BD0920F0BD055D49
+:1015D000D5B1071997F801C0BCF1150F2DD03BDC30
+:1015E000BCF1150F38D2DFE80CF037122020262688
+:1015F00028282F2F373737373737373737372000F7
+:10160000025D22BB641CE4B28C42F9D3DBE7022DFD
+:10161000DBD1BD781D70072D01D26D0701D40A20E2
+:10162000F0BD157845F0010515E0EF43FF0707E031
+:10163000012D07D010E00620F0BD2F07A7F180573D
+:10164000002FF5D03046F0BD1578AF0701D50B203F
+:10165000F0BD45F002051570055D641C2C44E4B234
+:101660008C4202D9B1E74FF448568C42AFD3AAE777
+:1016700010B50278540809D0012243F20223012C4C
+:1016800007D0022C0DD0032C13D10FE000200870DE
+:1016900005E080790324B4EB901F0AD10A70002082
+:1016A00010BD8079B2EB901F03D1F7E780798009F4
+:1016B000F4D0184610BD284A117C39B1517C02295A
+:1016C00008D0032908D043F2022070470146901D3C
+:1016D00001F002BC032100E00121017000207047ED
+:1016E00038B50C460546694601F0F6FB00280DD1D9
+:1016F0009DF80010207861F34700207055F8010F25
+:10170000C4F80100A888A4F80500002038BD38B549
+:101710001378C0B1022816D010A46D462468009436
+:101720004C7905EB9414247864F347031370032871
+:101730000ED003F0FE0010700868C2F8010088881F
+:10174000A2F8050038BD23F0FE0313700228EED185
+:10175000D8B240F00100EEE7C80100200302FF010B
+:1017600038B50C460978222901D2082038BDADF8D9
+:1017700000008DF8022068460CF010FD06F050FFC6
+:10178000050003D121212046FFF780FE284638BD01
+:101790001CB500208DF80000CDF80100ADF8050063
+:1017A000FE48007C022801D0012000E000208DF8D6
+:1017B000070068460CF030FE002800D0FFDF1CBD9B
+:1017C0002DE9FF470220F54E8DF804000027B08A6E
+:1017D000ADF80600B84643F202094CE001A80EF04D
+:1017E0003EF9050006D0B08AA8B3A6F81480ADF87B
+:1017F00006803EE0039CA07F01072DD504F1240064
+:101800000090A28EBDF80800214604F1360301F0D5
+:101810007DFF050005D04D452AD0112D3CD0FFDFBE
+:101820003AE0A07F20F00800A077E07F810861F314
+:101830000000C10861F34100E07794F8210000F056
+:101840001F0084F820002078282826D1292120464E
+:10185000FFF71CFE21E014E040070AD5BDF80800A0
+:1018600004F10E0101F050FB05000DD04D4510D1E3
+:1018700000257F1CFFB202200EF032F9401CB84256
+:10188000ACD8052D12D008E0A07F20F00400A0778E
+:1018900003E0112D00D0FFDF0025BDF80600B08267
+:1018A000052D05D0284604B0BDE8F087A6F81480C1
+:1018B0000020F8E770B50646FFF7B6FD054607F0CD
+:1018C00079F8040000D1FFDF6680207820F00F0057
+:1018D000801C20F0F000203020700620207295F847
+:1018E0003E006072BDE8704007F067B82DE9F04730
+:1018F00086B0040000D1FFDF2078A84E20F00F0052
+:10190000801C20F0F0007030207060680178091FA2
+:10191000182931D2DFE801F0FD30303053FC300CB3
+:10192000FCFC40FD3030FD76FDFD3030FDFDFBFA66
+:1019300086883046FFF778FD0546304608F0E0FB24
+:10194000E0B16068807985F83E0021212846FFF7E4
+:101950009DFD304603F0CBFF304605F037F93146A8
+:10196000022011F09DFDA87F20F01000A877FFF75E
+:1019700027FF002800D0FFDF06B095E7207820F091
+:10198000F000203020700620207266806068807928
+:10199000607207F012F8D8E785882846FFF744FD03
+:1019A00000B9FFDF60688078012800D0FFDF606841
+:1019B000817906B02846BDE8F04708F07DBF8688EB
+:1019C0003046FFF731FD050000D1FFDF06F0F5FFDF
+:1019D00060683146C08828816068008968816068D5
+:1019E0004089A881022011F05BFD0020A875A87F26
+:1019F00000F003000228BFD1FFF7E2FE0028BBD0B1
+:101A0000FFDFB9E780783C2803D0002502280AD000
+:101A100000E00125002720B13C2802D0022800D098
+:101A2000FFDF17B1B3E00127F5E706F0C6FF1DB1F0
+:101A3000B07801F022FA9CE06568B5F804A0A879B6
+:101A4000AD1C012806D03079814606F055FD07000F
+:101A500003D101E0B078F7E7FFDF00220221504612
+:101A60000EF08DF8040000D1FFDF22212046FFF7A1
+:101A70000DFD2879012800D00220A17F804668F35F
+:101A80000101A177288B2081688B6081A88BA081C0
+:101A900084F822908DF80880B8680090F86801906A
+:101AA0006A46032150460EF06AF800B9FFDFB88895
+:101AB000ADF81000B8788DF8120004AA0521504640
+:101AC0000EF05DF800B9FFDFB888ADF80C00F878CB
+:101AD0008DF80E0003AA042150460EF050F800B90C
+:101AE000FFDF062105F1120001F02CFA28B3687916
+:101AF000800700D5FFDF6979E07D61F34700E0757D
+:101B0000D5F80600A0616889A08303E05CE055E099
+:101B10004EE060E0062105F10C0001F013FAB0B1CF
+:101B2000B0794108607861F347006070D6F807002B
+:101B3000C4F80200B6F80B0012E0E07D20F0FE00D1
+:101B4000801CE075D5F81200A061E88ADCE76078B7
+:101B500020F0FE00801C6070E868C4F80200288A4B
+:101B6000E080B8F1010F04D0B8F1020F0FD0FFDF11
+:101B700002E73078032800D0FFDF0021084611F08B
+:101B80008FFC06B00120BDE8F04701F045B9F078C0
+:101B9000132800D0FFDF0021062001E0C80100204B
+:101BA00011F07EFC06B01120BDE8F047FFF7DEBB68
+:101BB00006B02046BDE8F04702F030B806F0FDFE62
+:101BC000B07C40F0020004E006F0F7FEB07C40F08C
+:101BD0000400B074D0E606B0BDE8F04706F0EDBEF4
+:101BE0002DE9F04705460078914600270209FB4899
+:101BF0000C463E46012A6DD000234FF6FF71022AA3
+:101C000069D0072A09D00A2A71D0FFDFA9F800603D
+:101C10000CB127806680002046E6D5F804C09CF809
+:101C20000060142E7DD010DC04F1080204F11808C5
+:101C30000F2E21D004DC042E5AD0082E57D10DE0EF
+:101C4000122E6FD0132EF9D11FE0153E072E4ED263
+:101C5000DFE806F0C14D4D099FEAB00012271026BB
+:101C6000BCF8040014E11C27092694B3BCF8020058
+:101C7000A080686800795AE11B2709264CB303202D
+:101C8000207268684088A080C0E79CF802003C2869
+:101C900027D0102718260CF1020CD4B1BCF8020092
+:101CA000A080BCF818006082BCF818002082BCF844
+:101CB0001A00A082BCF81C00E0829CF805000CF120
+:101CC0000601FFF724FD9CF8040028B10120E07311
+:101CD0009CE703E0BFE0DFE00220F8E7A9F800603E
+:101CE00099E71B270926002CF8D023728EE720E104
+:101CF0001D273726002CF1D0A18069680879491D7D
+:101D0000FFF705FD686890F82B00A0756868C0783B
+:101D10000428E07D16D020F00100E0756968C978DC
+:101D200001E06DE011E061F34200E07569681F2297
+:101D3000C97A61F3C700E075696840460C311CF050
+:101D4000C4FD63E740F00100E7E71D273726002CBC
+:101D5000C4D0A1806868411D0079FFF7D8FC69688C
+:101D600004F10F0201F10C00CB7A01461846FFF78F
+:101D7000CEFC6868807CA0756868C178E07D61F3FE
+:101D8000420020F0F900E0751F2140461CF03EFEA5
+:101D90003CE720271026002CA0D0A180686804F121
+:101DA0000902407A20726968CB1C88781946FFF7CF
+:101DB000AEFC2BE721270A26002C8FD0BCF802109E
+:101DC000A180696809792172696849796172817CA9
+:101DD00021F0040157E022270B26002C84D0BCF808
+:101DE0000400A0806868807820726868807901F0BB
+:101DF000B8F860726868C07901F0B3F8A07205E7BE
+:101E000024271026002CA3D0BCF80200A08068680C
+:101E1000007920816868007A60816868C088A08144
+:101E200068684089E081F1E623271026002C8FD0D6
+:101E3000BCF80210A1806968898821816968C98815
+:101E4000618169680989A18169684989E181817C29
+:101E500021F0020117E0297A012903D0022914D0C8
+:101E6000FFDFD3E61F271026002C95D06988A180BC
+:101E7000A9892181E9896181298AA181698AE18110
+:101E8000817C21F001018174C0E612276888102648
+:101E9000214601F044F8B9E6287A072850D2DFE855
+:101EA00000F0373D3D484848040011270926002C22
+:101EB00094D0B5F802804046FFF7B6FA90F822A019
+:101EC000A4F80480687A2072042140460DF072FE66
+:101ED000052140460DF06EFE002140460DF06AFEE1
+:101EE000012140460DF066FE032140460DF062FEE2
+:101EF000022140460DF05EFE062140460DF05AFEDE
+:101F0000072140460DF056FE504600F0B6FF7DE634
+:101F10001B270926002C8AD0A180E6E61B2709266C
+:101F2000002C84D0A180287A012800D002202072C1
+:101F30006CE64A4621462846BDE8F04701F0F8BF66
+:101F4000FFDF63E670B5254DE878132801D008203F
+:101F500070BD0CF0B3FC06F063FB040002D12879DD
+:101F600000F08BFF0021062011F09AFA204670BD88
+:101F70001A4810B5C078122801D0082010BD0021E1
+:101F800008460CF0FAFA06F04BFB0028F6D10021C7
+:101F9000062011F085FA1120FFF7E8F9002010BDA6
+:101FA00010B50E4C207801280ED000200CF0A1FDB9
+:101FB00006F036FB002808D10021084611F070FA1F
+:101FC0002078032802D004E0082010BDA07800F09B
+:101FD00054FF012000F020FF002010BDC8010020A8
+:101FE00070B5002538B1022817D0062836D007284A
+:101FF00000D0FFDF70BDFFF7D3FF0028FAD106F055
+:10200000D9FC0028F6D0017821F00F01891C21F0BD
+:10201000F0012031017005723FE08EB23046FFF7CB
+:1020200003FA040000D1FFDF20782128E2D006F077
+:10203000C1FC60B1017821F00F01891C21F0F00191
+:1020400010310170022101724680A57525E02146FC
+:102050003046BDE870401322FFF782BBFE48C478CB
+:10206000122C03D0132C04D0FFDF70BDFFF780FFCC
+:1020700001E0FFF767FF0028F7D106F09BFC00287E
+:10208000F3D0017821F00F01891C21F0F0012031FB
+:102090000170122C05D002210172BDE8704006F0DB
+:1020A0008CBC0121F8E72DE9F04116460C00804672
+:1020B00000D1FFDF307820F00F00801C20F0F0000E
+:1020C000103030702078012804D0022817D0FFDFAC
+:1020D000BDE8F0814046FFF7A7F9050000D1FFDF1A
+:1020E0000320A87506F069FC94E80F00083686E81E
+:1020F0000F00D948817C41F001018174E8E7404636
+:10210000FFF792F9050000D1FFDFA1884FF6FF70BD
+:102110000027814202D1E288824203D0814201D16C
+:10212000E08840B106F049FC94E80F00083686E8E4
+:102130000F00AF75CCE7A87D0128C9D17823002214
+:102140004146022011F002F90220A875C0E738B517
+:1021500005460C46084611F0EFF920BB203D072D3F
+:1021600051D2DFE805F0041C383D4349310000211D
+:10217000072011F06BF908B1112038BDA01C0CF03C
+:1021800010FC06F04DFA05003ED10022082311464E
+:10219000072011F0DBF8072836D0FFDF34E0606855
+:1021A00011F00EFA08B1102038BD618820886A4607
+:1021B0000CF0CBFD06F034FA050025D1606818B3A9
+:1021C000BDF8001001801FE0A07800F00101208818
+:1021D0000CF0F1FD14E0206802F057F9054613E019
+:1021E000207800F001000CF058FE09E0207800F0A3
+:1021F00001000BF05FFF03E0618820880CF02DFDEB
+:1022000006F00EFAEAE70725284638BD70B5054600
+:102210000C46084611F0B6F908B1102070BD203DFB
+:10222000072D1BD2DFE805F0041818181A1A180039
+:102230002088FFF7F9F820B10078222804D208207E
+:1022400070BD43F2020070BD2088A11C0CF003F8A1
+:10225000BDE8704006F0E4B9062070BD072070BDEF
+:102260007D48801D704738B516217B481CF0ACFBBB
+:10227000012000F0D1FD1120FFF778F8764C684678
+:10228000E11D06F02DFB9DF80010A07961F34700D9
+:1022900020F00100A071002020744FF46170E081F3
+:1022A00002206074FFF7B0F800B1FFDF00F0BEFE5F
+:1022B00001F07FFC38BD10B50C46402120461CF0D3
+:1022C00083FBA07F20F00300A07720202070002057
+:1022D000A07584F8230080E670477CB5054611F0B0
+:1022E0002BF908B110207CBD5B4CA11DD4F8060071
+:1022F0000090D4F80A0001902846FFF7F1F9002871
+:10230000F1D1FFF781F80028EDD00099C4F806104C
+:10231000BDF8041061819DF8061021737CBD10B5D5
+:10232000044611F02FF908B1102056E64A4922461A
+:102330008879C91D4008FFF7EAF900204DE6FEB58F
+:102340000D4604004FF0000711D00822FFF718F9DE
+:10235000002811D1002608E054F826006946FFF74E
+:1023600087F9002808D1761CF6B2AE42F4D30BF000
+:102370000BFE10B143F20320FEBD374E7771FCB166
+:1023800000271AE054F8270002A9FFF771F900B1FD
+:10239000FFDF9DF808008DF8000054F8270050F882
+:1023A000011FCDF801108088ADF8050068460BF0DC
+:1023B00010FE00B1FFDF7F1CFFB2AF42E2D37571A8
+:1023C0000020FEBD2DE9F0478AB01546894604007D
+:1023D0001DD00F4608222946FFF7D2F8002810D159
+:1023E000002612E054F826006946103000F074FD13
+:1023F000002806D13FB157F8260011F09DF810B122
+:1024000010200AB008E4761CF6B2AE42EAD30026E9
+:10241000A5F101081CE000BF06F1010A0AF0FF0760
+:1024200012E000BF54F82600017C4A0854F8271037
+:102430000B7CB2EB530F05D10622113011311CF089
+:1024400018FA70B17F1CFFB2AF42EBD30AF0FF065F
+:102450004645E1DB4E4601E0C801002024B10120E1
+:1024600003E043F20520CCE700200BF0D2FD10B9C9
+:102470000BF0DBFD10B143F20420C2E764B3002788
+:102480000DF1170826E000BF54F827006946103008
+:1024900000F022FD00B1FFDF54F82700102250F8B1
+:1024A000111FCDF801108088ADF8050054F82710F1
+:1024B0000DF107001CF009FA96B156F8271010220A
+:1024C00040461CF002FA68460BF068FD00B1FFDFE1
+:1024D0007F1CFFB2AF42D7D3FFF75AF9002090E735
+:1024E000404601F0C6FFEEE730B585B0044611F076
+:1024F00023F818B9606811F06CF810B1102005B01D
+:1025000030BD60884AF2B811884206D82078F74D6D
+:1025100028B1012806D0022804D00720EFE7FEF7F3
+:1025200073FF17E06078022804D0032802D043F23A
+:102530000220E4E76874C1B200200090ADF8040006
+:1025400002292BD0032926D0FFDF68460BF0DEFDE1
+:1025500006F066F80028D2D1606801F07DFF20788F
+:1025600058B101208DF800000DF1010001F081FF4C
+:1025700068460CF07CFC00B1FFDF20782874FFF780
+:1025800007F9608860B1E88180B20BF03AFD00B1D4
+:10259000FFDF0020B3E78DF80500D6E74020FAE71B
+:1025A0004FF46170EFE710B5044610F0EBFF20B96F
+:1025B000606838B111F004F808B110200DE56068CA
+:1025C00001F057FFC948C1896180417C6170007C7E
+:1025D0002070002001E52DE9F04186B0054600207D
+:1025E0008DF80C008DF804008DF808008DF81000AF
+:1025F0001E4614468846284610F0EBFF18B92046C0
+:1026000010F0E7FF10B1102006B061E555EA0400B4
+:1026100018D01F2702AB03AA414628460097FEF7B1
+:10262000CAFF0028F0D104AB01AA3146204600972A
+:10263000FEF7C1FF0028E7D19DF80400C00703D0D2
+:102640000A20E1E70720DFE73DB1294640460CF0CC
+:102650003EFA05F0E5FF0028D6D13CB121463046D0
+:102660000CF03EFA05F0DCFF0028CDD19F499DF823
+:10267000080048700020C7E72DE9F04387B089467D
+:102680004FF000089AA104468DF81080D1E90001AE
+:10269000CDE90501204610F04FFF80B920780128D0
+:1026A00003D1606810F048FF48B9904D287C50B1C4
+:1026B000687C022807D1606810F08BFF18B11020E9
+:1026C00007B0BDE8F0832878012801D00820F7E79B
+:1026D00007200DF00DFA18B9207878B101280DD037
+:1026E000FEF75EFE60B1608943F6E172A0F1200161
+:1026F000914221780CD3012904D0B2E01220DFE707
+:102700001320DDE700287CD1A189002979D109E0D7
+:10271000012907D06978C90704D0A189002970D0A0
+:10272000B4296ED8217831B1012908D0022904D00A
+:10273000032966D10AE0002609E0022607E008B96D
+:10274000A08908B1042609E0012607E00326287CB9
+:1027500050B1687C022807D1606828B104A960687C
+:10276000FEF786FF0028ABD1207A30B1012806D0D1
+:10277000022806D0032874D105E0002704E00127D1
+:1027800002E0022700E003270EB1022E0ED16FB146
+:102790006879B0B36878800702D043F201208FE7F0
+:1027A000022E03D1022F5CD0032F5AD0207808B11B
+:1027B000012806D1484600F043FB002880D185F867
+:1027C00002906089ADF800006089ADF802008DF8D4
+:1027D00004600DF10500FEF76EFF00B1FFDF9DF80C
+:1027E00010008DF806002078012806D0287C68B1FA
+:1027F000687C02280AD1606840B1606850F8011F07
+:1028000000E02EE0CDF80710808802E04046CDF8C9
+:102810000780ADF80B008DF80E70A07BC0F340026E
+:10282000014662F35F01C0F3800041EA800005A920
+:10283000085C8DF80D00A0B168460CF017F905F0A2
+:10284000EFFE0028ABD101200CF053F905F0E8FEB3
+:102850000028A4D1052E0ED2DFE806F005050A0AED
+:10286000050007202CE7A87800F0FAFA032000E022
+:10287000022000F0D1FA012E0AD0A08940B1002236
+:1028800083001146104610F061FD08B1032017E7E0
+:10289000002015E72DE9FC4180460E460325084639
+:1028A00010F097FE00286DD14046FEF7BDFD0400F4
+:1028B00005D02078222805D20820BDE8FC8143F20B
+:1028C0000200FAE7A07F00F003073EB1012F13D00A
+:1028D00000203146FEF72FFE0500EED1012F0DD06E
+:1028E000022F21D0FFDF2846E7E70000C8010020C3
+:1028F00007060504030201000120EAE7A07D314636
+:10290000022801D011B107E01120D6E7684600F097
+:102910009AFC0028D1D16946404607F090FF050097
+:10292000E1D10120A075DEE7A07D032803D1FE4898
+:10293000807CC00701D02EB30EE026B1A07F4007F7
+:102940001ED4002100E00121404607F098FF050059
+:10295000C9D1A075002EC6D03146404600F0D4FA49
+:1029600005461128BFD1A07F4107BCD4316844F887
+:102970000E1F7168616040F0040020740025B2E70A
+:102980001125B0E7102098E770B50C460546FEF714
+:102990004BFD010005D022462846BDE87040FEF7F9
+:1029A000DFBE43F2020070BD10B50BF05CFBBDE86A
+:1029B000104005F035BE0123FEF739BD00231A464D
+:1029C0001946FEF734BD7CB5044610F0B5FD08B1DC
+:1029D00010207CBD628843F6FD73111F07209942C9
+:1029E000F7D2A1880429F4D3B1F5804FF1D89142F0
+:1029F000EFD8CD4DE878112801D008207CBDFEF736
+:102A0000CFFCB0B32078810701D5697991B300F08C
+:102A100001008DF800006088ADF80200A088ADF8D4
+:102A2000040020780222C0F3400102EA5000014372
+:102A30008DF807100DF10600FEF73DFE00B1FFDF37
+:102A400068460BF05EFD05F0EBFD0028D6D10021B5
+:102A500001200BF092FD05F0E3FD0028CED1E088C7
+:102A600000F044FA0400C9D11220FEF77FFC204692
+:102A70007CBD00E001E01320FAE70720F8E72DE92C
+:102A8000F043DFF8A482074687B098F80300994620
+:102A900015460C46122803D1FFF76AFA00281CD10C
+:102AA000204610F049FDB8B9284610F045FD98B908
+:102AB0006088ADF80000A088ADF8020020784FF0E3
+:102AC0000006C0F340008DF80400207880071ED473
+:102AD000384610F031FD08B11020F1E53878400893
+:102AE00008D0012809D0022807D0032805D043F2D6
+:102AF0000220E5E58DF8056002E001208DF8050073
+:102B000057F8010FCDF80600B888ADF80A0003A801
+:102B1000FEF7D1FD08B10320D2E52888ADF80E00FC
+:102B20006888ADF81000A888ADF81200E888ADF804
+:102B30001400ADF81660ADF8186068460BF0A8FDFB
+:102B4000B8B998F803004546112801D00820B7E528
+:102B500006200CF0CDFF50B12078800701D56879B0
+:102B600038B1FEF71DFC022805D21320A8E512207B
+:102B7000A6E50720A4E5484600F062F90028ACD19C
+:102B800085F8049068460BF0C0FD05F049FD00286B
+:102B9000A3D1287900F064F9E08800F0A7F90400D7
+:102BA0009BD11320FEF7E2FB204689E570B5054670
+:102BB0000C46084610F0E6FC08B1102070BD28460F
+:102BC000FEF732FC38B10178222902D3807F8006DB
+:102BD00004D4082070BD43F2020070BD214628468F
+:102BE0000CF097F8BDE8704005F01ABD38B5054601
+:102BF0000C46084610F0A0FC08B1102038BD28464D
+:102C0000FEF712FC20B10078222804D2082038BD3B
+:102C100043F2020038BD4448807C400701D51120B2
+:102C200038BD2078800802D16078800801D0072064
+:102C300038BDADF8005020788DF8020060788DF82E
+:102C4000030068460BF04EFC05F0EAFC38BD2DE9A8
+:102C5000F0418EB014460D460646FEF7E5FB070030
+:102C600006D03878222806D208200EB0BDE8F081C0
+:102C700043F20200F9E7284610F0ABFC30B94FF000
+:102C800000084CB1204610F09BFC08B11020ECE786
+:102C9000C4F80080A4F804802348807C800701D514
+:102CA0001120E2E797F8220005F026FC8088011D3C
+:102CB000FB2901D2001D00E0FB20C0B26A46294674
+:102CC00000F0E5F8ADF81060BDF80200ADF81200B4
+:102CD000BDF80600ADF81400BDF80000ADF8160010
+:102CE000BDF80400ADF8180007A904A80BF03FFBDD
+:102CF00000B1FFDFBDF81E00ADF80800BDF82000F0
+:102D0000ADF80A00BDF82200BDF82410BDF800207F
+:102D10000844ADF80C0007201B2AA6D3BDF802100A
+:102D20001B29A2D3FB2A01E0C80100209DD8FB2962
+:102D30009BD806278A4210D10121104600F056F890
+:102D4000BDF80410884208D1BDF80200012100F04E
+:102D50004DF8BDF80610884201D0384685E7BDF829
+:102D6000080028B9BDF80A1011B9BDF80C1029B334
+:102D70005DB1298849B1698839B124B102982060D0
+:102D8000BDF80C00A08013206FE7BDF80010BDF85F
+:102D90000A20081A80B2ADF80000BDF80210891AA6
+:102DA000ADF80210012100F021F8ADF80400BDF8E3
+:102DB0000200012100F01AF8ADF80600ADF8286015
+:102DC000BDF80200ADF82A00BDF80600ADF82C00F1
+:102DD000BDF80000ADF82E00BDF80400ADF83000DD
+:102DE0000AA80BF076FA05F01BFC3EE7022903D097
+:102DF000C000703080B2704780003C30FAE710802D
+:102E00000888508048889080C88810818888D08041
+:102E1000002050819081704730B5564D040008D095
+:102E2000012C04D0022C06D0032C04D0FFDF2C7020
+:102E300030BDFFDFFBE728780128F8D0FFDFF6E799
+:102E400010B5044605F058FB30B1407830B120464B
+:102E500005F057FE002010BD072010BD122010BD48
+:102E600010B505F049FB040000D1FFDF607800B920
+:102E7000FFDF6078401E607010BD10B505F03CFBB0
+:102E8000040000D1FFDF6078401C607010BD10B5F9
+:102E9000144631B10A68226049686160218839B1FD
+:102EA00007E0208060800121FFF7A0FFA0800DE0F7
+:102EB0002080618801B96080A08820B92088012124
+:102EC000FFF794FFA080E088002804D160880121EA
+:102ED000FFF78CFFE08010BD0278520804D0012A71
+:102EE00002D043F202207047FEF7C2BB10B548B1D2
+:102EF000830000221146062010F028FA062801D08F
+:102F0000032010BD002010BD1FB56A46FFF777FFF4
+:102F100068460BF0FCFC05F083FB04B010BD70B5F7
+:102F20000C0006460DD0FEF77FFA050000D1FFDF4A
+:102F3000A68028892081288960816889A081A88944
+:102F4000E08170BD10B500231A4603E0845C234382
+:102F5000521CD2B28A42F9D30BB1002010BD01201D
+:102F600010BD00B5012803D0022801D0FFDF0020EA
+:102F700000BD0000C80100200A4810B504680949D6
+:102F80000948083108600FF0FCFB0648001D04608A
+:102F900010BD0649002008604FF0E0210220C1F872
+:102FA000800270471005024001000001FC1F004034
+:102FB0000F4A12680D498A420CD118470C4A126810
+:102FC0000A4B9A4206D101B510F02AF808F009FC24
+:102FD000BDE80140074909680958084706480749FC
+:102FE000054A064B7047000000000000BEBAFECA4A
+:102FF000B000002004000020A8110020A81100202B
+:103000002CFFFFFFDBE5B15100300200A500FFFF00
+:1030100084000000284F4C00DA0D499A2F95338424
+:1030200077AC2F1307CD6F7D177A70DEFE48002135
+:1030300001604160018170472DE9F743044692B079
+:103040009146406810F0BCFA40B1606810F0C1FAD7
+:1030500020B9607800F00300022801D0012000E0D0
+:103060000020F14E3072484610F066FA18B1102078
+:1030700015B0BDE8F08349460120FEF75CFA002850
+:10308000F6D101258DF842504FF4C050ADF8400004
+:10309000002210A9284604F061F80028E8D18DF834
+:1030A00042504FF428504FF00008ADF8400047461A
+:1030B0001C216846CDF81C801BF0A8FC9DF81C0064
+:1030C00008AA20F00F00401C20F0F00010308DF80E
+:1030D0001C0020788DF81D0061789DF81E0061F3BA
+:1030E000420040F001008DF81E009DF800000AA982
+:1030F00040F002008DF800002089ADF83000ADF8F6
+:103100003270608907AFADF834000B97606810AC7F
+:103110000E900A94684603F016FE0028A8D1BDF868
+:10312000200030808DF8425042F60120ADF840007A
+:103130009DF81E0008AA20F00600801C20F0010067
+:103140008DF81E000220ADF83000ADF8340013A851
+:103150000E900AA9684603F0F6FD002888D1BDF854
+:1031600020007080311D484600F033F9002887D1D7
+:103170008DF8425042F6A620ADF840001C2168466A
+:10318000CDF81C801BF042FC9DF81C00ADF83450BB
+:1031900020F00F00401C20F0F00010308DF81C00D3
+:1031A0009DF81D0008AA20F0FF008DF81D009DF875
+:1031B0001E000AA920F0060040F00100801C8DF8D6
+:1031C0001E009DF800008DF8445040F002008DF87C
+:1031D0000000CDE90A4711A80E90ADF830506846BE
+:1031E00003F0B1FD002899D1BDF82000F080002047
+:1031F0003EE73EB504460820ADF80000204610F03A
+:103200009BF908B110203EBD21460120FEF793F93D
+:103210000028F8D12088ADF804006088ADF80600D9
+:10322000A088ADF80800E088ADF80A007E4801AB40
+:103230006A468088002104F08BF9BDF80010082947
+:10324000E1D003203EBD1FB50446002002900820B7
+:10325000ADF80800CDF80CD0204610F06DF910B193
+:10326000102004B010BD704802AA81884FF6FF708C
+:1032700004F0B0FB0028F4D1BDF80810082901D0F3
+:103280000320EEE7BDF800102180BDF80210618038
+:10329000BDF80410A180BDF80610E180E1E701B59A
+:1032A00082B00220ADF800005F4802AB6A46408859
+:1032B000002104F04DF9BDF80010022900D00320D0
+:1032C0000EBD1CB5002100910221ADF80010019047
+:1032D00010F058F908B110201CBD53486A464188C7
+:1032E0004FF6FF7004F076FBBDF800100229F3D012
+:1032F00003201CBDFEB54C4C06461546207A0F46F1
+:10330000C00705D0084610F017F918B11020FEBD0F
+:103310000F20FEBDF82D01D90C20FEBD304610F067
+:103320000BF918BB208801A903F053FA0028F4D147
+:1033300030788DF80500208801A904F0E8F800280D
+:10334000EBD100909DF800009DF8051040F00200C0
+:103350008DF80000090703D040F008008DF8000048
+:103360002088694604F070F80028D6D1ADF80850DE
+:1033700020883B4602AA002104F0EAF8BDF80810B4
+:10338000A942CAD00320FEBD7CB5054600200090AE
+:1033900001900888ADF800000C462846019510F011
+:1033A0000FF918B9204610F0EDF808B110207CBDD7
+:1033B00015B1BDF8000050B11B486A4601884FF6B0
+:1033C000FF7004F007FBBDF8001021807CBD0C20CD
+:1033D0007CBD30B593B0044600200D46009014210A
+:1033E00001A81BF013FB1C2108A81BF00FFB9DF884
+:1033F0000000CDF808D020F00F00401C20F0F000B5
+:1034000010308DF800009DF8010020F0FF008DF8CD
+:1034100001009DF8200040F002008DF820000120FE
+:103420008DF8460002E00000DE01002042F6042094
+:10343000ADF8440011A801902088ADF83C006088E8
+:10344000ADF83E00A088ADF84000E088ADF842003D
+:103450009DF8020006AA20F00600801C20F0010062
+:103460008DF802000820ADF80C00ADF810000FA890
+:10347000059001A908A803F066FC002803D1BDF857
+:1034800018002880002013B030BD000010B504469D
+:1034900010F052F808B1102010BD2078C0F30210CF
+:1034A000042807D86078072804D3A178102901D808
+:1034B000814201D2072010BDE078410706D421796E
+:1034C0004A0703D4000701D4080701D5062010BD20
+:1034D000002010BD10B513785C08C37F64F30003AF
+:1034E000C3771478A40864F34103C3771078C30941
+:1034F000487863F34100487013781C090B7864F333
+:1035000047130B701378DB0863F3000048705078A2
+:10351000487110BD10B5C4780B7864F300030B70CC
+:10352000C478640864F341030B70C478A40864F39E
+:1035300082030B70C478E40864F3C3030B7003794F
+:10354000117863F30001117003795B0863F34101A3
+:10355000117003799B0863F3820111700079C00830
+:1035600060F3C301117010BD70B514460D460646D8
+:1035700005F020FA80B10178182221F00F01891C92
+:1035800021F0F001A03100F8081B21461BF0E2F900
+:10359000BDE8704005F011BA29463046BDE87040DC
+:1035A0001322FEF7DDB82DE9F047064608A8894644
+:1035B00090E830041F469046142128461BF026FA56
+:1035C0000021CAF80010B8F1000F03D0B9F1000FC4
+:1035D00003D114E03878C00711D020680FF0D2FF73
+:1035E000C0BBB8F1000F07D12068123028602068F6
+:1035F000143068602068A8602168CAF80010387824
+:10360000800724D560680FF0DBFF18BBB9F1000F0D
+:1036100021D0FEF725FE0168C6F868118188A6F85A
+:103620006C11807986F86E0101F0FBFCF94FEF60B8
+:10363000626862B196F8680106F2691140081032BA
+:10364000FEF765F81022394660681BF03EF900204D
+:10365000BDE8F08706E0606820B1E8606068C6F801
+:103660006401F4E71020F3E730B5054608780C460E
+:1036700020F00F00401C20F0F001103121700020DC
+:10368000607095F8230030B104280FD0052811D0C0
+:10369000062814D0FFDF20780121B1EB101F04D2DF
+:1036A00095F8200000F01F00607030BD21F0F000A0
+:1036B000203002E021F0F00030302070EBE721F004
+:1036C000F0004030F9E7F0B591B0022715460C46FE
+:1036D00006463A46ADF80870092103AB05F089FFAC
+:1036E0000490002810D004208DF804008DF801709B
+:1036F000E034099605948DF818500AA968460DF033
+:1037000039FF00B1FFDF012011B0F0BD10B588B066
+:103710000C460A99ADF80000CBB11868CDF802004C
+:10372000D3F80400CDF80600ADF80A20102203A853
+:103730001BF0CBF868460BF061F904F071FF00282C
+:1037400003D1A17F41F01001A17708B010BD002086
+:10375000CDF80200E6E72DE9F84F0646808A0D46CF
+:1037600080B28246FDF760FE04463078DFF8A4821E
+:1037700000274FF00509A8F120080F2870D2DFE8D4
+:1037800000F06FF23708387D8CC8F1F0EFF35FF38B
+:10379000F300A07F00F00300022809D05FF00000D2
+:1037A00080F0010150460CF0F3F9050003D101E06F
+:1037B0000120F5E7FFDF98F85C10C90702D0D8F8C0
+:1037C00060000BE0032105F11D000FF090FBD5F820
+:1037D0001D009149B0FBF1F201FB1200C5F81D007C
+:1037E00070686867B068A8672078252800D0FFDF78
+:1037F000CAE0A07F00F00300022809D05FF00000BB
+:1038000080F0010150460CF0C3F9060003D101E03D
+:103810000120F5E7FFDF3078810702D521782529DF
+:1038200004D040F001003070BDE8F88F022028700D
+:10383000307F287106F11D002D36C5E90206F3E739
+:10384000A07F00F00300022808D0002080F00101D2
+:1038500050460CF09DF9040004D102E00120F5E788
+:10386000A5E1FFDF2078C10604D5072028703D348C
+:103870006C60D9E740F008002070D5E7E07FC00613
+:1038800000D5FFDF307CB28800F0010301B0504664
+:10389000BDE8F04F092106F035BD04B9FFDF7168BE
+:1038A00021B1102204F124001BF00FF8282120463A
+:1038B000FDF7ECFDA07F00F0030002280ED104F11B
+:1038C0002400002300901A4621465046FFF71EFFB1
+:1038D000112807D029212046FDF7D8FD307A84F839
+:1038E0002000A1E7A07F000700D5FFDF14F81E0F1E
+:1038F00040F008002070E782A761E7616178084620
+:1039000061F38200410861F3C3006070307AE070B7
+:103910008AE7A07F00F00300022809D05FF00000D2
+:1039200080F0010150460CF033F9040003D101E0AE
+:103930000120F5E7FFDF022104F185000FF0D7FA3F
+:103940000420287004F5B4706860B4F885002882FB
+:10395000304810387C346C61C5E9028064E703E0CC
+:1039600022E15BE02DE015E0A07F00F003000228DB
+:1039700007D0002080F0010150460CF009F918B979
+:1039800001E00120F6E7FFDF324621465046BDE860
+:10399000F84FE9E504B9FFDF20782128A1D9307973
+:1039A000012803D1E07F40F01000E0773246214645
+:1039B0005046FFF7D9FD2046BDE8F84F2321FDF71B
+:1039C00065BD3279AA8005F108030921504605F04A
+:1039D00010FEE86010B185F8009025E7A07F00F0A8
+:1039E0000300022808D0002080F0010150460CF0AE
+:1039F000CFF8040003D101E00120F5E7FFDF04F177
+:103A0000620102231022081F0BF049FF0770317971
+:103A1000417009E70802002040420F00A07F00F03B
+:103A20000300022808D0002080F0010150460CF06D
+:103A3000AFF8050003D101E00120F5E7FFDF95F8BD
+:103A4000840000F00300012878D1A07F00F0030774
+:103A5000E07FC0F3400616B1022F04D132E095F8A2
+:103A6000A000C0072AD0D5F8601119B395F88320BB
+:103A7000087C62F387000874E27FD5F8601162F376
+:103A800041000874D5F8601166F300000874AEB107
+:103A9000D5F86001102204F1240188351AF015FFD1
+:103AA000287E40F001002876287820F0010005F8F3
+:103AB000880900E016B1022F04D02CE095F88800A8
+:103AC000C00726D0D5F85C1119B395F88320087C7F
+:103AD00062F387000874E27FD5F85C1162F341005D
+:103AE0000874D5F85C1166F3000008748EB1D5F83F
+:103AF0005C01102204F1240188351AF0E6FE2878D2
+:103B000040F0010005F8180B287820F0010005F8B6
+:103B1000A009022F44D0002000EB400005EBC000BC
+:103B200090F88800800709D595F87C00D5F86421C5
+:103B3000400805F17D011032FDF7E9FD8DF8009098
+:103B400095F884006A4600F003008DF8010095F8AE
+:103B500088108DF8021095F8A0008DF8030021461A
+:103B6000504601F047FA2078252805D0212807D0B3
+:103B7000FFDF2078222803D922212046FDF786FC8A
+:103B8000A07F00F0030002280CD0002080F001018B
+:103B900050460CF00FF800283FF451AEFFDF43E62B
+:103BA0000120B9E70120F1E7706847703CE6FFDFCC
+:103BB0003AE670B5FE4C002584F85C5025660DF0A1
+:103BC000A6FC04F11001204604F0B0FE84F8305049
+:103BD00070BD70B50D46FDF727FC040000D1FFDF76
+:103BE0004FF4B87128461AF011FF04F1240028613F
+:103BF000A07F00F00300022808D0012105F1E000B9
+:103C00000DF086FC002800D0FFDF70BD0221F5E733
+:103C10000A46014602F1E0000DF09ABC70B5054677
+:103C2000406886B00178092906D00C2933D00D29C7
+:103C30002FD0FFDF06B070BD46883046FDF7F4FB9D
+:103C4000040000D1FFDF20782128F3D028281BD1E1
+:103C5000686802210C3001F0C2F9A8B16868082137
+:103C6000001D01F0BCF978B104F1240130460AF0DE
+:103C7000B9FF04F0D5FC00B1FFDF06B02046BDE877
+:103C800070402921FDF702BC06B0BDE8704004F089
+:103C900094BE01218171686886883046FDF7C4FBB7
+:103CA000040000D1FFDFA07F00F00301022902D150
+:103CB00020F01000A077207821280AD06868817948
+:103CC00009B1807880B1A07F00F00300022862D0A3
+:103CD000FFDFA07F00F003000228ABD1FDF770FDED
+:103CE0000028A7D0FFDFA5E704F067FEE07FC1074B
+:103CF00029D0800705D594F8200000F01F00102877
+:103D00001FD0052084F82300207829281DD02428DE
+:103D1000DFD1314605200FF0C3FB22212046FDF7FD
+:103D2000B5FBA07F00F00300022832D05FF0000056
+:103D300080F0010130460BF03DFF0028C9D0FFDFC5
+:103D4000C7E70620DEE70420DCE7A07F00F00300E1
+:103D5000022809D05FF0000080F0010130460BF02E
+:103D600017FF050003D101E00120F5E7FFDF252162
+:103D70002046FDF78BFB03208DF80000694605F116
+:103D8000E0000DF0DCFB0228A3D00028A1D0FFDF6B
+:103D90009FE70120CCE704F010FE9AE72DE9F043FD
+:103DA00087B09946164688460746FDF73DFB040056
+:103DB0004BD02078222848D3232846D0E07FC00665
+:103DC00043D4A07F00F00300022809D05FF0000078
+:103DD00080F0010138460BF0DBFE050002D00CE05C
+:103DE0000120F5E7A07F00F00300022805D00121A3
+:103DF000002238460BF0C3FE05466946284601F00E
+:103E000020F9009800B9FFDF45B10098E035056161
+:103E10002078222806D0242804D007E0009900202A
+:103E2000086103E025212046FDF730FB00980121C1
+:103E300041704762868001A9C0E902890DF09AFBB2
+:103E4000022802D0002800D0FFDF07B0BDE8F083D1
+:103E500070B586B00546FDF7E7FA017822291ED92C
+:103E6000807F00F00300022808D0002080F00101CC
+:103E700028460BF08DFE04002FD101E00120F5E76C
+:103E8000FFDF2AE0B4F85E0004F1620630440178F6
+:103E9000427829B121462846FFF715FCB0B9C9E69A
+:103EA000ADF804200921284602AB05F0A2FB0390DF
+:103EB0000028F4D005208DF80000694604F1E000E8
+:103EC0000DF03DFB022801D000B1FFDF02231022DC
+:103ED000314604F15E000BF018FDB4F860000028D4
+:103EE000D0D1A7E610B586B00446FDF79DFA01785B
+:103EF00022291BD9807F00F00300022808D000206F
+:103F000080F0010120460BF043FE040003D101E0E4
+:103F10000120F5E7FFDF06208DF80000694604F177
+:103F2000E0000DF00CFB002800D0FFDF06B010BD54
+:103F30002DE9F05F05460C46002700789046010900
+:103F40003E4604F1080BBA4602297DD0072902D06B
+:103F50000A2909D146E068680178092905D00C29A9
+:103F600030D00D292ED0FFDFBCE114271C26002CF9
+:103F70006BD04088A080FDF757FA5FEA000900D1B6
+:103F8000FFDF99F817005A46400809F11801FDF7BC
+:103F9000BEFB68688089208269684868C4F812009E
+:103FA0008868C4F81600A07E20F0060002E0000039
+:103FB000E801002040F00100A07699F81E0040F0D2
+:103FC00040014DE01A270A26002CD1D08088A0801D
+:103FD000FDF72AFA050000D1FFDF59462846FFF712
+:103FE00043FB7FE10CB1A88BA080287A0B287DD001
+:103FF00006DC01287BD0022808D0032804D135E054
+:104000000D2875D00E2874D0FFDF6BE11E2709261E
+:10401000002CADD0A088FDF707FA5FEA000900D1B7
+:10402000FFDF287B00F003000128207A1BD020F05E
+:1040300001002072297B890861F341002072297BED
+:10404000C90861F3820001E041E1F2E02072297BBE
+:10405000090961F3C300207299F81E0040F0800145
+:1040600089F81E103EE140F00100E2E713270D261B
+:10407000002CAAD0A088FDF7D7F98146807F00F0F8
+:104080000300022808D0002080F00101A0880BF076
+:104090007FFD050003D101E00120F5E7FFDF99F87E
+:1040A0001E0000F00302022A50D0686F817801F0F0
+:1040B00003010129217A4BD021F00101217283787B
+:1040C0009B0863F3410121728378DB0863F382016B
+:1040D000217283781B0963F3C3012172037863F3B0
+:1040E00006112172437863F3C71103E061E0A9E090
+:1040F00090E0A1E0217284F809A0C178A172022A9F
+:1041000029D00279E17A62F30001E1720279520862
+:1041100062F34101E1720279920862F38201E17275
+:104120000279D20862F3C301E1724279217B62F322
+:10413000000121734279520862F3410121734279EF
+:10414000920862F382012173407928E0A86FADE7FD
+:1041500041F00101B2E74279E17A62F30001E172D4
+:104160004279520862F34101E1724279920862F3A6
+:104170008201E1724279D20862F3C301E1720279ED
+:10418000217B62F3000121730279520862F341013D
+:1041900021730279920862F3820121730079C008C9
+:1041A00060F3C301217399F80000232831D9262137
+:1041B00040E018271026E4B3A088FDF735F98346C0
+:1041C000807F00F00300022809D0002080F0010168
+:1041D000A0880BF0DDFC5FEA000903D101E00120BB
+:1041E000F4E7FFDFE868A06099F8000040F0040100
+:1041F00089F8001099F80100800708D50120207384
+:104200009BF8000023286DD92721584651E084F8F7
+:104210000CA067E015270F265CB1A088FDF704F914
+:10422000814606225946E86809F0A8FC0120A073DF
+:10423000A2E041E048463CE016270926E4B3287B8B
+:1042400020724FE0287B19270E26ACB3C4F808A0D3
+:10425000A4F80CA0012807D0022805D0032805D017
+:10426000042803D0FFDF0DE0207207E0697B0428FB
+:1042700001F00F0141F0800121721ED0607A20F020
+:1042800003006072A088FDF7CFF80546007821286A
+:1042900028D0232800D0FFDFA87F00F003000228E9
+:1042A00013D0002080F00101A0880BF083FC2221B4
+:1042B0002846FDF7EBF815E004E0607A20F00300F3
+:1042C000401CDEE7A8F8006011E00120EAE70CB12D
+:1042D0006888A080287A03282ED004280AD00528D0
+:1042E00050D0FFDFA8F800600CB127806680002066
+:1042F000BDE8F09F15270F26002CE3D0A088FDF71E
+:1043000093F8807F00F00300022809D05FF00000DE
+:1043100080F00101A0880BF03BFC050003D101E017
+:104320000120F5E7FFDFD5F81D000622594609F008
+:1043300025FC84F80EA0D5E717270926002CC1D04C
+:10434000A088FDF771F88146807F00F00300022805
+:1043500008D0002080F00101A0880BF019FC0500B6
+:1043600003D101E00120F5E7FFDF6878800701D580
+:10437000022000E00120207299F800002328B1D922
+:10438000272157E719270E26002C9BD0A088FDF780
+:104390004BF85FEA000900D1FFDFC4F808A0A4F8D9
+:1043A0000CA084F808A0A07A40F00300A07299F84D
+:1043B0001F1061F38200A07299F81F10C1F3400230
+:1043C000114205D099F8201001F01F0110292CD0BE
+:1043D00020F00800A07299F81F004108607A61F38C
+:1043E000C3006072697A01F003010129A3D140F092
+:1043F0000400607299F81E0000F003000228E87AB9
+:1044000016D0217B60F300012173AA7A607B62F3EE
+:1044100000006073EA7A520862F341012173A97ABD
+:10442000490861F3410060735CE740F00800D1E7A0
+:10443000617B60F300016173AA7A207B62F3000064
+:104440002073EA7A520862F341016173A97A49083C
+:1044500061F34100207345E710B5FE4C30B10146D1
+:10446000102204F120001AF030FA012084F8300004
+:1044700010BD10B5044600F0D4FDF64920461022C8
+:10448000BDE8104020311AF020BA70B5F14D060099
+:104490004FF0000412D00FF04FF808B110240BE0D9
+:1044A0000621304609F051FB411C04D0286601204A
+:1044B00085F85C0000E00724204670BD0020F7E787
+:1044C000007810F00F0204D0012A05D0022A0CD186
+:1044D00010E0000909D10AE00009012807D00228EC
+:1044E00005D0032803D0042801D0072070470870A6
+:1044F000002070470620704705282AD2DFE800F028
+:1045000003070F171F00087820F0FF001EE008784F
+:1045100020F00F00401C20F0F000103016E008786A
+:1045200020F00F00401C20F0F00020300EE0087852
+:1045300020F00F00401C20F0F000303006E008783A
+:1045400020F00F00401C20F0F000403008700020E8
+:104550007047072070472DE9F041804688B00D462E
+:10456000002708460FF035F8A8B94046FCF75CFF75
+:10457000040003D02078222815D104E043F2020081
+:1045800008B0BDE8F08145B9A07F010603D500F071
+:104590000300022801D01020F2E7A07FC10601D459
+:1045A000010702D50DB10820EAE7E17FC90601D570
+:1045B0000D20E5E700F00300022805D125B12846CB
+:1045C000FEF764FF0700DBD1A07F00F003000228A4
+:1045D00008D0002080F0010140460BF0D9FA060017
+:1045E00002D00FE00120F5E7A07F00F003000228D1
+:1045F0000ED0002080F00101002240460BF0BFFAEF
+:10460000060007D0A07F00F00300022804D009E0D4
+:104610000120EFE70420B3E725B12A4631462046C2
+:10462000FEF758FF6946304600F00BFD009800B9D0
+:10463000FFDF0099022006F1E0024870C1F82480F3
+:104640004A6100220A81A27F02F00302022A1CD0E2
+:1046500001200871287800F00102087E62F3010051
+:1046600008762A78520862F3820008762A7892083F
+:1046700062F3C30008762A78D20862F30410087641
+:1046800024212046FCF702FF33E035B30871301DCA
+:1046900088613078400908777078C0F34000487727
+:1046A000287800F00102887F62F301008877E27FBA
+:1046B00062F382008877E27F520862F3C300887752
+:1046C000727862F304108877A878C87701F1210224
+:1046D00028462031FEF71EFF03E003200871052065
+:1046E000087625212046FCF7D1FEA07F20F080002F
+:1046F000A07701A900980CF03DFF022801D000B17D
+:10470000FFDF38463CE72DE9FF4F534A0D4699B08D
+:104710009A4607CA0BAB002783E807001998FCF7F5
+:1047200083FE060006D03078262806D008201DB06B
+:10473000BDE8F08F43F20200F9E7B07F00F0030913
+:10474000B9F1020F03D00020284302D006E0012077
+:10475000FAE71B98FEF79AFE0028E8D1B07F00F038
+:104760000300022801D11B9979BB022808D0002040
+:1047700080F0010119980BF00BFA040003D101E05D
+:104780000120F5E7FFDF852D28D007DCF5B1812D6D
+:104790001ED0822D1ED0832D08D11DE0862D1FD066
+:1047A000882D1FD0892D1FD08A2D1FD00F2020715A
+:1047B0000F281DD004F0FEF8E0B101208DF8400074
+:1047C000201D11902079B8B165E111E00020EEE7DD
+:1047D0000120ECE70220EAE70320E8E70520E6E70E
+:1047E0000620E4E70820E2E70920E0E70A20DEE708
+:1047F00007209CE711209AE7B9F1020F03D0A56FBB
+:1048000003D1A06F02E0656FFAE7606F804632D097
+:104810004FF0010000904FF0020001902146304619
+:104820001B9AFEF757FE1B98007800F00101A8784C
+:1048300061F30100A870F17F61F38200A870F17F3D
+:10484000490861F3C300A870617861F30410A8708F
+:10485000207803E0E801002068ED0100400928709D
+:104860006078C0F3400068701B988078E870002082
+:104870006871287103E00220009001200190A8785F
+:1048800098F80210C0F3C000C1F3C00108405FEA0D
+:10489000000B2CD050460EF04FFE90BBDAF80C0007
+:1048A0000EF04AFE68BBDAF81C000EF045FE40BB75
+:1048B000DAF80C00A060DAF81C00E06098F801005B
+:1048C000617800F0010041EA4000607098F8021041
+:1048D000C0B2C1F30011891E08406070002020772B
+:1048E000019906F1170002290CD001210BE098F87C
+:1048F0000110607801F00101FD2242EA4101084007
+:10490000E3E732E0002104EB810148610099701C6B
+:10491000022901D0012100E0002104EB810148615E
+:10492000A87800F00300012858D198F8020000F0A0
+:104930000300012852D1B9F1020F04D02A1D691DCC
+:104940001B98FEF7E7FD297998F8040001408DF8DF
+:104950003810687998F8052010408DF83C00014324
+:104960003CD050460EF0E8FD08B11020DFE60AF119
+:1049700010010491B9F1020F18D008465FF0000150
+:1049800004F18C03CDE9000304F5AE7202920EAB84
+:104990005A462046FEF707FE0028E7D1B9F1020F7C
+:1049A00008D0504608D14FF0010107E050464FF0C3
+:1049B0000101E5E70498F5E74FF0000104F1A403D5
+:1049C000CDE9000304F5B072029281F001010FAB52
+:1049D0005A462046FEF7E7FD0028C7D160788007D9
+:1049E00034D4A87898F80210C0F38000C1F3800195
+:1049F00008432BD0297898F800000BAAB9F1020FD0
+:104A000006D032F811204300DA4002F003070AE032
+:104A100032F810204B00DA4012F0030705D0012FC6
+:104A20000BD0022F0BD0032F07D0BBF1000F0DD0FE
+:104A3000012906D0042904D008E00227F5E7012760
+:104A4000F3E7012801D0042800D10427F07F40F0CB
+:104A500001006BF34100F077607881074FF00300AD
+:104A60000CD5A071BBF1000F15D100BF8DF85C0013
+:104A700017AA3146199800F0BDFA0CE00221022F66
+:104A800018D0012F18D0042F22D00020A071F07F61
+:104A900020F00100F07725213046FCF7F7FC10A943
+:104AA00004F1E0000CF04BFD10B1022800D0FFDF54
+:104AB00000203CE6A171D9E7A1710D2104F120008D
+:104AC00019F0A4FF207840F0020020700420CDE708
+:104AD0000120A071DFE72DE9F04387B090468946B9
+:104AE00004460025FCF7A0FC060006D030782728F5
+:104AF00006D0082007B0BDE8F08343F20200F9E7D2
+:104B0000B07F00F00300022808D0002080F00101EF
+:104B100020460BF03DF8040003D101E00120F5E749
+:104B2000FFDFA7795FEA090005D0012821D0B9F19C
+:104B3000020F26D110E0B8F1000F22D1012F05D0CD
+:104B4000022F05D0032F05D0FFDF2DE00C252BE031
+:104B5000012529E0022527E040460EF0EDFCB0B922
+:104B6000032F0ED11022414604F11D0019F0ADFEB5
+:104B70001AE0012F02D0022F03D104E0B8F1000F98
+:104B800012D00720B6E740460EF0D6FC08B1102040
+:104B9000B0E7102104F11D0019F016FF0621404670
+:104BA00008F0D3FFC4F81D002078252140F0020052
+:104BB00020703046FCF76AFC2078C10713D020F043
+:104BC0000100207002208DF8000004F11D00029009
+:104BD0008DF804506946C3300CF0B1FC022803D0B4
+:104BE00010B1FFDF00E02577002083E730B587B004
+:104BF0000D460446FCF718FCA0B1807F00F00300CE
+:104C0000022812D05FF0000080F0010120460AF077
+:104C1000BFFF04000ED028460EF08EFC38B11020E5
+:104C200007B030BD43F20200FAE70120ECE720783C
+:104C3000400701D40820F3E7294604F13D00202273
+:104C4000054619F042FE207840F010002070010760
+:104C50000FD520F00800207007208DF8000069466D
+:104C600004F1E00001950CF06AFC022801D000B1CB
+:104C7000FFDF0020D4E770B50D460646FCF7D4FBF5
+:104C800018B10178272921D102E043F2020070BD5A
+:104C9000807F00F00300022808D0002080F001018E
+:104CA00030460AF075FF040003D101E00120F5E76A
+:104CB000FFDFA079022809D16078C00706D02A4614
+:104CC00021463046FEF7FFFC10B10FE0082070BD12
+:104CD000B4F860000E280BD204F162010223102206
+:104CE000081F0AF0DCFD012101704570002070BD35
+:104CF000112070BD70B5064614460D4608460EF0EC
+:104D00001BFC18B920460EF03DFC08B1102070BD08
+:104D1000A6F57F40FF380ED03046FCF785FB38B152
+:104D2000417822464B08811C1846FCF7F0FC07E04E
+:104D300043F2020070BD2046FDF7F1FA0028F9D1D8
+:104D40001021E01D0EF0D3F8E21D294604F11700F2
+:104D500000F087F9002070BD2DE9F04104468AB0CB
+:104D600015468846002708460EF033FC18B9284639
+:104D70000EF02FFC18B110200AB0BDE8F0812046DB
+:104D8000FCF752FB060003D0307827281BD102E045
+:104D900043F20200F0E7B07F00F00300022809D0E0
+:104DA0005FF0000080F0010120460AF0F1FE0400EF
+:104DB00003D101E00120F5E7FFDF2078400702D5AD
+:104DC0006078800701D40820D6E7B07F00F00300A8
+:104DD000022803D0A06F03D1A16F02E0606FFAE751
+:104DE000616F407800B19DB1487810B1B8F1000F03
+:104DF0000ED0ADB1EA1D06A8E16800F032F910222C
+:104E000006A905F1170019F034FD18B1042707E0D1
+:104E10000720B1E71022E91D04F12D0019F055FD1E
+:104E2000B8F1000F06D0102208F1070104F11D00AF
+:104E300019F04BFD2078252140F00200207030460B
+:104E4000FCF724FB2078C10715D020F0010020706A
+:104E500002208DF8000004F11D0002901030039034
+:104E60008DF804706946B3300CF069FB022803D05A
+:104E700010B1FFDF00E0277700207DE7F8B5154689
+:104E80000E460746FCF7D0FA040004D0207822280A
+:104E900004D00820F8BD43F20200F8BDA07F00F066
+:104EA0000300022802D043F20400F8BD30460EF0A1
+:104EB00043FB18B928460EF03FFB08B11020F8BD9F
+:104EC00000953288B31C21463846FEF71FFC112896
+:104ED00014D00028F3D1297C4A08E17F62F3000155
+:104EE000E1772A7C62F34101E177297C890884F823
+:104EF0002010A17F21F08001A177F8BDA17F0907D3
+:104F0000FBD4D6F80200C4F83600D6F80600C4F880
+:104F10003A003088A0861022294604F1240019F0B6
+:104F2000D4FC287C4108E07F61F38200E077297C93
+:104F300061F3C300E077287C800884F82100A07F1B
+:104F400040F00800A0770020D3E770B50D46064674
+:104F50000BB1072070BDFCF767FA040007D020787A
+:104F6000222802D3A07F400604D4082070BD43F25B
+:104F7000020070BDA5B12946304609F033FE03F0AA
+:104F80004FFB297C4A08E17F62F30001E1772A7C2C
+:104F900062F34101E177297C890884F8201004E05C
+:104FA000304609F042FE03F03BFBA17F21F04001B7
+:104FB000A17770BD70B50D46FCF736FA040005D038
+:104FC00028460EF0DFFA20B1102070BD43F2020037
+:104FD00070BD29462046FEF747FB002070BD04E067
+:104FE00010F8012B0AB100207047491E89B2F7D290
+:104FF0000120704770B51546064603F0DBFC04003F
+:1050000000D1FFDF207820F00F00801C20F0F0009E
+:105010002030207066802868A060BDE8704003F0F2
+:10502000CCBC10B5134C94F83000002808D104F122
+:105030002001A1F110000CF0C4FA012084F8300026
+:1050400010BD10B190F8B9202AB10A4890F8350087
+:1050500018B1002003E0B83001E0064834300860A1
+:10506000704708B50023009313460A460AF08BFFE9
+:1050700008BD0000E8010020F0B5007B059F1E463A
+:1050800014460D46012800D0FFDF0C2030803A2066
+:105090003880002C08D0287A032806D0287B0128E5
+:1050A00000D0FFDF17206081F0BDA889FBE72DE964
+:1050B000F04786B0144691F80C900E9A0D46B9F15F
+:1050C000010F0BD01021007B2E8A8846052807D0BF
+:1050D000062833D0FFDF06B0BDE8F0870221F2E7F3
+:1050E000E8890C2100EB400001EB400018803320E0
+:1050F0001080002CEFD0E889608100271AE000962C
+:10510000688808F1020301AA696900F085FF06EBCF
+:105110000800801C07EB470186B204EB4102BDF892
+:10512000040090810DF1060140460E320CF0B2FAF7
+:105130007F1CBFB26089B842E1D8CCE73420108030
+:10514000E889B9F1010F11D0122148430E301880BF
+:10515000002CC0D0E88960814846B9F1010F00D029
+:105160000220207300270DF1040A1FE00621ECE75E
+:105170000096688808F1020301AA696900F04CFFF3
+:1051800006EB0800801C86B2B9F1010F12D007EBC4
+:10519000C70004EB4000BDF80410C18110220AF1E1
+:1051A0000201103019F091FB7F1CBFB26089B84238
+:1051B000DED890E707EB470104EB4102BDF804009D
+:1051C000D0810AF10201404610320CF063FAEBE79D
+:1051D0002DE9F0470E4688B090F80CC096F80C8088
+:1051E000378AF5890C20109902F10C044FF0000A5F
+:1051F000BCF1030F08D0BCF1040F3ED0BCF1070F87
+:105200007DD0FFDF08B067E705EB850C00EB4C00B5
+:10521000188031200880002AF4D0A8F1060000F0A0
+:10522000FF09558125E0182101A819F0EFFB00972F
+:105230007088434601AA716900F0EEFEBDF80400D3
+:105240002080BDF80600E080BDF808002081A21C87
+:105250000DF10A0148460CF01DFAB9F1000F00D01B
+:1052600018B184F804A0A4F802A007EB080087B2E4
+:105270000A346D1EADB2D6D2C4E705EB850C00EB47
+:105280004C00188032200880002ABBD0A8F105000D
+:1052900000F0FF09558137E000977088434601AA66
+:1052A000716900F0B9FE9DF80600BDF80410E180B8
+:1052B0002179420860F3000162F34101820862F340
+:1052C0008201C20862F3C301020962F304114209B8
+:1052D00062F34511820962F386112171C009607180
+:1052E000BDF80700208122460DF1090148460CF067
+:1052F000D1F918B184F802A0A4F800A000E007E0FA
+:1053000007EB080087B20A346D1EADB2C4D279E74C
+:10531000A8F1020084B205FB08F000F10E0CA3F81E
+:1053200000C035230B80002AA6D0558194810097B8
+:1053300083B270880E32716900F06EFE62E72DE96B
+:10534000F84F1E460A9D0C4681462AB1607A00F548
+:105350008070D080E089108199F80C000C274FF004
+:1053600000084FF00E0A0D2873D2DFE800F09E0708
+:105370000E1C28303846556A737373002146484620
+:105380000095FFF779FEBDE8F88F207B914608284D
+:1053900002D0032800D0FFDF378030200AE000BFB2
+:1053A000A9F80A80EFE7207B9146042800D0FFDFB0
+:1053B000378031202880B9F1000FF1D1E3E7207B5D
+:1053C0009146042800D0FFDF37803220F2E7207BAF
+:1053D0009146022800D0FFDF37803320EAE7207BA8
+:1053E0001746022800D0FFDF3420A6F800A028804E
+:1053F000002FC8D0A7F80A80C5E7207B17460428ED
+:1054000000D0FFDF3520A6F800A02880002FBAD0FA
+:105410004046A7F80A8012E0207B1746052802D0F4
+:10542000062800D0FFDF1020308036202880002F93
+:10543000A9D0E0897881A7F80E80B9F80E00B8816C
+:10544000A1E7207B9146072800D0FFDF3780372077
+:10545000B0E72AE04FF0120018804FF03800170034
+:10546000288090D0E0897881A7F80E80A7F8108076
+:1054700099F80C000A2805D00B2809D00C280DD06B
+:10548000FFDF80E7207B0A2800D0FFDF01200AE051
+:10549000207B0B2800D0FFDF042004E0207B0C28B9
+:1054A00000D0FFDF052038736DE7FFDF6BE770B5D5
+:1054B0000C460546FBF7B8FF20B10078222804D23D
+:1054C000082070BD43F2020070BD052128460AF095
+:1054D0005FFB206008B1002070BD032070BD30B4B8
+:1054E0004880087820F00F00C01C20F0F0009030B9
+:1054F00001F8080B1DCA81E81D0030BC03F05DBA3D
+:105500002DE9FF4784B0002782460297079890460E
+:105510008946123006F086FA401D20F003060798EF
+:1055200028B907A95046FFF7C2FF002853D1B9F1A7
+:10553000000F05D00798017B19BB052504681BE007
+:1055400098F80000092803D00D2812D0FFDF45E0AD
+:10555000079903254868B0B3497B4288714391425B
+:1055600038D98AB2B3B2011D0AF085F90446078022
+:1055700002E0079C042508340CB1208810B1032DEB
+:1055800028D02BE007980121123006F07DFAADF803
+:105590000C00024602AB2946504604F02AF80700E8
+:1055A00001D1A01C029007983A461230C8F80400B6
+:1055B000A8F802A003A94046029B06F072FAC0B107
+:1055C000072814D200E005E0DFE800F0060811111A
+:1055D0000F0A0C00132015E6002013E6112011E637
+:1055E00008200FE643F203000CE607200AE603203A
+:1055F00008E6BDF80C002346CDE900702A46504667
+:10560000079900F019FD57B9032D08D10798B3B2D7
+:10561000417B406871438AB2011D0AF040F9B9F13B
+:10562000000FD9D0079981F80C90D5E72DE9FE4FEE
+:1056300091461A881C468A468046FAB102AB494612
+:1056400003F0D7FF050019D04046A61C27880AF0B2
+:10565000E3FB3246072629463B46009609F0F1FF58
+:1056600020882346CDE900504A465146404600F086
+:10567000E3FC002020800120BDE8FE8F0020FBE736
+:1056800010B586B01C46AAB104238DF800301388EB
+:10569000ADF808305288ADF80A208A788DF80E20CF
+:1056A0000988ADF80C1000236A462146FFF728FF51
+:1056B00006B010BD1020FBE770B50D4605210AF0BD
+:1056C00067FA040000D1FFDF294604F11200BDE8AB
+:1056D000704006F0C2B92DE9F8430D468046002619
+:1056E00003F068F904462878102878D2DFE800F043
+:1056F000773B34533131123131310831313131316D
+:105700002879001FC0B2022801D0102810D114BB84
+:10571000FFDF35E004B9FFDF052140460AF038FA23
+:10572000007B032806D004280BD0072828D0FFDFF1
+:10573000072655E02879801FC0B2022820D050B13A
+:10574000F6E72879401FC0B2022819D0102817D0D8
+:10575000EEE704B9FFDF13E004B9FFDF2879012881
+:105760000ED1172137E0052140460AF011FA070053
+:1057700000D1FFDF07F11201404606F04BF92CB1D2
+:105780002A4621464046FFF7AAFE29E0132140465B
+:10579000FDF7FAF824E004B9FFDF052140460AF0DE
+:1057A000F7F9060000D1FFDF694606F1120006F0A6
+:1057B0003BF9060000D0FFDFA988172901D2172284
+:1057C00000E00A46BDF80000824202D9014602E02C
+:1057D00005E01729C5D3404600F03EFCD0E7FFDFC7
+:1057E0003046BDE8F883401D20F0030219B102FBEA
+:1057F00001F0001D00E000201044704713B5009830
+:1058000050B100244FEA0D0009F0DFFF002C02D157
+:10581000F74A009911601CBD01240020F4E72DE92E
+:10582000F0470C4615462421204619F0EFF805B93B
+:10583000FFDFA87860732888DFF8B4A3401D20F04C
+:105840000301AF788946DAF8000009F0DCFF0600B2
+:1058500000D1FFDF4FF000082660A6F8008077B186
+:1058600009FB07F1091D0AD0DAF8000009F0CBFFA7
+:10587000060000D1FFDF6660C6F8008001E0C4F8D2
+:105880000480298804F11200BDE8F04706F0B4B89E
+:105890002DE9F047804601F112000D46814606F0E1
+:1058A000C1F8401DD24F20F003026E7B14462968D8
+:1058B000386809F0D3FF3EB104FB06F2121D03D095
+:1058C0006968386809F0CAFF05200AF009F904463A
+:1058D00005200AF00DF9201A012802D1386809F0D4
+:1058E00087FF49464046BDE8F04706F09AB870B5D4
+:1058F000054605210AF04CF9040000D1FFDF04F150
+:1059000012012846BDE8704006F084B82DE9F04F3A
+:1059100091B04FF0000BADF834B0ADF804B047884B
+:105920000C4605469246052138460AF031F9060034
+:1059300000D1FFDF24B1A780A4F806B0A4F808B016
+:10594000297809220B20B2EB111F7DD12A7A04F1AC
+:10595000100138274FF00C084FF001090391102A6D
+:1059600073D2DFE802F072F2F1F07F08D2888D9FE7
+:105970003DDBF3EEB6B6307B022800D0FFDFA8890E
+:1059800008EBC001ADF804103021ADF83410002C44
+:1059900025D06081B5F80E9000271DE004EBC70804
+:1059A000317C88F80E10F189A8F80C10CDF8009021
+:1059B0006888042304AA296900F02EFBBDF81010A2
+:1059C000A8F8101009F10400BDF812107F1C1FFA8E
+:1059D00080F9A8F81210BFB26089B842DED80DE194
+:1059E000307B022800D0FFDFE98908EBC100ADF869
+:1059F00004003020ADF83400287B0A90001FC0B2AC
+:105A00000F90002CEBD06181B5F81090002725E0B5
+:105A1000CDF800906888696903AA0A9B00F0FCFA37
+:105A20000A9804EBC70848441FFA80F908F10C02F1
+:105A300004A90F980BF02EFE18B188F80EB0A8F844
+:105A40000CB0BDF80C1001E0D4E0CFE0A8F81010C5
+:105A5000BDF80E107F1CA8F81210BFB26089B842C2
+:105A6000D6D8CBE00DA8009001AB2246294630469F
+:105A7000FFF71DFBC2E0307B082805D0FFDF03E005
+:105A8000307B082800D0FFDFE8891030ADF8040033
+:105A90003620ADF83400002C3FD0A9896181F1890E
+:105AA000A18127E0307B092800D0FFDFA88900F121
+:105AB0000C01ADF804103721ADF83410002C2CD0B7
+:105AC0006081E8890090AB89688804F10C0229693B
+:105AD00056E0E8893921103080B2ADF80400ADF805
+:105AE0003410002C74D0A9896181287A0E280AD03C
+:105AF00002212173E989E181288A0090EB89688875
+:105B00006969039A3CE00121F3E70DA8009001AB1D
+:105B1000224629463046FFF75BFB6FE0307B0A28C0
+:105B200000D0FFDF1220ADF80400ADF834704CB3A4
+:105B3000A9896181A4F810B0A4F80EB084F80C9083
+:105B40005CE020E002E031E039E042E0307B0B280D
+:105B500000D0FFDF288AADF834701230ADF80400B1
+:105B600084B104212173A9896181E989E181298AAC
+:105B70002182688A00902B8A688804F11202696980
+:105B800000F04AFA3AE0307B0C2800D0FFDF122008
+:105B9000ADF80400ADF834703CB305212173A4F8CE
+:105BA0000AB0A4F80EB0A4F810B027E00DA8009039
+:105BB00001AB224629463046FFF75EFA1EE00DA8EB
+:105BC000009001AB224629463046FFF7B8FB15E0AE
+:105BD00036E03B21ADF80400ADF8341084B3A4F8EE
+:105BE0000690A4F808B084F80AB007E0FFDF05E0EB
+:105BF00010000020297A012919D0FFDFBDF8040028
+:105C0000AAF800007CB1BDF834002080BDF8040083
+:105C10006080BDF83400392805D03B2803D03C28EB
+:105C200001D086F80CB011B00020BDE8F08F3C2107
+:105C3000ADF80400ADF8341014B1697AA172DDE753
+:105C4000FFE7AAF80000EEE72DE9F84356880F4673
+:105C5000804615460521304609F09AFF040000D120
+:105C6000FFDF123400943B46414630466A6806F036
+:105C70004AF8B6E570B50D46052109F089FF040024
+:105C800000D1FFDF294604F11200BDE8704005F0A5
+:105C9000D6BE70B50D46052109F07AFF040000D18B
+:105CA000FFDF294604F11200BDE8704005F0F4BEA4
+:105CB00070B50546052109F06BFF040000D1FFDF38
+:105CC00004F1080321462846BDE870400422ADE4F3
+:105CD00070B50546052109F05BFF040000D1FFDF28
+:105CE000214628462368BDE8704005229EE470B531
+:105CF0000646052109F04CFF040000D1FFDF04F146
+:105D0000120005F08FFE401D20F0030511E0011D7B
+:105D100000880322431821463046FFF787FC0028FD
+:105D20000BD0607BABB2684382B26068011D09F0A2
+:105D3000ECFD606841880029E9D170BD70B50E4660
+:105D4000054602F037FE040000D1FFDF012020727B
+:105D500066726580207820F00F00C01C20F0F000F3
+:105D600030302070BDE8704002F027BE2DE9F043CE
+:105D70008BB00D461446814606A9FFF798FB002814
+:105D800014D14FF6FF7601274FF420588CB1032031
+:105D90008DF800001020ADF8100007A8059007AAA4
+:105DA000204604A90BF095FC78B107200BB0BDE8A4
+:105DB000F0830820ADF808508DF80E708DF80000C3
+:105DC000ADF80A60ADF80C800CE00698A17801747B
+:105DD0002188C1818DF80E70ADF80850ADF80C80A7
+:105DE000ADF80A606A4602214846069BFFF788FB29
+:105DF000DCE708B501228DF8022042F60202ADF878
+:105E000000200A4603236946FFF73AFC08BD08B59F
+:105E100001228DF8022042F60302ADF800200A4666
+:105E200004236946FFF72CFC08BD00B587B079B1A3
+:105E300002228DF800200A88ADF808204988ADF8C4
+:105E40000A1000236A460521FFF75AFB07B000BD80
+:105E50001020FBE709B1072312E40720704770B553
+:105E600088B00D461446064606A9FFF720FB002819
+:105E70000ED17CB10620ADF808508DF80000ADF8C9
+:105E80000A40069B6A460821DC813046FFF738FB52
+:105E900008B070BD05208DF80000ADF80850F0E79F
+:105EA00000B587B059B107238DF80030ADF8082050
+:105EB000039100236A460921FFF722FBC6E7102061
+:105EC000C4E770B588B00C460646002506A9FFF762
+:105ED000EEFA0028DCD106980121123005F0D4FD3D
+:105EE0009CB12178062921D2DFE801F020050516B2
+:105EF0000318801E80B2C01EE28880B20AB1A36877
+:105F00001BB1824203D90C20C2E71020C0E704294C
+:105F100004D0A08850B901E00620B9E7012913D0C8
+:105F2000022905D004291CD005292AD00720AFE773
+:105F300009208DF800006088ADF80800E088ADF811
+:105F40000A00A068039023E00A208DF80000608812
+:105F5000ADF80800E088ADF80A00A0680A250390B3
+:105F600016E00B208DF800006088ADF80800A088CE
+:105F7000ADF80A00E088ADF80C00A0680B2504908D
+:105F800006E00C208DF8000060788DF808000C25E4
+:105F90006A4629463046069BFFF7B2FA78E700B515
+:105FA00087B00D228DF80020ADF8081000236A4656
+:105FB0001946FFF7A5FA49E700B587B071B102228B
+:105FC0008DF800200A88ADF808204988ADF80A103D
+:105FD00000236A460621FFF793FA37E7102035E7DA
+:105FE00070B586B0064601200D46ADF808108DF854
+:105FF0000000014600236A463046FFF781FA04009C
+:1060000008D12946304601F0BDFA0021304601F0A2
+:10601000D7FA204606B070BDF8B51C4615460E46A8
+:10602000069F09F0E7FE2346FF1DBCB231462A4613
+:10603000009409F0D2FAF8BD30B41146DDE902420D
+:106040003CB1032903D0002330BC04F05BB9012329
+:10605000FAE71A8030BC704770B50C460546FFF76A
+:106060002BFB2146284601F09CFA2846BDE87040EB
+:10607000012101F0A5BA000018B18178012938D1B9
+:1060800001E010207047018842F60112881A9142FF
+:1060900031D018DC42F60102A1EB020091422AD075
+:1060A0000CDC41B3B1F5C05F25D06FF4C0500818C7
+:1060B00021D0A0F57060FF381BD11CE001281AD058
+:1060C00002280AD117E0B0F5807F14D008DC01283F
+:1060D00011D002280FD003280DD0FF2809D10AE0E3
+:1060E000B0F5817F07D0A0F58070033803D0012878
+:1060F00001D0002070470F2070470A281ED007DC0F
+:1061000018D2DFE800F0191B1F1F171F231D1F21C6
+:10611000102815D008DC0B2812D00C2810D00D2820
+:1061200016D00F2806D10DE011280BD084280BD0F3
+:1061300087280FD003207047002070470520704744
+:10614000072070470F2070470420704706207047D3
+:106150000C20704743F20200704738B50C4605002A
+:1061600041D06946FEF7ACF9002819D19DF800101E
+:10617000607861F3020060706946681CFEF7A0F960
+:1061800000280DD19DF80010607861F3C5006070A3
+:10619000A978C1F34101012903D0022905D00720C4
+:1061A00038BD217821F0200102E0217841F0200162
+:1061B0002170410704D0A978C90861F38610607086
+:1061C000607810F0380F07D0A978090961F3C7107B
+:1061D000607010F0380F02D16078400603D5207847
+:1061E00040F040002070002038BD70B5044600200B
+:1061F000088015466068FFF7B0FF002816D1208997
+:10620000A189884211D860688078C0070AD0B1F5AA
+:10621000007F0AD840F20120B1FBF0F200FB12101F
+:10622000288007E0B1F5FF7F01D90C2070BD01F295
+:1062300001212980002070BD10B50478137864F323
+:10624000000313700478640864F341031370047846
+:10625000A40864F3820313700478E40864F3C303AE
+:1062600013700478240964F3041313700478640928
+:1062700064F3451313700078800960F3861313707C
+:1062800031B10878C10701D1800701D5012000E0B4
+:10629000002060F3C713137010BD4278530702D07B
+:1062A00002F0070306E012F0380F02D0C2F3C20377
+:1062B00000E001234A7863F302024A70407810F04C
+:1062C000380F02D0C0F3C20005E0430702D000F04F
+:1062D000070000E0012060F3C5024A7070472DE915
+:1062E000F04F95B00D00824612D01221284618F0CA
+:1062F0006BFB4FF6FF7B05AA0121584607F065FAB4
+:106300000024264637464FF420586FF4205972E097
+:10631000102015B0BDE8F08F9DF81E0001280AD1AD
+:10632000BDF81C1041450BD011EB09000AD0012823
+:106330000CD002280CD0042C0ED0052C0FD10DE06F
+:10634000012400E00224BDF81A6008E0032406E0FE
+:106350000424BDF81A7002E0052400E00624BDF80C
+:106360001A10514547D12C74BEB34FF0000810AA43
+:106370004FF0070ACDE90282CDE900A80DF13C09F2
+:106380001023CDF8109042463146584607F0D0FA17
+:1063900008BBBDF83C002A46C0B210A90BF07AF940
+:1063A000C8B9AE81CFB1CDE900A80DF1080C0AAE95
+:1063B00040468CE84102132300223946584607F034
+:1063C000B7FA40B9BDF83C00F11CC01EC0B22A1D8E
+:1063D0000BF060F910B103209BE70AE0BDF829003B
+:1063E000E881062C05D19DF81E00A872BDF81C009E
+:1063F000288100208DE705A807F0F3F900288BD04D
+:10640000FFF77BFE85E72DE9F0471C46DDE90978BB
+:10641000DDF8209015460E00824600D1FFDF0CB15A
+:10642000208818B1D5B11120BDE8F087022D01D028
+:10643000012100E0002106F1140006F0B7F8A8F8E9
+:10644000000002463B462946504603F0D2F8C9F800
+:10645000000008B9A41C3C600020E5E71320E3E736
+:10646000F0B41446DDE904528DB1002314B1022CBE
+:1064700009D101E0012306E00D7CEE0703D025F0F1
+:10648000010501230D742146F0BC03F03BBF1A80C7
+:10649000F0BC70472DE9FE4F91461A881C468A468B
+:1064A0008046FAB102AB494603F0A3F8050019D0C3
+:1064B0004046A61C278809F0AFFC3246072629462D
+:1064C0003B46009609F0BDF820882346CDE90050F0
+:1064D0004A4651464046FFF7C3FF00202080012076
+:1064E000BDE8FE8F0020FBE72DE9F04786B091461E
+:1064F000DDE90E460F46824603AA05A904A8109DB1
+:106500008DE807009846324621465046FFF77BFF4C
+:10651000049909B1012200E000222A70002817D155
+:10652000F84A03AB1060059A009104F11400CDE91C
+:1065300001204A463946504606F0EFFB90B1082844
+:106540000ED2DFE800F00407040D0D090B0B00204C
+:1065500006B069E71120FBE70720F9E70820F7E715
+:106560000320F5E7BDF80C100498CDE9000143467F
+:10657000324621465046FFF773FFE8E72DE9F04326
+:1065800089B00D46DDE9108781461C461646142168
+:1065900003A818F03BFA012002218DF810108DF8A5
+:1065A0000C008DF81170ADF8146064B1A278D207B8
+:1065B00009D08DF81600E088ADF81A00A088ADF873
+:1065C0001800A068079008A80095CDE90110424680
+:1065D00003A948466B68FFF787FF09B0BDE8F08361
+:1065E000F0B58BB00024064606940794072708945C
+:1065F00005A80994019400970294CDE903400D4643
+:1066000010232246304607F093F978B90AA806A964
+:10661000019400970294CDE90310BDF814300022D4
+:106620002946304606F05AFF002801D0FFF765FDE5
+:106630000BB0F0BD06F0FABD2DE9FC410C468046DA
+:10664000002602F0B7F9054620780D287ED2DFE853
+:1066500000F0BC0713B325BD49496383AF959B0088
+:10666000A848006820B1417841F010014170ADE0C8
+:10667000404602F0CFF9A9E00421404609F088FA2B
+:10668000070000D1FFDF07F11401404605F022FFAB
+:10669000A5BB13214046FCF777F997E0042140465B
+:1066A00009F076FA070000D1FFDFE088ADF80000BE
+:1066B0000020B8819DF80000010704D5C00602D56E
+:1066C000A088B88105E09DF8010040067ED5A0882D
+:1066D000F88105B9FFDF22462946404601F066FCF5
+:1066E000022673E0E188ADF800109DF8011009065C
+:1066F0000FD5072803D006280AD00AE024E0042199
+:10670000404609F045FA060000D1FFDFA088F0817D
+:106710000226CDB9FFDF17E00421404609F038FA20
+:10672000070000D1FFDF07F1140006F0B6FD90F07E
+:10673000010F02D1E079000648D5387C022640F0EE
+:106740000200387405B9FFDF224600E03DE029462B
+:10675000404601F02BFC39E00421404609F018FACC
+:10676000017C002D01F00206C1F340016171017C42
+:1067700021F002010174E7D1FFDFE5E702260121E4
+:10678000404602F079F921E00421404609F000FA80
+:106790000546606800902089ADF804000122694632
+:1067A000404602F08AF9287C20F0020028740DE0AF
+:1067B000002DC9D1FFDFC7E7022600214046FFF7C1
+:1067C00068FA002DC0D1FFDFBEE7FFDF3046BDE82D
+:1067D000FC813EB50C0009D001466B4601AA0020A1
+:1067E00007F028F920B1FFF788FC3EBD10203EBD20
+:1067F00000202080A0709DF8050002A900F007008D
+:10680000FDF77AFE50B99DF8080020709DF805004C
+:1068100002A9C0F3C200FDF76FFE08B103203EBD20
+:106820009DF8080060709DF80500C109A07861F32B
+:106830000410A0709DF80510890961F3C300A070D1
+:106840009DF80410890601D5022100E0012161F3C1
+:1068500042009DF8001061F30000A07000203EBDD2
+:1068600070B5144606460D4651EA040005D075B1D0
+:1068700008460CF0A5FE78B901E0072070BD294656
+:10688000304607F038F910B1BDE8704035E454B136
+:1068900020460CF095FE08B1102070BD2146304610
+:1068A000BDE8704095E7002070BD2DE9FC5F0C4607
+:1068B00090460546002701780822007A3E46B2EB52
+:1068C000111F7DD104F10A0100910A31821E4FF09F
+:1068D000020A04F1080B0191092A72D2DFE802F0E2
+:1068E000EDE005F528287BAACE006888042109F090
+:1068F0004FF9060000D1FFDFB08928B152270726E3
+:10690000C3E000004C02002051271026002C7DD04F
+:106910006888A0800120A071A88900220099FFF753
+:106920009FFF002873D1A8892081288AE081D1E0C7
+:10693000B5F81290072824D1E87B000621D551270D
+:1069400009F1140086B2002CE1D0A8890022009938
+:10695000FFF786FF00285AD16888A08084F806A037
+:10696000A88920810120A073288A2082A4F812908F
+:10697000A88A009068884B46A969019A01F0F3FA49
+:10698000A8E0502709F1120086B2002C3ED0A88959
+:1069900000225946FFF764FF002838D16888A0809C
+:1069A000A889E080287A072813D002202073288A3B
+:1069B000E081E87BC0096073A4F81090A88A01E028
+:1069C00085E082E0009068884B4604F11202A969D4
+:1069D000D4E70120EAE7B5F81290512709F1140035
+:1069E00086B2002C66D06888042109F0D1F883466D
+:1069F0006888A080A88900220099FFF731FF00284D
+:106A00006ED184F806A0A889208101E052E067E0F9
+:106A10000420A073288A2082A4F81290A88A0090EB
+:106A200068884B46A969019A01F09DFAA989ABF8DB
+:106A30000E104FE06888FAF7F7FC074668880421D3
+:106A400009F0A6F8064607B9FFDF06B9FFDF687B45
+:106A5000C00702D05127142601E0502712264CB35C
+:106A60006888A080502F06D084F806A0287B59465D
+:106A700001F089FA2EE0287BA11DF9E7FE49A889DB
+:106A80004989814205D1542706269CB16888A08097
+:106A900020E053270BE06888A080A889E08019E0F7
+:106AA0006888042109F074F800B9FFDF552708262B
+:106AB000002CF0D1A8F8006011E056270726002C22
+:106AC000F8D06888A080002013E0FFDF02E00128F2
+:106AD00008D0FFDFA8F800600CB127806680002096
+:106AE000BDE8FC9F57270726002CE3D06888A080CC
+:106AF000687AA071EEE7401D20F0030009B1414320
+:106B0000091D01EB4000704713B5DB4A00201071EE
+:106B1000009848B10024684608F057FE002C02D1C6
+:106B2000D64A009911601CBD01240020F4E770B51D
+:106B30000D46064686B014465C21284617F066FFCF
+:106B400004B9FFDFA0786874A2782188284601F094
+:106B500044FA0020A881E881228805F1140130461A
+:106B600005F09DFC6A460121304606F02EFE19E034
+:106B70009DF80300000715D5BDF806103046FFF755
+:106B80002FFD9DF80300BDF8061040F010008DF8B1
+:106B90000300BDF80300ADF81400FF233046059A4A
+:106BA00006F074FF684606F01CFE0028E0D006B030
+:106BB00070BD10B50C4601F1140005F0A7FC0146AC
+:106BC000627C2046BDE8104001F03CBA70B5054635
+:106BD000042108F0DDFF040000D1FFDF04F11401FF
+:106BE0000C46284605F076FC21462846BDE8704054
+:106BF00005F077BC70B58AB00C460646FAF714FC6F
+:106C0000050014D02878222827D30CB1A08890B191
+:106C100001208DF80C0003208DF8100000208DF865
+:106C2000110054B1A088ADF81800206807E043F2C5
+:106C300002000AB070BD0920FBE7ADF8180005900E
+:106C40000421304608F0A4FF040000D1FFDF04F166
+:106C5000140005F072FC000701D40820E9E701F0F8
+:106C6000A9FE60B108A802210094CDE9011095F8B1
+:106C7000232003A930466368FFF736FCD9E71120CB
+:106C8000D7E72DE9F04FB2F802A0834689B0154648
+:106C900089465046FAF7C8FB07460421504608F0DB
+:106CA00077FF0026044605964FF002080696ADF8D9
+:106CB0001C6007B9FFDF04B9FFDF4146504603F00F
+:106CC00088FE60B907AA06A905A88DE80700424614
+:106CD000214650466368FFF796FB00B1FFDF664828
+:106CE00007AB0660DDE9051204F11400CDF8009051
+:106CF000CDE90320CDE9013197F8232059465046CC
+:106D00006B6805F063FC06000AD0022E04D0032E47
+:106D100014D0042E00D0FFDF09B03046BDE8F08F5C
+:106D2000BDF81C000028F7D00599CDE900104246B7
+:106D3000214650466368FFF793FBEDE7687840F023
+:106D400008006870E8E72DE9F04F9BB004464FF06B
+:106D500000084948ADF85480ADF83080ADF8508057
+:106D6000A0F80880ADF81480ADF81880ADF8208048
+:106D7000ADF81C80007916460D464746012808D01C
+:106D8000022806D0032804D0042802D008201BB013
+:106D9000C4E720460CF0D0FBD0BB28460CF0CCFB5F
+:106DA000B0BB60680CF015FC90BB606848B16089AE
+:106DB0002189884202D8B1F5007F01D90C20E6E78D
+:106DC00080460BAA06A92846FFF70FFA0028DED155
+:106DD00068688078C0F34100022808D19DF8190046
+:106DE00010F0380F03D028690CF0EAFB80B905A930
+:106DF0002069FFF7B2F90028C9D1206950B1607845
+:106E000080079DF8150000F0380002D5C0B301E0FE
+:106E100011E0A8BB9DF8140080060ED59DF8150062
+:106E200010F0380F03D060680CF0CAFB18B9606826
+:106E30000CF0CFFB08B11020A9E707A96069FFF7A4
+:106E40008CF90028A3D1606940B19DF81D0000F0C5
+:106E5000070101293FD110F0380F3CD008A9A069E3
+:106E6000FFF77BF9002892D19DF81C00800632D4F0
+:106E70009DF82000800604E04C0200201400002051
+:106E800029E028D4A06940B19DF8210000F0070155
+:106E9000012920D110F0380F1DD0E06818B100781A
+:106EA000C8B11C2817D20EAA611C2046FFF7C4F9EE
+:106EB0000120B94660F30F27BA4607468DF84E0009
+:106EC00042F60300ADF84C000DF13B0217A928680B
+:106ED0000AF0FFFB08B1072059E79DF85C0016A9EE
+:106EE000CDF80090C01CCDE9019100F0FF0B00230C
+:106EF0000BF20122514613A806F0AAFBF0BBBDF825
+:106F000058000990FE482A8929690092CDE90110AC
+:106F10006B89BDF82C202868069906F099FB0100C2
+:106F20007ED120784FF0020AC10601D480062BD50D
+:106F3000ADF80C90606950B907A906A8FFF7ADF944
+:106F40009DF81D0020F00700401C8DF81D009DF8E5
+:106F50001C008DF84E7040F0C8008DF81C0042F601
+:106F60000210ADF84C000CA903AACDF800A0CDE9A1
+:106F70000121002340F2032213A800E01EE007993C
+:106F800006F066FB01004BD1DD484D4608385B46F4
+:106F90000089ADF839000EA8CDE90290CDF8049033
+:106FA000CDF810904FF007090022CDF80090BDF801
+:106FB00058104FF6FF7006F091FA10B1FFF79DF8E8
+:106FC000E5E69DF83800000625D52946012060F346
+:106FD0000F218DF84E704FF42450ADF84C00ADF8F1
+:106FE000105062789DF81000002362F300008DF8C5
+:106FF00010006278CDF800A0520862F341008DF8CD
+:10700000100004AACDE9012540F2032213A806F0DE
+:107010001FFB010004D1606888B32069A8B900E0B3
+:1070200086E005A906A8FFF738F96078800706D43E
+:107030009DF8150020F038008DF8150005E09DF84A
+:10704000140040F040008DF814008DF84E7042F6A8
+:107050000110ADF84C00208940F20121B0FBF1F2A3
+:1070600001FB1202606814ABCDF80080CDE901038A
+:10707000002313A8059906F0EBFA010058D12078F7
+:10708000C00729D0ADF80C50A06950B908A906A8CE
+:10709000FFF703F99DF8210020F00700401C8DF850
+:1070A00021009DF820008DF84E7040F040008DF8D2
+:1070B000200042F60310ADF84C0015A903AACDF844
+:1070C00000A0CDE90121002340F2032213A8089972
+:1070D00006F0BEFA01002BD1E06868B32946012012
+:1070E00060F30F218DF84E7042F60410ADF84C009D
+:1070F000E068002302788DF8602040788DF8610008
+:10710000E06818AA4088ADF86200E06800798DF860
+:107110006400E068C088ADF86500CDF80090CDE966
+:1071200001254FF4027213A806F092FA010003D071
+:10713000099800F0B3FF2AE671480321083801716D
+:1071400056B100893080BDF850007080BDF8300025
+:10715000B080BDF85400F080002018E670B501251D
+:107160008AB016460B46012802D0022816D104E048
+:107170008DF80E504FF4205003E08DF80E5042F67B
+:107180000100ADF80C005BB10024601C60F30F241B
+:1071900004AA08A918460AF09CFA18B1072048E585
+:1071A000102046E504A99DF820205548CDE900218E
+:1071B000801E02900023214603A802F2012206F05D
+:1071C00047FA10B1FEF799FF33E54D4808380EB184
+:1071D000C1883180057100202BE5F0B593B00746DA
+:1071E00001268DF83E6041F60100ADF83C0012AA80
+:1071F0000FA93046FFF7B2FF002848D1404C0025C8
+:10720000083CE7B31C2102A817F000FC9DF8080019
+:107210008DF83E6040F020008DF8080042F6052011
+:10722000ADF83C000E959DF83A00119520F006004F
+:10723000801C8DF83A009DF838006A4620F0FF0067
+:107240008DF838009DF8390009A920F0FF008DF86D
+:1072500039000420ADF82C00ADF830000EA80A90DB
+:1072600011A80D900FA80990ADF82E5002A8FFF7B5
+:107270006AFD00280BD1BDF80000608100E008E045
+:10728000BDF80400A081401CE0812571002013B0EE
+:10729000F0BD6581A581BDF84800F4E72DE9F74F01
+:1072A0001749A0B00024083917940A79A146012A89
+:1072B00004D0022A02D0082023B02FE5CA888242D7
+:1072C00001D00620F8E721988A46824201D10720A2
+:1072D000F2E701202146ADF848004FF6FF7860F351
+:1072E0000F21ADF84A808DF86E0042F6020B069130
+:1072F0008DF87240ADF86CB0ADF870401CA901E09B
+:10730000540200201391ADF8508012A806F08DFAB7
+:1073100000252E462F460DAB072212A9404606F047
+:1073200087FA78B10A285DD195B38EB3ADF8645071
+:10733000ADF866609DF85E008DF8144019AC012828
+:1073400064D06BE09DF83A001FB3012859D1BDF815
+:10735000381059451FD118A809A901940294CDE904
+:10736000031007200090BDF836101023002240467D
+:1073700006F0DEFAB0BBBDF86000042801D0062894
+:107380004AD1BDF82410219881423AD10F2093E7C9
+:107390003AE0012835D1BDF83800B0F5205F03D0C0
+:1073A00042F6010188422CD1BAF80600BDF8361029
+:1073B000884201D1012700E0002705B19EB1219844
+:1073C00081421ED118A809AA01940294CDE9032094
+:1073D000072000900D4610230022404606F0A8FA30
+:1073E00000B902E02DE04E460BE0BDF86000022837
+:1073F00001D0102810D1C0B217AA09A90AF04AF981
+:1074000050B9BDF8369086E7052055E705A917A8BD
+:10741000221D0AF05EF908B103204DE79DF8140023
+:107420000023001DC2B28DF8142022980092CDE9ED
+:1074300001401BA8069906F00BF910B902228AF840
+:107440000420FEF75AFE37E710B50B46401E88B001
+:1074500084B205AA00211846FEF7EEFE00200DF1C9
+:10746000080C06AA05A901908CE8070007200090E7
+:107470000123002221464FF6FF7006F02FF8044644
+:10748000BDF81800012800D0FFDF2046FEF735FECA
+:1074900008B010BDF0B5FF4F044687B038790E46EE
+:1074A000032804D0042802D0082007B0F0BD04AAA5
+:1074B00003A92046FEF799FE0500F6D160688078A2
+:1074C000C0F3410002280AD19DF80D0010F0380FDA
+:1074D00005D020690CF074F808B11020E5E7208988
+:1074E00005AA21698DE807006389BDF8102020688E
+:1074F000039906F0ADF810B1FEF7FFFDD5E716B120
+:10750000BDF814003080042038712846CDE7F8B566
+:107510000C0006460BD001464FF6FF7500236A4665
+:10752000284606F087FA20B1FEF7E7FDF8BD1020E7
+:10753000F8BD69462046FEF710FE0028F8D1A07875
+:10754000314600F001032846009A06F09FFAEBE767
+:1075500030B587B0144600220DF1080C05AD01923C
+:107560008CE82C00072200920A46014623884FF639
+:10757000FF7005F0B3FFBDF814102180FEF7BDFDCC
+:1075800007B030BD70B50D46042108F001FB0400C2
+:1075900000D1FFDF294604F11400BDE8704004F07B
+:1075A000C5BF70B50D46042108F0F2FA040000D101
+:1075B000FFDF294604F11400BDE8704004F0D9BF94
+:1075C00070B50D46042108F0E3FA040000D1FFDF96
+:1075D000294604F11400BDE8704004F0F1BF70B515
+:1075E0000546042108F0D4FA040000D1FFDF21464B
+:1075F00028462368BDE870400122FEF74BBF70B5F6
+:107600000646042108F0C4FA040000D1FFDF04F1AB
+:10761000140004F07BFF401D20F0030511E0011D64
+:1076200000880022431821463046FEF733FF002829
+:107630000BD0607CABB2684382B2A068011D08F039
+:1076400064F9A06841880029E9D170BD70B505468C
+:10765000042108F09DFA040000D1FFDF21462846EE
+:107660006368BDE870400222FEF714BF70B50E4695
+:10767000054601F09FF9040000D1FFDF01202072D0
+:1076800066726580207820F00F00001D20F0F00069
+:1076900040302070BDE8704001F08FB910B504464D
+:1076A000012900D0FFDF2046BDE810400121FEF790
+:1076B000F0BA2DE9F04F97B04FF0000A0C00834666
+:1076C000ADF814A0D04619D0E06830B1A068A8B1D8
+:1076D0000188ADF81410A0F800A05846F9F7A4FEF0
+:1076E000070043F2020961D0387822285CD30421D4
+:1076F000584608F04DFA050005D103E0102017B0F8
+:10770000BDE8F08FFFDF05F1140004F0FFFE401D1F
+:1077100020F00306A078012803D0022801D007201A
+:10772000EDE7218807AA584606F04FF830BB07A8B6
+:1077300006F057F810BB07A806F053F848B99DF8B3
+:107740002600012805D1BDF82400A0F524510239F6
+:1077500002D04FF45050D2E7E068B0B1CDE902A0BA
+:107760000720009005AACDF804A00492A2882188E1
+:10777000BDF81430584605F0B1FE10B1FEF7BDFC5F
+:10778000BDE7A168BDF8140008809DF81F00C00681
+:1077900002D543F20140B2E70B9838B1A1780078E6
+:1077A000012905D080071AD40820A8E74846A6E793
+:1077B000C007F9D002208DF83C00A8684FF00009FE
+:1077C000A0B1697C4288714391420FD98AB2B3B2A9
+:1077D000011D08F050F88046A0F800A006E0032044
+:1077E0008DF83C00D5F800804FF001099DF820008D
+:1077F00010F0380F00D1FFDF9DF820002649C0F3BC
+:10780000C200084497F8231010F8010C884201D9EF
+:107810000F2074E72088ADF8400014A90095CDE949
+:107820000191434607220FA95846FEF75DFE002846
+:1078300091D19DF8500050B9A078012807D1687CFB
+:10784000B3B2704382B2A868011D08F028F8002086
+:1078500055E770B5064615460C460846FEF70CFC83
+:10786000002805D12A4621463046BDE8704075E41F
+:1078700070BD13E570B51E4614460D000ED06CB1F8
+:10788000616859B160B10349C988814208D00720B5
+:1078900070BD00004C02002072ED01001020F7E7DF
+:1078A0002068FEF7E9FB0028F2D13246214628463F
+:1078B000BDE87040FFF747BA70B515460C0006D01A
+:1078C00038B1FE490989814203D00720E0E7102042
+:1078D000DEE72068FEF7D0FB0028D9D129462046F4
+:1078E000BDE87040D6E570B5064686B00D46144634
+:1078F00010460BF047FED0BB60680BF06AFEB0BBD1
+:10790000A6F57F40FF3803D03046F9F78DFD80B1F2
+:1079100028466946FEF7E3FC00280CD19DF81010BC
+:107920000F2008293CD2DFE801F008060606060A07
+:107930000A0843F2020006B0AAE70320FBE79DF81D
+:107940000210012908D1BDF80010B1F5C05FF2D0D6
+:107950006FF4C052D142EED09DF8061001290DD12E
+:10796000BDF80410A1F52851062907D200E028E04F
+:10797000DFE801F0030304030303DCE79DF80A10CA
+:1079800001290ED1BDF80810B1F5245FD3D0A1F5BF
+:1079900024510239CFD00129CDD0022901D1CAE723
+:1079A000FFDF606878B9002305AA2946304606F053
+:1079B00041F810B1FEF7A1FBBDE79DF81400800669
+:1079C00001D41020B7E76188224628466368FFF794
+:1079D000BFFDB0E72DE9F043814687B088461446E5
+:1079E00010460BF0CFFD18B1102007B0BDE8F083B2
+:1079F000002306AA4146484606F01CF818B100BF0D
+:107A0000FEF77BFBF1E79DF81800C00602D543F2B4
+:107A10000140EAE70025072705A801950097029590
+:107A2000CDE9035062884FF6FF734146484605F0A2
+:107A30007FFF060013D160680BF0A4FD60B9606899
+:107A40000195CDE90250009704952388628841464C
+:107A5000484605F06DFF0646BDF81400208030460C
+:107A6000CEE739B1954B0A889B899A4202D843F2F6
+:107A7000030070471DE610B586B0904C0423ADF8A6
+:107A80001430638943B1A4898C4201D2914205D953
+:107A900043F2030006B010BD0620FBE7ADF810105E
+:107AA000002100910191ADF8003002218DF8021003
+:107AB00005A9029104A90391ADF812206946FFF7C8
+:107AC000F8FDE7E72DE9FC4781460E4608460BF036
+:107AD00033FD88BB4846F9F7A7FC5FEA00080AD0E7
+:107AE00098F80000222829D30421484608F050F8CD
+:107AF000070005D103E043F20200BDE8FC87FFDF89
+:107B000007F1140004F019FD05463078012803D070
+:107B1000022804D00720F0E7A8070FD502E015F0EF
+:107B20001C0F0BD0B079341DC00709D0E08838B1E4
+:107B3000A0680BF001FD18B11020DEE70820DCE79B
+:107B400032782088002628B3A0F201130721112BD8
+:107B500018D20CD2DFE803F00B090D0B1D0B121D20
+:107B6000100B0B1D1D1D1D0B1D00022A11D10846F7
+:107B7000C3E7012AFBD00CE02A0700E0EA06002A4E
+:107B8000F5DA06E0A0F5C0721F2A02D97D3A022A72
+:107B9000EDD8C6B200F00EFF50B198F82300CDE941
+:107BA0000006FA89234639464846FEF7E7FCA4E773
+:107BB0001120A2E72DE9F04F8BB01F4615460C4669
+:107BC00083460026F9F730FC28B10078222805D238
+:107BD00008200BB094E543F20200FAE7B80801D0A0
+:107BE0000720F6E7032F00D100274FF6FF79CCB12D
+:107BF000022D73D320460BF0ECFC30B904EB0508E2
+:107C0000A8F101000BF0E5FC08B11020E1E7AD1E82
+:107C1000AAB22146484605F0C2FF38F8021C884245
+:107C20005CD1ADB22549B80702D58889401C00E077
+:107C300001201FFA80F8F80701D08F8900E04F4635
+:107C400005AA4146584605F0C0FD4FF0070A4FF01F
+:107C50000009ACB3204608E0408810283ED8361D05
+:107C6000304486B2AE4239D2A01902884245F3D3DD
+:107C700054E000BF9DF8170002074FD584B304EB12
+:107C80000608361DB8F80230B6B2102B26D89A195D
+:107C9000AA4223D8B8F8002091421FD1C00620D5AF
+:107CA000CDE900A90DF1080C0AAAA11948468CE8F3
+:107CB0000700B8F800100022584603E04C020020EC
+:107CC0002CE00BE005F00AFC10B1FEF716FA80E795
+:107CD000B8F80200BDF82810884202D00B2078E7DF
+:107CE00004E0B8F80200304486B206E0C00604D5CD
+:107CF0005846FEF775FC002888D19DF81700BDF89E
+:107D00001A1020F010008DF81700BDF81700ADF81C
+:107D10000000FF235846009A05F0B8FE05A805F0BC
+:107D200060FD18B9BDF81A10B942A3D9042158460C
+:107D300007F02EFF040000D1FFDFA2895AB1CDE980
+:107D400000A94D46002321465846FEF717FC00289F
+:107D5000BDD1A5813DE700203BE72DE9FF4F8BB06A
+:107D60001E4617000D464FF0000412D0B00802D096
+:107D700007200FB0C4E4032E00D100265DB10846F1
+:107D80000BF01EFC28B93888691E08440BF018FC5B
+:107D900008B11020EDE7C74AB00701D5D18900E04E
+:107DA0000121F0074FF6FF7802D0D089401E00E095
+:107DB000404686B206AA0B9805F007FD4FF0000971
+:107DC0004FF0070B0DF1140A39E000BF9DF81B00BE
+:107DD000000734D5CDF80490CDF800B0CDF8089068
+:107DE000CDE9039A434600220B9805F0A1FD60BB44
+:107DF00005B3BDF814103A8821442819091D8A4298
+:107E000030D3BDF81E2020F8022BBDF8142020F836
+:107E1000022BCDE900B9CDE90290CDF810A0BDF854
+:107E20001E10BDF8143000220B9805F081FD08B13A
+:107E300003209EE7BDF814002044001D84B206A86C
+:107E400005F0CFFC20B10A2806D0FEF756F990E7DE
+:107E5000BDF81E10B142B9D934B17DB13888A11C2A
+:107E6000884203D20C2084E7052082E72246294677
+:107E7000404605F094FE014628190180A41C3C8070
+:107E8000002076E710B504460BF07CFB08B110200B
+:107E900010BD8848C0892080002010BDF0B58BB08F
+:107EA0000D460646142103A816F0B0FD01208DF8FA
+:107EB0000C008DF8100000208DF81100ADF8145062
+:107EC0003046F9F7B1FA48B10078222812D30421DC
+:107ED000304607F05DFE040005D103E043F20200E6
+:107EE0000BB0F0BDFFDF04F11400074604F025FBE2
+:107EF000800601D40820F3E7207C022140F0010035
+:107F0000207409A80094CDE90110072203A9304686
+:107F10006368FEF7E9FA20B1217C21F001012174A8
+:107F2000DEE729463046FDF7A5FE08A9384604F0ED
+:107F3000F3FA00B1FFDFBDF82040172C01D2172063
+:107F400000E02046A84201D92C4602E0172C00D2BE
+:107F5000172421463046FFF724FB21463046FDF723
+:107F6000ABFB0020BCE7F8B51C4615460E46069F45
+:107F700007F040FF2346FF1DBCB231462A4600945D
+:107F800007F02BFBF8BD70B50C4605460E212046C8
+:107F900016F01AFD002020802DB1012D01D0FFDF49
+:107FA00076E4062000E00520A07171E410B5488059
+:107FB0000878134620F00F00001D20F0F0008030FC
+:107FC0000C4608701422194604F1080016F0C2FC91
+:107FD00000F0F3FC3748046010BD2DE9F047DFF8EE
+:107FE000D890491D064621F0030117460C46D9F8E2
+:107FF000000007F008FC050000D1FFDF4FF000088B
+:108000003560A5F800802146D9F8000007F0FBFB99
+:10801000050000D1FFDF7560A5F800807FB104FB8B
+:1080200007F1091D0BD0D9F8000007F0ECFB0400A4
+:1080300000D1FFDFB460C4F80080BDE8F087C6F867
+:108040000880FAE72DE9F0411746491D21F00302A7
+:10805000194D064601681446286807F0FFFB2246C2
+:108060007168286807F0FAFB3FB104FB07F2121DA4
+:1080700003D0B168286807F0F1FB042007F030FD59
+:108080000446042007F034FD201A012804D1286892
+:10809000BDE8F04107F0ACBBBDE8F08110B50C467F
+:1080A00005F05FFB00B1FFDF2046BDE81040FEF7A2
+:1080B00024B800004C020020140000204FF0E02201
+:1080C0004FF400410020C2F880111D4908701D497D
+:1080D00090020860704770B5194D04462878A04298
+:1080E00002D00CB100B1FFDF2878A0420DD01649B4
+:1080F000144A2C700020CCB1134E144B1436151FAB
+:10810000012C03D0022C08D0FFDF70BD08600220D4
+:10811000086033604FF0407005E00860032008609D
+:1081200033604FF400001060286070BD0860086084
+:108130004FF06070106070BD00B5FFDF00BD000043
+:108140001800002008F5014000F500405C02002006
+:1081500038B50C468288817B19B14189914200D99A
+:108160000A462280C188121D90B26A4606F054FE6B
+:10817000BDF80000032800D30320C1B2208800F01E
+:1081800095FF38BD38B50C468288817B19B10189CD
+:10819000914200D90A462280C188121D90B26A46D7
+:1081A00006F03AFEBDF80000022800D30220C1B25A
+:1081B000208800F07BFF401CC0B238BD2DE9FF5F76
+:1081C0000C46FB4981462C22D1E90201CDE902018E
+:1081D00009F1030020F00301C91C21F00301009103
+:1081E0006846114607F0F1FAF24E002C02D1F2492E
+:1081F000009A8A60009901440091357E05F10105DD
+:1082000004D1E8B209F0ECF900B1FFDF00984FF0BB
+:10821000000B00EB0510C01C20F0030100915CB9BD
+:10822000307A727A81F800B01044C2B2B08B80B25A
+:1082300005F01FF900B1FFDF0098F16908440090D4
+:108240002146684600F0FCFE0098C01C20F00300A8
+:108250000090737AB27A317A04B1002007F0ABFB58
+:108260000099084400902146684600F02AFF002744
+:108270003D46B24696F801800CE0284600F0C3FE69
+:10828000064681788088FDF7AEFA71786D1C00FB98
+:108290000177EDB24545F0D10098C01C20F00300F5
+:1082A000009004B100203946FDF7A8FA0099002794
+:1082B000084400903D469AF801800CE0284600F002
+:1082C000A2FE0646C1788088FEF715FC71786D1C09
+:1082D00000FB0177EDB24545F0D10098C01C20F0BD
+:1082E0000300009004B100203946FEF70DFC009910
+:1082F0004FF000080844009045469AF801700EE0DF
+:10830000284600F080FE0646807B30B106F108006A
+:1083100001F0A7FE727800FB02886D1CEDB2BD4231
+:10832000EED10098C01C20F00300009004B10020A2
+:10833000414601F09AFE00990844C01D20F0070252
+:108340000092ECBB9D49002003F055FA05F0F2FBCA
+:1083500099484178C06805F085FD97481030C0788D
+:108360008DF8040010B1012804D005E001208DF83B
+:10837000040001E08DF804B001A805F0B5FEF9F79E
+:1083800072FF8C4802AA00210C30FAF755FE00B1AA
+:10839000FFDF9AF81900FEF720FF00B1FFDF8548E4
+:1083A0004FF4F671443016F031FB8248042144301A
+:1083B00080F8E91180F8EA11062180F8EB1100E05D
+:1083C00001E003210171009904B0A1EB0900BDE8AF
+:1083D000F09F70B5774C06464434207804EB401586
+:1083E000E078083590B9A01990F8E80100280ED07F
+:1083F000A0780F2800D3FFDF2021284616F006FBC7
+:10840000687866F3020068700120E070284670BD4D
+:108410002DE9F04105460C460027007805219046DD
+:108420003E46B1EB101F00D0FFDF287A50B1012883
+:108430000ED0FFDFA8F800600CB127806680002016
+:10844000BDE8F0810127092674B16888A08008E0A2
+:108450000227142644B16888A0802869E060A88AB1
+:108460002082287B2072E5E7A8F80060E7E710B5D6
+:10847000514C6068C11D21F00701814200D0FFDF2F
+:108480004C480121002201704270017203234372A3
+:1084900081720273052282821F22C282417348A226
+:1084A00002610A22027641764FF4B061C1616168CF
+:1084B000416010BD30B5404C1568636810339D4273
+:1084C00002D20420136030BD3A4B5D785A6802EB4B
+:1084D0000512107051700320D08017209080012069
+:1084E000D0709070002090735878401C587060686D
+:1084F00010306060002030BD70B506462D48002465
+:10850000457807E0204600F07EFD0178B14204D0B6
+:10851000641CE4B2AC42F5D1002070BDF7B507464B
+:1085200008780C4610B3FFF7E7FF0546A7F12006D1
+:10853000202F06D0052E19D2DFE806F00F2B2B15C1
+:108540001A0000F06BFD0DB1697800E00021401ABF
+:10855000A17880B20844FF2808D8A07830B1A0885C
+:10856000022831D202E0608817282DD20720FEBDF4
+:10857000207AE0B161881729F8D3A1881729F5D3AB
+:10858000A1790029F2D0E1790029EFD0402804D95F
+:10859000ECE7242F18D1207A48B161884FF6FB70A0
+:1085A000814202D8A18881420ED90420FEBD0BE091
+:1085B00078ED0100680300201C000020000000206E
+:1085C0006E5246357800000065B9207802AA012174
+:1085D000FFF770FF0028E9D12078FFF78DFF050035
+:1085E00000D1FFDF052E18D2DFE806F0030B0E08DE
+:1085F0001100A0786870A088E8800FE06088A880EB
+:108600000CE0A078A87009E0A078E87006E054F8C3
+:10861000020FA8606068E86000E0FFDF0020C5E7A7
+:108620001E2829D00EDC0C2822D008DC092825D2EF
+:10863000DFE800F013241524241C1C181A0012284B
+:108640001CD119E0302817D018DDA0F13A0003281A
+:1086500014D2DFE800F00F1309000020704743F246
+:1086600002007047042070470D2070470F207047AC
+:10867000082070471120704707207047032070477B
+:1086800010B5007800F0010006F0BDFBBDE8104019
+:10869000C6E70EB5017801F001018DF800104178B0
+:1086A00001F001018DF801100178C1F340018DF84E
+:1086B00002104178C1F340018DF803100178890858
+:1086C0008DF80410417889088DF8051081788DF8AF
+:1086D0000610C1788DF8071000798DF808006846FB
+:1086E00005F021FDFFF79CFF0EBD2DE9F84FDFF8E7
+:1086F000F883FE4C00261FE0012000F025FD01203C
+:10870000FFF767FE05462C214746D8F8080007F01A
+:108710007AF8686000B9FFDF686805F0D6FBA8B199
+:108720002846F9F7E3F8284600F014FD20B92C227A
+:108730006968B86807F092F894F9E9010428DBDA6F
+:10874000022007F0CDF907460025A6E02C22696833
+:10875000D8F8080007F082F8F2E7B8F802104046AF
+:10876000491C89B2A8F80210B94201D30021418006
+:108770000221B8F8020007F00BFA002865D0B8F81B
+:108780000200694606F0B2FAFFF74AFF00B1FFDFC8
+:108790009DF8000078B1B8F8020007F03DFB5FEAF1
+:1087A000000900D1FFDF484606F0ABFD18B1B8F86C
+:1087B000020002F0FDF8B8F8020007F01BFB5FEAC8
+:1087C000000900D1FFDF484606F093FDE8BB032116
+:1087D000B8F8020007F0DCF95FEA000B48D1FFDFD0
+:1087E00046E000BFDBF8100010B10078FF2849D048
+:1087F000022000F0A9FC0220FFF7EBFD824648466C
+:1088000006F083FECAF8040000B9FFDFDAF80400BE
+:1088100006F04BFF002100900170B8F8021050469E
+:10882000AAF8021001F0CAFD484606F040FF00B960
+:10883000FFDF504600F08EFC18B99AF801000007DF
+:1088400004D50099CBF8101012E024E0DBF81000FA
+:1088500038B10178491C11F0FF01017008D1FFDF28
+:1088600006E000221146484600F0CBFB00B9FFDFCE
+:1088700094F9EA01022805DBB8F8020001F063FD73
+:108880000028AFD194F9E901042804DB484606F03A
+:1088900072FF00B101266D1CEDB2BD4204D294F905
+:1088A000EA010228BFF659AF002E7FF423AFBDE8DE
+:1088B000F84F032000F048BC10B58B4CE06008680E
+:1088C0002061AFF2D91002F0FEFF607010BD874842
+:1088D0000021443801708448017085494160704727
+:1088E00070B505464FF080500C46D0F8A410491CD6
+:1088F00005D1D0F8A810C9430904090C0BD050F8D1
+:10890000A01F01F001012970416821608068A080EA
+:10891000287830B970BD062120460AF0E8FA012017
+:108920002870607940F0C000607170BD70B54FF084
+:1089300080540D46D4F88010491C0BD1D4F8841013
+:10894000491C07D1D4F88810491C03D1D4F88C10E5
+:10895000491C0CD0D4F880100160D4F88410416018
+:10896000D4F888108160D4F88C10C16002E0102126
+:108970000AF0BDFAD4F89000401C0BD1D4F8940052
+:10898000401C07D1D4F89800401C03D1D4F89C00B7
+:10899000401C09D054F8900F286060686860A06897
+:1089A000A860E068E86070BD2846BDE8704010210E
+:1089B0000AF09DBA4D4800790BE570B54B4CE07854
+:1089C00030B3207804EB4010407A00F007002044D8
+:1089D00090F9E801002800DCFFDF2078002504EB97
+:1089E0004010407A00F00700011991F8E801401E9C
+:1089F00081F8E8012078401CC0B220700F2800D117
+:108A00002570A078401CA0700AF0ACF9E57070BD2C
+:108A1000FFDF70BD3EB50546032107F0B9F80446F7
+:108A2000284607F0E7F9054604B9FFDF206918B1C9
+:108A30000078FF2800D1FFDF01AA6946284600F030
+:108A4000E0FA60B9FFDF0AE0002202A9284600F040
+:108A5000D8FA00B9FFDF9DF8080000B1FFDF9DF8EC
+:108A60000000411E8DF80010EED220690199884265
+:108A700001D1002020613EBD70B50546A0F57F40C4
+:108A80000C46FF3800D1FFDF012C01D0FFDF70BDA5
+:108A9000FFF790FF040000D1FFDF207820F00F00E7
+:108AA000401D20F0F00050302070658000202072C2
+:108AB00001202073BDE870407FE72DE9F0411646A4
+:108AC0000D460746FFF776FF040000D1FFDF207850
+:108AD00020F00F00401D20F0F00050302070678023
+:108AE00001202072286805E01C000020AC03002053
+:108AF000281200202061A888A0822673BDE8F041DA
+:108B00005BE77FB5FFF7F8FC040000D1FFDF02A9A7
+:108B10002046FFF71DFB054603A92046FFF732FB61
+:108B20008DF800508DF80100BDF80800001DADF86B
+:108B30000200BDF80C00001DADF80400E088ADF89F
+:108B40000600684606F049F9002800D0FFDF7FBD27
+:108B50002DE9F047DFF8F8930546002799F8000063
+:108B600010B10820BDE8F08728460AF00BFD08B1D7
+:108B70001020F7E7F74C207808B9FFF778FC607A07
+:108B8000217A0844C6B200F049FAB04207D2301A3E
+:108B9000C1B22A460020FFF78DFC0700E2D1D9F8C8
+:108BA00004004E46C01C20F00300C9F8040000F089
+:108BB00044FB716800EB010801214046FFF7FEFA13
+:108BC000064629684044884202D8B6F5803F15D34E
+:108BD00028600020FFF790FC05000DD005F1130080
+:108BE000D9F8041020F003004E46884200D0FFDF81
+:108BF0006078401E607075600420B3E70021404635
+:108C0000FFF7DCFA0446A64200D0FFDF04EB0801C0
+:108C1000C9F8041029604FF6FF71A9F8021001216C
+:108C200089F8001038469DE72DE9F0410446C84810
+:108C300017460D46007810B10820BDE8F0810846BF
+:108C40000AF07AFC08B11020F7E7C24E307808B974
+:108C5000FFF70DFC601E1E2807D8012C3FD1287895
+:108C6000FE283CD830760020E7E7A4F120001F283A
+:108C700005D8E0B23A462946BDE8F0414EE4A4F1F9
+:108C800040004FF000081F2821D8402C02D0412C72
+:108C900025D117E0687829780C18A97881421ED868
+:108CA000FF2C08D808F080FE07460AF014F8381A9E
+:108CB000801EA04201DA1220BFE728883081A87800
+:108CC000B07224E02846BDE8F04100F06BBAA4F190
+:108CD000A0001F2803D8A02C03D0A12C06D0072069
+:108CE000ABE7287800F00100707610E029680920D1
+:108CF000F829A2D38A07A0D1727B02F00302012ACD
+:108D000004D1F28AD73293B28B4296D8F1614046B1
+:108D100093E72DE9F04781460E4608460AF032FCFB
+:108D200048B948460AF04CFC28B909F1030020F084
+:108D30000301494501D0102014E786484FF0000A8E
+:108D40004430817869B14178804600EB41140834A1
+:108D5000378832460021204600F00AFA050004D088
+:108D600027E0A6F800A00520FCE6B9F1000F24D00A
+:108D70003088B84201D90C251FE0607800F0070563
+:108D8000284600F0E1F908EB0507324697F8E801BC
+:108D90004946401C87F8E801204607F5F47700F0C3
+:108DA000E7F905463878401E3870032000F0CCF90A
+:108DB0002DB10C2D01D0A6F800A02846D2E660788F
+:108DC000634E00F00701012923D002290CD00329AA
+:108DD00033D0FFDF98F801104046491CC9B288F82B
+:108DE00001100F2934D035E0616821B1000702D4A9
+:108DF0006088FFF70FFE98F8EA014746012802D184
+:108E0000707802F07FFD97F9EA010428E2DBFFDFCA
+:108E1000E0E7616819B12C22B06806F01FFD98F8F0
+:108E2000E9014746032802D1707802F06BFD97F9FB
+:108E3000E9010428CEDBFFDFCCE7C00602D560885D
+:108E4000FFF7E8FD98F9EB010628C3DBFFDFC1E778
+:108E500080F801A08178491E8170617801F00701D6
+:108E600001EB080090F8E811491C80F8E811A4E72C
+:108E700070B50D4604460AF05FFB18B928460AF0A3
+:108E800081FB08B1102070BD29462046BDE8704026
+:108E900008F0DDBB70B5044615460E4608460AF0DC
+:108EA0004BFB18B928460AF06DFB08B1102070BDC5
+:108EB000022C03D0102C01D0092070BD2A46314667
+:108EC000204608F0E7FB0028F7D0052070BD70B5FC
+:108ED00014460D4606460AF02FFB38B928460AF01C
+:108EE00051FB18B920460AF06BFB08B1102070BD89
+:108EF00022462946304608F0ECFB0028F7D0072030
+:108F000070BD3EB504460AF03DFB08B110203EBDE1
+:108F1000684605F097F8FFF783FB0028F7D19DF826
+:108F200006002070BDF808006080BDF80A00A0802F
+:108F300000203EBD70B505460C4608460AF040FBD1
+:108F400020B95CB120680AF01DFB28B1102070BD6B
+:108F50001C00002068030020A08828B12146284674
+:108F6000BDE87040FDF746BE0920F0E770B5044645
+:108F70000D4608460AF0E0FA30B9601E1E2814D8E3
+:108F800028460AF0D9FA08B11020E0E7022C01D9EE
+:108F90000720DCE704B9FFDFDC4800EB840050F871
+:108FA000041C2846BDE870400847A4F120001F2893
+:108FB000EED829462046BDE87040F9F7C8B870B52C
+:108FC00004460D4608460AF0DDFA30B9601E1E2838
+:108FD0000DD828460AF0B0FA08B11020B7E7012CE6
+:108FE00001D0022C01D10620B1E70720AFE7A4F1A0
+:108FF00020001F28F9D829462046BDE87040F9F71F
+:1090000005B906F045B930B5C14D04466878A042AF
+:1090100000D8FFDF686800EB041030BD70B5BC48B5
+:1090200000252C46467807E02046FFF7ECFF407805
+:10903000641C2844C5B2E4B2B442F5D1284686E7A0
+:109040002DE9F0410C46064600F02FF9074630683E
+:10905000C01C20F0030232601CBBAD483B46092116
+:1090600020300AF043F9002408E0092C11D2DFE88F
+:1090700004F005070509090B05050700A54804E0EC
+:10908000A54802E0A54800E0A5480AF04FF90546CA
+:1090900000E0FFDFA54200D0FFDF641CE4B2092C32
+:1090A000E3D3306800EB07103060C6E5021D514382
+:1090B000452900D245210844C01CB0FBF2F0C0B2E3
+:1090C00070472DE9FC5F064691484FF000088B463B
+:1090D0004746444690F8019022E02046FFF793FF70
+:1090E000050000D1FFDF687869463844C7B22846DA
+:1090F000FFF72EF8824601A92846FFF743F80346FA
+:10910000BDF804005246001D81B2BDF80000001DEC
+:1091100080B206F0BBFD6A78641C00FB0288E4B2F2
+:109120004C45DAD13068C01C20F003003060BBF140
+:10913000000F00D000204246394606F0B5FD3168E8
+:1091400008443060BDE8FC9F71494431087100203B
+:10915000C87070476E494431CA782AB10A7801EB69
+:1091600042110831814201D0012070470020704730
+:109170002DE9F04106460078154600F00F04002066
+:109180001080601E0F46052800D3FFDF5F482A4687
+:10919000103000EB8400394650F8043C3046BDE8FE
+:1091A000F041184738B50446407800F00300012824
+:1091B00003D002280BD0072038BD606858B10AF0F0
+:1091C00008FAD0B960680AF0FBF920B915E06068C8
+:1091D0000AF0B2F988B969462046FBF771F9002810
+:1091E000EAD1607800F00300022808D19DF8000061
+:1091F00028B160680AF0E4F908B1102038BD61892F
+:10920000F8290DD8208988420AD8607800F0030236
+:109210003F48012A06D1D731C26989B28A4201D2B8
+:10922000092038BD94E80E0000F10C0585E80E0019
+:109230000AB900218182002038BD2DE9F05F4FF08E
+:1092400000093348C8464F464E464D46CB464C462D
+:1092500090F801A011E02046FFF7D5FE4178827812
+:1092600009F10109884412FB0177C27812FB0166FB
+:10927000807B10FB0155641CE4B25445EBD10BEB31
+:10928000890000EBC80000EB870000EB860000EBD4
+:10929000C5011F48027A01EBC201427A807A01EBD4
+:1092A000C20101EBC000BDE8F09F2DE9F047DFF8F7
+:1092B00060900026344699F8080099F8092099F83A
+:1092C00001700244D5B299F80A20104400F0FF085A
+:1092D00008E02046FFF797FE817B407811FB00668F
+:1092E000641CE4B2BC42F4D199F8080099F8091062
+:1092F000401C284428444044401C01B1012108443A
+:109300008419FF2C00D9FFDFE0B22BE478ED0100D7
+:1093100068030020E11F000037A10000B1B9000080
+:10932000D31301002DE9F04107461446884608464C
+:1093300001F020FD064608EB88001C22796802EB4C
+:10934000C0000D18688C58B14146384601F01AFD2E
+:10935000014678680078C200082305F120000CE07F
+:10936000E88CA8B14146384601F013FD0146786803
+:1093700008234078C20005F1240006F0C6FA38B18F
+:10938000062121726681D0E90010C4E9031009E0CA
+:10939000287809280BD00520207266816868E06073
+:1093A000002028702046BDE8F04101F0D9BC07201C
+:1093B00020726681F4E72DE9F04116460D46074616
+:1093C000406801EB85011C2202EBC10144182046D4
+:1093D00001F001FD40B10021708865F30F2160F3B9
+:1093E0001F4108200AF05CF8092020703246294607
+:1093F0003846BDE8F04195E72DE9F0410E460746B5
+:1094000000241C21F07816E004EB8403726801EB61
+:10941000C303D25C6AB1FFF7CDFA050000D1FFDFCC
+:109420006F802A4621463046FFF7C5FF0120BDE880
+:10943000F081641CE4B2A042E6D80020F7E770B5E2
+:10944000064600241C21C0780AE000BF04EB840318
+:10945000726801EBC303D5182A782AB1641CE4B200
+:10946000A042F3D8402070BD2821284615F0ACFA60
+:10947000706880892881204670BD70B50346002041
+:109480001C25DC780DE000BF00EB80065A6805EB78
+:10949000C6063244167816B1128A8A4204D0401C9D
+:1094A000C0B28442F0D8402070BDF0B50446002020
+:1094B0001C26E5780EE000BF00EB8007636806EB32
+:1094C000C7073B441F788F4202D15B78934204D098
+:1094D000401CC0B28542EFD84020F0BD0078032880
+:1094E00001D000207047012070470078022801D089
+:1094F00000207047012070470078072801D0002025
+:109500007047012070472DE9F041064688461078E3
+:10951000F1781546884200D3FFDF2C781C27641CA5
+:10952000F078E4B2A04201D8201AC4B204EB84015E
+:10953000706807EBC1010844017821B141468847B2
+:1095400008B12C7073E72878A042E8D14020287039
+:109550006DE770B514460B880122A240134207D173
+:1095600013430B8001230A22011D06F098F90470B1
+:1095700070BD2DE9FF4F81B00878DDE90E7B9A467A
+:1095800091460E4640072CD4019806F045FC040095
+:1095900000D1FFDF07F1040820461FFA88F105F02B
+:1095A00084FD050000D1FFDF204629466A4605F00C
+:1095B000CEFF0098A0F80370A0F805A0284606F09A
+:1095C00074F8017869F306016BF3C7110170204646
+:1095D0001FFA88F105F0ACFD00B9FFDF019804F037
+:1095E000AEFB06EB0900017F491C017705B0BDE821
+:1095F000F08F2DE9F84F0E469A4691460746032113
+:1096000006F0C6FA0446008DDFF8B485002518B1CF
+:1096100098F80000B0421ED1384606F0FDFB070066
+:1096200000D1FFDF09F10401384689B205F03DFDA4
+:10963000050010D0384629466A4605F088FF009894
+:1096400000210A460180817004F030FC0098C01DA2
+:10965000CAF8000021E098F80000B04216D104F1E9
+:10966000260734F8341F012000FA06F911EA090F21
+:1096700000D0FFDF2088012340EA090020800A2271
+:10968000391D384606F026F9067006E0324604F128
+:10969000340104F12600FFF75CFF0A2188F800106E
+:1096A0002846BDE8F88FFEB514460D46064602ABC7
+:1096B0000C220621FFF79DFF002826D0029968782A
+:1096C00012220A70801C487008224A80A8702088E4
+:1096D00088806088C880A0880881E088488100244C
+:1096E0000C20CDE900040523062229463046FFF769
+:1096F00040FF214666F31F41F0230022012009F0BC
+:1097000025FE6878801C68700120FEBDFEB51446F9
+:109710000D460622064602AB1146FFF76AFF0028F7
+:1097200012D0029B132000211870A87858700220D4
+:1097300058809C800620CDE9000102460523294679
+:109740003046FFF716FF0120FEBD2DE9FE430C4613
+:10975000804644E002AB0E2207214046FFF749FF56
+:10976000002841D060681C2267788678BF1C06EB11
+:10977000860102EBC101451802981421017047705F
+:109780000A214180698A0181E98A4181A988818011
+:10979000A9898181304601F0EDFA0299052307225B
+:1097A000C8806F700420287000250E20CDE90005C8
+:1097B00021464046FFF7DDFE294666F30F2168F398
+:1097C0001F41F0230022082009F0C0FD6078FD4908
+:1097D000801C607062682046921CFFF794FE6068EF
+:1097E00080784028B6D10120BDE8FE83FEB50D4645
+:1097F000064638E002AB0E2207213046FFF7F9FE9D
+:10980000002835D068681C23C17801EB810203EB86
+:10981000C2028418029815220270627842700A22ED
+:109820004280A2894281A2888281084601F0A2FA80
+:10983000014602988180618AC180E18A0181A08805
+:10984000B8B10020207000210E20CDE900010523D1
+:10985000072229463046FFF78CFE6A68DA49284617
+:10986000D21CFFF750FE6868C0784028C2D10120A2
+:10987000FEBD0620E6E72DE9FE430C46814644E0A6
+:10988000204601F092FAD0B302AB082207214846E5
+:10989000FFF7AFFE0028A7D060681C226578067924
+:1098A000AD1C06EB860102EBC10147180298B7F820
+:1098B000108006210170457004214180304601F07E
+:1098C00059FA0146029805230722C180A0F80480B6
+:1098D0007D70082038700025CDE9000521464846F6
+:1098E000FFF747FE294666F30F2169F31F41F02376
+:1098F0000022082009F02AFD6078801C60706268F0
+:10990000B2492046121DFFF7FEFD6068017940292B
+:10991000B6D1012068E72DE9F34F83B00E4680E011
+:10992000304601F042FA002875D071681C2091F889
+:10993000068008EB880200EBC2000C184146304656
+:1099400001F027FA0146A078C30070684078C20091
+:1099500004F1240005F0F5FF07468088E18B401AEA
+:1099600080B2002581B3AA46218B814200D80846E7
+:109970008146024602AB07210398FFF73AFE010039
+:1099800028D0BAF1000F03D0029AB88802251080BF
+:109990008B46E28B3968A9EB05001FFA80FA0A446E
+:1099A0000398009206F038FAED1D009A5946534686
+:1099B000009505F046FEE08B504480B2E083B98804
+:1099C000884209D1012508E0FFE7801C4FF0010A19
+:1099D00080B2C9E7002009E60025CDE90095238A79
+:1099E000072231460398FFF7C4FDE089401EE0815D
+:1099F0008DB1A078401CA0707068F178427811FB9E
+:109A000002F1CAB2816901230E3005F048FF80F8E7
+:109A100000800020E08372686D493046921DFFF798
+:109A200072FD7068817940297FF47AAF0120DDE50D
+:109A300070B5064648680D4614468179402910D114
+:109A400004EB84011C2202EBC101084401F0E4F99B
+:109A5000002806D06868294684713046BDE8704009
+:109A600059E770BDFEB50C460746002645E0204686
+:109A700001F09BF9D8B360681C22417901EB8101A8
+:109A800002EBC1014518688900B9FFDF02AB08226B
+:109A900007213846FFF7ADFD002833D002996078E2
+:109AA00016220A70801C4870042048806068407943
+:109AB00001F060F901460298052307228180698937
+:109AC000C1800820CDE9000621463846FFF751FD48
+:109AD0006078801C6070A88969890844B0F5803F6F
+:109AE00000D3FFDFA88969890844A8816E81626874
+:109AF00038492046521DFFF706FD6068417940292C
+:109B0000B5D10120FEBD30B5438C458BC3F3C704EE
+:109B1000002345B1838B641EED1AC38A6D1E1D445C
+:109B200095FBF3F3E4B22CB1008918B1A04200D840
+:109B3000204603444FF6FF70834200D30346138050
+:109B40000C7030BD2DE9FC41074616460D464868AD
+:109B500002EB86011C2202EBC10144186A4601A9EE
+:109B60002046FFF7D0FFA089618901448AB2BDF881
+:109B70000010914212D0081A00D500206081686858
+:109B8000407940280AD1204601F03CF9002805D050
+:109B90006868294646713846FFF764FFBDE8FC81D6
+:109BA0002DE9FE4F8946804615465088032105F071
+:109BB000EFFF8346B8F8020040280DD240200CE0A9
+:109BC00030000020DD940000EB940000F9940000C8
+:109BD00019AE000005AE0000403880B28246014652
+:109BE000584601F0E2F800287ED00AEB8A001C22D9
+:109BF000DBF8041002EBC0000C18204601F0EBF873
+:109C0000002877D1B8F80000E18A88423CD8A189C1
+:109C1000D1B348456ED100265146584601F0B2F8FE
+:109C2000218C0F18608B48B9B9F1020F62D3B8F8D4
+:109C300004006083618A884226D80226A9EB0600C8
+:109C40001FFA80F9B888A28B801A002814DD4946D3
+:109C5000814500DA084683B26888696802913968EC
+:109C60000A44CDE9003206F0C5F8DDE90121F61D10
+:109C7000009B009605F0B1FCA18B01EB090080B2BE
+:109C8000A083618B884207D9688803B05246594641
+:109C9000BDE8F04F01F0DDB81FD14FF00900287288
+:109CA000B8F802006881D7E90001C5E90401608BBA
+:109CB000A881284601F054F85146584601F062F850
+:109CC0000146DBF8040008230078C20004F12000FC
+:109CD00005F01BFE0020A0836083A0890AF0FF022C
+:109CE000401EA081688800E004E003B05946BDE84A
+:109CF000F04F27E7BDE8FE8F2DE9F04106461546F7
+:109D00000F461C46184609F017FC18B9206809F0E0
+:109D100039FC08B1102015E47168688C0978B0EB43
+:109D2000C10F01D313200DE43946304601F02AF863
+:109D30000146706808230078C20005F1200005F094
+:109D4000AEFDD4E90012C0E900120020E3E710B52F
+:109D50000446032105F01CFF0146007800F00300D3
+:109D6000022805D02046BDE8104001F114029AE413
+:109D70008A8A2046BDE81040C8E470B50446032135
+:109D800005F006FF054601462046FFF774FD002852
+:109D900016D029462046FFF765FE002810D0294638
+:109DA0002046FFF723FD00280AD029462046FFF76A
+:109DB000CCFC002804D029462046BDE87040AAE526
+:109DC00070BD2DE9F0410C4680461EE0E1784278F6
+:109DD00011FB02F1CAB2816901230E3005F095FD35
+:109DE000077860681C22C179491EC17107EB8701A1
+:109DF000606802EBC10146183946204600F0D5FFE5
+:109E000018B1304600F0E0FF20B16068C179002948
+:109E1000DCD180E7FEF7CEFD050000D1FFDF0A2090
+:109E20002872384600F0A6FF68813946204600F0C7
+:109E3000B0FF0146606808234078C20006F12400A4
+:109E400005F063FDD0E90010C5E90310A5F8028014
+:109E5000284600F085FFB07800B9FFDFB078401EDB
+:109E6000B07058E770B50C460546032105F090FE2A
+:109E700001464068C2792244C2712846BDE870405C
+:109E80009FE72DE9FE4F8246507814460F464FF06B
+:109E9000000800284FD0012807D0022822D0FFDF79
+:109EA0002068B8606068F86024E702AB0E220821E1
+:109EB0005046FFF79EFB0028F2D00298152105239B
+:109EC0000170217841700A214180C0F80480C0F8F7
+:109ED0000880A0F80C80628882810E20CDE90008FD
+:109EE000082221E0A678304600F044FF054606EB44
+:109EF00086012C22786802EBC1010822465A02AB87
+:109F000011465046FFF775FB0028C9D0029807217B
+:109F10000170217841700421418008218580C6802C
+:109F2000CDE9001805230A4639465046FFF721FBC4
+:109F300087F80880DEE6A678022516B1022E13D037
+:109F4000FFDF2A1D914602AB08215046FFF751FB67
+:109F50000028A5D002980121022E017021784170BD
+:109F60004580868002D005E00625EAE7A188C18009
+:109F7000E1880181CDE90098052308223946504641
+:109F8000D4E710B50446032105F002FE014600F1B6
+:109F900008022046BDE8104073E72DE9F05F0C464B
+:109FA00001281DD0957992F80480567905EB85013A
+:109FB0001F2202EBC10121F0030B08EB060111FB8C
+:109FC00005F14FF6FF7202EAC10909F1030115FB21
+:109FD0000611F94F21F0031A40B101283DD124E0C8
+:109FE0006168E57891F800804E78DFE75946786837
+:109FF00005F009FC606000B9FFDF5946606814F0A5
+:10A0000005FDE5705146786805F0FDFB6168486123
+:10A0100000B9FFDF6068426902EB09018161606895
+:10A0200080F800806068467017E0606852464169B9
+:10A03000786805F013FC5A466168786805F00EFCF4
+:10A04000032005F04DFD0446032005F051FD201AC4
+:10A05000012802D1786805F0CBFB0BEB0A00BDE8C4
+:10A06000F09F02460021022097E773B5D24D0A20E7
+:10A070002870009848B100244FEA0D0005F0A5FBB8
+:10A08000002C01D1009969607CBD01240020F5E716
+:10A0900070B50C4615463821204614F0B7FC012651
+:10A0A00066700A2104F11C0014F0B0FC05B9FFDF52
+:10A0B000297A207861F301002070A879002817D050
+:10A0C0002A4621460020FFF768FF6168402088701B
+:10A0D0006168C870616808716168487161688871F9
+:10A0E000616828880881616868884881606886811D
+:10A0F00070BDC878002802D0002201204DE77047CB
+:10A1000070B50546002165F31F41012009F0C8F92B
+:10A110000321284605F03CFD040000D1FFDF214665
+:10A120002846FFF769F9002804D0207840F0100095
+:10A130002070012070BD2DE9FF4180460E460F0CB6
+:10A14000FEF738FC050007D06F800321384605F084
+:10A150001FFD040008D106E004B03846BDE8F04118
+:10A160001321F8F711BCFFDFB8F1010F05D0B8F1EA
+:10A17000080F18D0FFDFBDE8FF8120782A4620F0C5
+:10A18000080020700020ADF8020002208DF80000C9
+:10A190004FF6FF70ADF80400ADF80600694638468A
+:10A1A000F7F781FFE7E7C6F3072101EB81021C23E4
+:10A1B000606803EBC202805C042803D008280AD040
+:10A1C000FFDFD8E7012000904FF440432A462046A5
+:10A1D00000F008FECFE704B02A462046BDE8F04173
+:10A1E000FFF7E9B82DE9F05F0027B0F80A90904634
+:10A1F0000C4605463E46B9F1400F01D2402001E031
+:10A20000A9F140001FFA80FA287AC01E08286BD2F4
+:10A21000DFE800F00D04192058363C47722710265D
+:10A22000002C6CD0D5E90301C4E902015CE0702781
+:10A230001226002C63D00A2205F10C0104F108005B
+:10A2400014F088FB50E071270C26002C57D0E868EA
+:10A25000A06049E0742710269CB3D5E90301C4E946
+:10A2600002016888032105F093FC8346FEF7A2FBF8
+:10A2700002466888508051465846FFF753F833E04D
+:10A2800075270A26ECB1A88920812DE076271426AF
+:10A29000BCB105F10C0004F1080307C883E807000E
+:10A2A00022E07727102664B1D5E90301C4E9020151
+:10A2B0006888032105F06CFC01466888FFF781FD82
+:10A2C00012E01CE073270826CCB16888032105F052
+:10A2D0005FFC01460078C00606D56888FFF78CF859
+:10A2E00010B96888F7F7E6FAA8F800602CB1278063
+:10A2F000A4F8069066806888A0800020AFE6A8F8E1
+:10A300000060FAE72DE9FC410C461E4617468046E0
+:10A31000032105F03DFC05460A2C0AD2DFE804F0D3
+:10A3200005050505050509090907042303E00623BA
+:10A3300001E0FFDF0023CDE90076224629464046B2
+:10A34000FFF717F92AE438B50546A0F57F40FF3836
+:10A3500030D0284605F04EFD040000D1FFDF204636
+:10A3600005F0D3F8002815D001466A46204605F0CE
+:10A37000EEF800980321B0F80540284605F008FCE7
+:10A380000546052C03D0402C05D2402404E0007A79
+:10A3900080B1002038BD403CA4B2214600F005FD4C
+:10A3A00040B1686804EB84013E2202EBC101405ACF
+:10A3B0000028EFD0012038BD300000202DE9F04FFB
+:10A3C000044689B0408805F015FD050000D1FFDF87
+:10A3D00006AA2846616800F0C1FC069D001F81B2F4
+:10A3E00035F8032F6B888A4205D1042B0AD0052B40
+:10A3F0001DD0062B15D022462846FFF7D1FB09B009
+:10A40000BDE8F08F16462D1D224629463046FBF743
+:10A410001BFC0828F3D1224629463046FCF731FCC4
+:10A42000EDE76088291D6368F9F7B8FCE7E7174690
+:10A430006088032105F0ACFB4FF000088DF8048024
+:10A440000646ADF80680042FD9D36A79002AD6D003
+:10A4500028794FF6FF794FF01C0A13282CD008DC1E
+:10A46000012878D0062847D0072875D0122874D143
+:10A4700006E0142872D0152871D016286DD1ACE1F1
+:10A480000C2F6AD1307800F00301022965D140F029
+:10A49000080030706879B07001208DF804002889B8
+:10A4A000ADF808006889ADF80A00A889ADF80C007D
+:10A4B000E889ADF80E0019E0B07890429FD130786D
+:10A4C00001079CD5062F9AD120F0080030706088D3
+:10A4D000414660F31F41012008F0E2FF02208DF8A1
+:10A4E0000400ADF808902889ADF80A00608822467B
+:10A4F00001A9F7F7D8FD82E7082F80D12F89B5F899
+:10A500000A90402F01D2402001E0A7F1400080B224
+:10A5100080460146304600F048FC08B3716808EBFD
+:10A5200088002C2202EBC000095A4945E3D1FE48BD
+:10A5300007AAD0E90210CDE9071068798DF81C0050
+:10A5400008F0FF058DF81E5060883146FFF799FC32
+:10A550002246294639E0B6E014E03CE039E0E6E086
+:10A56000F148D0E90010CDE907106879ADF8207006
+:10A570008DF81C00ADF82290608807AA3146FFF7DD
+:10A5800080FC3CE7082FB6D16889B5F808804028E0
+:10A5900001D2402000E0403887B23946304600F012
+:10A5A00004FC0028A7D007EB870271680AEBC20001
+:10A5B0000844028A42459ED1017808299BD14078FF
+:10A5C0006979884297D1F9B222463046FEF7F3FE08
+:10A5D00015E70E2F07D0CDF81C80CDF820806879C4
+:10A5E0008DF81C00C8E76989EF898B46B5F80C9097
+:10A5F0003046FEF742FFABF14001402901D309206C
+:10A600004AE0B9F1170F01D3172F01D20B2043E015
+:10A6100040280ED000EB800271680AEBC2000844AB
+:10A620000178012903D1407869798842A9D00A20AC
+:10A6300032E03046FEF703FF014640282BD001EB05
+:10A64000810372680AEBC30002EB0008012288F85C
+:10A6500000206A7988F8012070682A894089B84208
+:10A6600000D938462D8A03232372A282E7812082F3
+:10A67000A4F80C906582084600F07CFB6081A8F885
+:10A680001490A8F81870A8F80E50A8F810B020463A
+:10A6900000F066FBB3E6042005212172A4F80A80CD
+:10A6A000E08101212173A049D1E90421CDE90721ED
+:10A6B00069798DF81C10ADF81E00608807AA314634
+:10A6C000FFF7DFFBE3E7062FE4D3B078904215D124
+:10A6D0003078010712D520F00800307060884146BC
+:10A6E00060F31F41012008F0DBFE02208DF804001A
+:10A6F0002889ADF80800ADF80A90F7E60421304645
+:10A70000FEF7D3FE05464028C4D002208303009004
+:10A7100022462946304600F065FB4146608865F3D5
+:10A720000F2160F31F41082008F0BAFE67E60E2FE4
+:10A73000B0D104213046FEF7B8FE81464028A9D0AA
+:10A740004146608869F30F2160F31F41082008F03B
+:10A75000A7FE288A0790E88900907068AF89408931
+:10A76000B84200D938468346B5F80A802889059052
+:10A77000484600F0FFFA6081079840B10220079B2D
+:10A78000009022464946304600F02CFB37E6B8F1EF
+:10A79000170F1ED3172F1CD304202072009860823D
+:10A7A000E781A4F810B0A4F80C8009EB8902716865
+:10A7B0000AEBC2000D1800990598A5F81480A5F8B9
+:10A7C00018B0E9812882204600F0CAFA06202870D5
+:10A7D00015E601200B230090D3E7082FA6D1298985
+:10A7E0003046FEF74AFE074640289FD007EB870217
+:10A7F00071680AEBC2000844804600F0ECFA0028B9
+:10A8000094D16D89B8F80E002844B0F5803F05D387
+:10A8100060883A46314600F01CFBF0E5002D85D0FB
+:10A82000A8F80E0060883A463146FFF701F9082083
+:10A830002072384600F09EFA6081A58127E770B546
+:10A840000D460646032105F0A3F9040004D0207844
+:10A85000000704D5112070BD43F2020070BD2A46E6
+:10A8600021463046FEF71FFF18B928686061686806
+:10A87000A061207840F008002070002070BD70B505
+:10A880000D460646032105F083F9040004D0207824
+:10A89000000704D4082070BD43F2020070BD2A46B0
+:10A8A00021463046FEF732FF00B9A582207820F01D
+:10A8B00008002070002070BD2DE9F04F0E4691B0C9
+:10A8C0008046032105F064F90446404605F0A4FAE9
+:10A8D00007460020079008900990ADF830000A90D4
+:10A8E00002900390049004B9FFDF0DF1080917BB33
+:10A8F000FFDF20E038460BA9002204F0C9FC9DF8D8
+:10A900002C0000F07F050A2D00D3FFDF6019017FC6
+:10A91000491E01779DF82C0000060CD52A460CA98B
+:10A9200007A8FEF716FE01E0A0ED010019F80510DA
+:10A93000491C09F80510761EF6B2DBD204F134008A
+:10A94000FC4D04F1260BDFF8F0A304F12A07069072
+:10A9500010E05846069900F06EFA064628700A285C
+:10A9600000D3FFDF5AF8261040468847E08CC05DD0
+:10A97000B04202D0208D0028EBD10A202870EE4D85
+:10A980004E4628350EE00CA907A800F054FA0446FC
+:10A99000375D55F8240000B9FFDF55F8242039460B
+:10A9A00040469047BDF81E000028ECD111B027E5C5
+:10A9B00010B5032105F0ECF8040000D1FFDF0A21F7
+:10A9C00004F11C0014F022F8207840F004002070FC
+:10A9D00010BD10B50C46032105F0DAF801190A7F05
+:10A9E00001211AB9808EA140084000D0012010BD7D
+:10A9F0002DE9F84F894615468246032105F0C8F82F
+:10AA0000070004D0284608F097FD40B903E043F260
+:10AA10000200BDE8F88F484608F0B4FD08B11020E8
+:10AA2000F7E7786828B169880089814201D909204F
+:10AA3000EFE7B9F800001C2418B1402809D24020E3
+:10AA400008E03846FEF7FBFC8046402819D1132069
+:10AA5000DFE7403880B280460146384600F0A5F96D
+:10AA600048B108EB8800796804EBC000085C012855
+:10AA700003D00820CDE70520CBE7FDF79BFF0600BC
+:10AA80000BD008EB8800796804EBC0000C18B9F80B
+:10AA9000000020B1E88910B113E01120B9E728883F
+:10AAA000172802D36888172801D20720B1E7686801
+:10AAB00038B12B1D224641463846FFF71DF90028C4
+:10AAC000A7D104F10C0269462046FFF71CF828883C
+:10AAD00060826888E082B9F8000030B102202070FE
+:10AAE000E889A080E889A0B12BE003202070A88924
+:10AAF000A08078688178402905D180F802803946A5
+:10AB00005046FEF722FE404600F034F9A9F8000056
+:10AB100021E07868218B4089884200D9084620834B
+:10AB2000A6F802A004203072B9F800007081E08914
+:10AB30007082F181208B3082A08AB081304600F093
+:10AB40000FF97868C178402905D180F8038039462B
+:10AB50005046FEF74BFE00205BE770B50D460646FB
+:10AB6000032105F015F8040003D0402D04D2402540
+:10AB700003E043F2020070BD403DADB2294600F053
+:10AB800014F958B105EB85011C22606802EBC10184
+:10AB9000084400F020F918B1082070BD052070BDF0
+:10ABA0002A462146304600F054F9002070BD2DE9B8
+:10ABB000F0410D4616468046032104F0E9FF0446A5
+:10ABC000402D01D2402500E0403DADB28CB1294678
+:10ABD00000F0EBF880B105EB85011C22606802EB08
+:10ABE000C1014718384600F0F6F838B10820BDE832
+:10ABF000F08143F20200FAE70520F8E733463A46CF
+:10AC000029462046FFF778F80028F0D1EAB221461D
+:10AC10004046FEF797FF0020E9E72DE9F0410D4699
+:10AC200016468046032104F0B3FF0446402D01D2AE
+:10AC3000402500E0403DAFB224B1304608F07CFC36
+:10AC400038B902E043F20200D1E7306808F074FC42
+:10AC500008B11020CBE73946204600F0A6F860B1D5
+:10AC600007EB87011C22606802EBC10145182846EA
+:10AC700000F0B1F818B10820B9E70520B7E7B088AF
+:10AC8000A98A884201D90C20B1E76168E88C49782B
+:10AC9000B0EBC10F01D31320A9E73946204600F0DD
+:10ACA00078F80146606808234078C20005F1240066
+:10ACB00004F0F5FDD6E90012C0E90012FAB221460F
+:10ACC0004046FEF7B5FE002091E72DE9F0470D461E
+:10ACD0001F4690468146032104F05AFF0446402D4A
+:10ACE00001D2402001E0A5F1400086B23CB14DB157
+:10ACF000384608F065FC50B11020BDE8F08743F2FB
+:10AD00000200FAE76068C8B1A0F80C8024E0314680
+:10AD1000204600F04AF888B106EB86011C226068E4
+:10AD200002EBC1014518284600F055F840B1082053
+:10AD3000E3E7000030000020B8ED01000520DCE76B
+:10AD4000A5F80880F2B221464846FEF7FBFE1FB187
+:10AD5000A8896989084438800020CEE704F0F7BB51
+:10AD6000017821F00F01491C21F0F0011031017030
+:10AD7000FDF723BE10B50446402800D9FFDF40345C
+:10AD8000A0B210BD406842690078484302EBC000A1
+:10AD90007047C2784068037812FB03F24378406939
+:10ADA00001FB032100EBC1007047C2788A4209D938
+:10ADB000406801EB81011C2202EBC101405C08B13B
+:10ADC00001207047002070470078062801D9012033
+:10ADD0007047002070470078062801D00120704796
+:10ADE00000207047F0B401EB81061C27446807EB94
+:10ADF000C6063444049D05262670E3802571F0BC08
+:10AE0000FEF790BA10B5418911B1FFF7DDFF08B127
+:10AE1000002010BD012010BD10B5C18C8278B1EBAF
+:10AE2000C20F04D9C18911B1FFF7CEFF08B10020CC
+:10AE300010BD012010BD10B50C4601230A22011DD2
+:10AE400004F063FD00782188012282409143218033
+:10AE500010BDF0B402EB82051C264C6806EBC5055C
+:10AE6000072363554B681C79402C03D11A71F0BC41
+:10AE7000FEF701BDF0BC704770B50B2000F0B5F9CE
+:10AE8000082000F0B2F900210B2000F0C4F90021E5
+:10AE9000082000F0C0F9EC4C01256560A560002099
+:10AEA000C4F84001C4F84401C4F848010B2000F084
+:10AEB000A7F9082000F0A4F90B2000F08BF9256019
+:10AEC00070BD10B50B2000F090F9082000F08DF94E
+:10AED000DD48012141608160DC490A68002AFCD11B
+:10AEE0000021C0F84011C0F84411C0F848110B20EF
+:10AEF00000F086F9BDE81040082000F081B910B5D7
+:10AF00000B2000F07DF9BDE81040082000F078B972
+:10AF100000B530B1012806D0022806D0FFDF00209E
+:10AF200000BDCB4800BDCB4800BDCA48001D00BDD8
+:10AF300070B5C9494FF000400860C84DC00BC5F856
+:10AF40000803C74800240460C5F840410820C43500
+:10AF500000F04BF9C5F83C41C248047070BD08B51B
+:10AF6000B94A002128B1012811D002281CD0FFDFE6
+:10AF700008BD4FF48030C2F80803C2F84803B34854
+:10AF80003C300160C2F84011BDE80840D0E74FF402
+:10AF90000030C2F80803C2F84803AC4840300160F2
+:10AFA000C2F84411AB480CE04FF48020C2F808030B
+:10AFB000C2F84803A54844300160C2F84811A548CA
+:10AFC000001D0068009008BD70B516460D46044689
+:10AFD000022800D9FFDF00229B48012304F1100161
+:10AFE0008B4000EB8401C1F8405526B1C1F84021E7
+:10AFF000C0F8043303E0C0F80833C1F84021C0F8BA
+:10B00000443370BD2DE9F0411C46154630B101288E
+:10B0100034D0022839D0FFDFBDE8F081891E00223C
+:10B0200021F07F411046FFF7CFFF012C24D00020F4
+:10B030008C4E8A4F012470703C61894900203C3954
+:10B0400008600220091D0860854904203039086025
+:10B0500083483D350560C7F80042082000F0D0F86D
+:10B060002004C7F80403082000F0B4F87A49E00788
+:10B07000091F08603470CFE70120D9E7012B02D007
+:10B080000022012005E00122FBE7012B04D0002271
+:10B090000220BDE8F04197E70122F9E76B4800681C
+:10B0A000704770B500F0C7F8674C0546D4F840010A
+:10B0B0000026012809D1D4F80803C00305D54FF4B0
+:10B0C0008030C4F80803C4F84061D4F84401012872
+:10B0D0000CD1D4F80803800308D54FF40030C4F82D
+:10B0E0000803C4F84461012007F0B7FAD4F8480116
+:10B0F00001280CD1D4F80803400308D54FF4802070
+:10B10000C4F80803C4F84861022007F0A6FA5648BC
+:10B11000056070BD70B500F08EF8524D0446287879
+:10B1200058B1FFF705FF687820B1002085F80100CD
+:10B1300007F093FA4C48046070BD0320F8E74FF025
+:10B14000E0214FF40010C1F800027047152000F014
+:10B1500057B8424901200861082000F051B83F4922
+:10B160004FF47C10C1F808030020024601EB800375
+:10B17000C3F84025C3F84021401CC0B20628F5D3CF
+:10B180007047410A43F609525143C0F3080010FBCF
+:10B1900002F000F5807001EB5020704710B5430BB2
+:10B1A00048F2376463431B0C5C020C602F4C03FBBA
+:10B1B00004002F4B4CF2F72443435B0D13FB04F4C4
+:10B1C00004EB402000F580704012107008681844AD
+:10B1D000086010BD00F01F0201219140400980006D
+:10B1E00000F1E020C0F80011704700F01F020121BB
+:10B1F00091404009800000F1E020C0F880117047C4
+:10B2000000F01F02012191404009800000F1E02080
+:10B21000C0F8801270474907090E002806DA00F0CE
+:10B220000F0000F1E02080F8141D704700F1E020CD
+:10B2300080F8001470470C48001F00680A4A0D4946
+:10B24000121D11607047000000B0004004B50040BE
+:10B250004081004044B1004008F5014000800040BA
+:10B26000408500403800002014050240F7C2FFFF6F
+:10B270006F0C01000100000110B5EFF3108000F029
+:10B28000010472B6E9484178491C417040780128B0
+:10B2900001D107F087FD002C00D162B610BD70B55A
+:10B2A000E24CE07848B90125E570FFF7E5FF07F0CB
+:10B2B00081FD20B1002007F05CFD002070BD4FF043
+:10B2C00080406571C0F80453F7E770B5EFF3108064
+:10B2D00000F0010572B6D54C607800B9FFDF6078E8
+:10B2E000401E6070607808B907F060FD002D00D145
+:10B2F00062B670BDCD4810B5C17821B10021417151
+:10B30000C170FFF7E2FF002010BD10B5044607F042
+:10B3100051FDC649C978084000D0012020600020B6
+:10B3200010BD2DE9F05FDFF804934278817889F849
+:10B330000620002689F80710074689F8086000787B
+:10B34000354620B101280FD002280FD0FFDF07F0CB
+:10B350003EFD98B107F042FDB0420FD1304607F0F4
+:10B3600041FD0028FAD047E00126F0E7FFF784FF0F
+:10B3700007F020FD0028FBD00226E8E70120840723
+:10B38000E060C4F80451AA490E600107D1F84412E4
+:10B39000A74AC1F3423124321160A5493431086013
+:10B3A0004FF0020BC4F804B3A060DFF888A2DAF80B
+:10B3B0000010C94341F3001101F10108DAF800104F
+:10B3C00041F01001CAF8001000E020BFD4F80401D9
+:10B3D0000028FAD0304607F005FD0028FAD0B8F171
+:10B3E000000F05D1DAF8001021F01001CAF80010A2
+:10B3F000C4F808B3C4F8045199F807004C4670B17A
+:10B40000387860B907F0D6FC074607F037FE6FF0D2
+:10B41000004117B1C4E9031001E0C4E9030116B10A
+:10B420002571BDE8F09F0127BE0727714FF019086D
+:10B43000C6F80883B761C6F80051C6F80C51C6F8C3
+:10B44000105107F0B7FC10B1A770376100E027700A
+:10B45000FFF712FF7649A07920310860C6F804830F
+:10B46000DFE770B5050000D1FFDF4FF080424FF0FD
+:10B47000FF30C2F808030021C2F80011C2F804111D
+:10B48000C2F80C11C2F81011684C617007F098FCFA
+:10B4900010B10120E07060702846BDE8704040E7C0
+:10B4A0002DE9F05F6448D0F800B0634A6349083280
+:10B4B00011608406D4F8080110B14FF0010801E0D2
+:10B4C0004FF00008D4F8000100B101208146D4F803
+:10B4D000040108B1012600E00026D4F80C0100B1F7
+:10B4E00001208246D4F8100108B1012700E00027AE
+:10B4F00048EA090126EA010020EA0A00B84300D020
+:10B50000FFDF0025B8F1000F04D0C4F80851012076
+:10B5100007F02FFC5FEA0900DFF810814FF0010906
+:10B5200013D0C4F8005198F8050020B188F80550F0
+:10B53000002007F01EFC98F8000030B107F03AFC3C
+:10B5400018B188F80290C4F810900EB1C4F80451F4
+:10B55000BAF1000F0CD0C4F80C5198F8020046461E
+:10B5600000B9FFDFB5703570C4F81490FFF7ADFE79
+:10B5700037B1C4F8105198F8040008B100F020F871
+:10B580002D49091DC1F800B04BE770B5274DE8788B
+:10B5900008B907F00BFC01208407A061A87850B11E
+:10B5A000D4F80C0120B9002007F01CFC0028F7D1CA
+:10B5B0000020C4F80C014FF0FF30C4F8080370BD40
+:10B5C0002DE9F041194C4FF080470125E079F0B1A9
+:10B5D000012803D0217A401E814218DA07F0EAFBE5
+:10B5E000064607F04BFDE179012902D9217A491C71
+:10B5F00021720EB1216900E0E168411A022902DAE4
+:10B6000011F1020F0BDC0EB1206100E0E060FFF7EA
+:10B6100033FE07F0CFFB28B13D61A57003E07D61EB
+:10B62000BDE8F081257000202072F9E73C00002081
+:10B630001805004010ED00E0100502400100000177
+:10B6400010B50D2000F06FF8C4B26FF0040000F0E8
+:10B650006AF8C0B2844200D0FFDF3A490120086096
+:10B6600010BD70B50D2000F048F8374C0020C4F82C
+:10B6700000010125C4F804530D2000F049F82560AD
+:10B680004FF0E0216014C1F8000170BD10B50D202D
+:10B6900000F033F82C48012141600021C0F800116E
+:10B6A000BDE810400D2000F033B8284810B50468FC
+:10B6B00026492748083108602349D1F800010128AC
+:10B6C00004D0FFDF2148001D046010BD1D48001D8F
+:10B6D00000680022C0B2C1F8002107F027FCF1E7A2
+:10B6E00010B51948D0F800110029FBD0FFF7DDFF95
+:10B6F000BDE810400D2000F00BB800F01F02012142
+:10B7000091404009800000F1E020C0F880117047AE
+:10B7100000F01F02012191404009800000F1E0206B
+:10B72000C0F880127047002806DA00F00F0000F120
+:10B73000E02090F8140D03E000F1E02090F8000400
+:10B740004009704704D5004000D000401005024079
+:10B750000100000110B5202000F082F8202000F048
+:10B760008AF84A49202081F8000449490006086007
+:10B77000091D48480860F5F7CFFD4549C831086004
+:10B780004548D0F8041341F00101C0F80413D0F883
+:10B79000041341F08071C0F804133C4901201C39A6
+:10B7A000C1F8000110BD10B5202000F059F838484C
+:10B7B00000210160001D0160354A481EE83A106012
+:10B7C000354AC2F80803324BC8331960C2F8000189
+:10B7D000C2F8600131490860BDE81040202000F047
+:10B7E0004AB82B492E48EC390860704728492C4844
+:10B7F000E8390860704726480160001D521E02604B
+:10B80000704723490120E8390860BFF34F8F704724
+:10B8100070B51F4A8069E83A214911601E49D1F884
+:10B82000006100231F4D1D4A5C1E1EB1A84206D3B5
+:10B8300000210FE0D1F8606186B1A84209D2C1F8B9
+:10B840000031C1F860311460BDE87040202000F084
+:10B8500012B81168BDE8704013F004B9FFDF70BD85
+:10B8600000F01F02012191404009800000F1E0201A
+:10B87000C0F88011704700F01F020121914040097B
+:10B88000800000F1E020C0F88012704720E000E066
+:10B890000006024024120020000002400004024082
+:10B8A00001000001003002004FF0E0214FF0007075
+:10B8B000C1F88001C1F88002384B802283F800244F
+:10B8C000C1F80001704700B502460420344903E086
+:10B8D00001EBC0031B792BB1401EC0B2F8D2FFDFD1
+:10B8E000FF2000BD41F8302001EBC00100224A7169
+:10B8F0008A7101220A7100BD294A002102EBC000B1
+:10B900000171704710B50446042800D3FFDF2448B6
+:10B9100000EBC4042079012800D0FFDF6079A17911
+:10B92000401CC0B2814200D060714FF0E0214FF066
+:10B930000070C1F8000210BD2DE9F04119480568FA
+:10B9400018491948083108601448042690F8000482
+:10B95000134F4009154C042818D0FFDF16E021785A
+:10B9600007EBC1000279012A08D1427983799A4212
+:10B9700004D04279827157F8310080472078401C0A
+:10B98000C0B22070042801D300202070761EF6B2C9
+:10B99000E5D20448001D0560BDE8F08119E000E033
+:10B9A0009805002010050240010000015000002011
+:10B9B00070B50C46054600F043FB21462846BDE81D
+:10B9C000704001F026BC0000F8B51D46DDE90647D1
+:10B9D0000E000AD004F020FA2346FF1DBCB2314607
+:10B9E0002A46009403F02DFEF8BDD01922461946D0
+:10B9F00012F06BFF2046F8BD70B50D4604461021CD
+:10BA000012F0E2FF258117206081A07B40F00A0040
+:10BA1000A07370BD4FF6FF720A800146032007F045
+:10BA20003FBD704700897047827BD30701D19207E1
+:10BA300003D4808908800020704705207047827BEE
+:10BA4000920700D58181704701460020098841F6A0
+:10BA5000FE52114200D00120704700B50346807BA2
+:10BA6000C00701D0052000BD59811846FFF7ECFF43
+:10BA7000C00703D0987B40F004009873987B40F097
+:10BA800001009873002000BD827B520700D509B1E8
+:10BA90004089704717207047827B61F3C30282732D
+:10BAA00070472DE9FC5F0E4604460178964601205A
+:10BAB00000FA01F14DF6FF5201EA020962684FF601
+:10BAC000FF7B1188594506D0B9F1000F06D041F629
+:10BAD000FE55294202D00120BDE8FC9F41EA090140
+:10BAE00011801D0014D04FF0000C85F800C02378A1
+:10BAF0000521032267464FF0020A0E2B74D2DFE8BD
+:10BB000003F0F809252F47626974479092B3D0D7A4
+:10BB10000420E1E7616820898B7B9B077DD517288E
+:10BB200048D30B89834245D38989172901D38142A0
+:10BB300040D185F800A0A5F80100328061688881B5
+:10BB40006068817B21F002018173C5E004202870C8
+:10BB50002089A5F801006089A5F803003180BBE0C9
+:10BB6000208A3188C01D1FFA80F8414522D3062063
+:10BB700028702089A5F801006089A5F80300A08934
+:10BB8000A5F805000721208ACDE9000163693EE0A0
+:10BB9000082B10D0082028702089A5F801006089A2
+:10BBA000A5F8030031806A1D694604F10C0005F018
+:10BBB00090FD10B15FE01020EDE730889DF8001097
+:10BBC0000844308088E00A2028702089A5F8010008
+:10BBD000328045E00C2028702089A5F8010060899A
+:10BBE000A5F8030031803BE083E02189338800EB36
+:10BBF00041021FFA82F843453DD3B8F1050F3AD30D
+:10BC00000E222A700BEA4101CDE90010E36860883A
+:10BC10002A467146FFF7D8FE00E04DE0A6F8008006
+:10BC20005AE04020287060893188C01C1FFA80F8D3
+:10BC3000414520D32878714620F03F00123028700B
+:10BC40002089A5F801006089CDE9000260882A46B4
+:10BC5000E368FFF7B9FEA6F80080287840063BD4D9
+:10BC600061682089888037E0A0893288401D1FFAEA
+:10BC700080F8424501D204273EE016202870208932
+:10BC8000A5F801006089A5F80300A089CDE90001AD
+:10BC900060882A4671462369FFF796FEA6F8008061
+:10BCA000DEE718202870207A6870A6F800A013E05C
+:10BCB00061680A88920401D405271DE0C988228999
+:10BCC000914201D0062717E01E212970308060685C
+:10BCD000018821F400510180B9F1000F0CD0618876
+:10BCE00078230022032007F031FB616820788870F8
+:10BCF00007E0A6F800C003276068018821EA09016F
+:10BD000001803846E8E62DE9FF4F85B01746129CC2
+:10BD10000D001E461CD03078C10703D000F03F0054
+:10BD2000192801D9012100E000212046FFF7ACFECF
+:10BD3000A8420DD32088A0F57F41FF3908D0307884
+:10BD4000410601D4000605D5082009B0BDE8F08FF2
+:10BD50000720FAE700208DF800008DF80100307808
+:10BD60006B1E00F03F0C0121A81E4FF0050A4FF09A
+:10BD700002094FF0030B9AB2BCF1200F75D2DFE835
+:10BD80000CF08B10745E7468748C749C74B674BB05
+:10BD900074C974D574E2747474F274F074EF74EE50
+:10BDA000748B052D78D18DF80090A0788DF8040063
+:10BDB0007088ADF8060030798DF80100707800F0D9
+:10BDC0003F000C2829D00ADCA0F10200092863D228
+:10BDD000DFE800F0126215621A621D62200012286C
+:10BDE00024D004DC0E281BD01028DBD11BE0162841
+:10BDF0001FD01828D6D11FE02078800701E02078D6
+:10BE00004007002848DAEFE020780007F9E72078BB
+:10BE1000C006F6E720788006F3E720784006F0E7D2
+:10BE200020780006EDE72088C005EAE72088400575
+:10BE3000E7E720880005E4E72088C004E1E72078F0
+:10BE4000800729D5032D27D18DF800B0B6F8010061
+:10BE500082E0217849071FD5062D1DD381B2707865
+:10BE6000012803D0022817D102E0CAE0022000E036
+:10BE7000102004228DF8002072788DF80420801C98
+:10BE8000B1FBF0F2ADF8062092B242438A4203D1F0
+:10BE90000397ADF80890A7E07AE02078000777D5FF
+:10BEA00098B282088DF800A0ADF80420B0EB820FA4
+:10BEB0006ED10297ADF8061096E02178C90667D5D5
+:10BEC000022D65D381B206208DF80000707802281B
+:10BED0005ED300BFB1FBF0F28DF80400ADF8062090
+:10BEE00092B242438A4253D1ADF808907BE0207869
+:10BEF00080064DD5072003E0207840067FD5082036
+:10BF00008DF80000A088ADF80400ADF80620ADF86B
+:10BF1000081068E02078000671D50920ADF80420EB
+:10BF20008DF80000ADF8061002975DE02188C90584
+:10BF300065D5022D63D381B20A208DF80000707898
+:10BF400004285CD3C6E72088400558D5012D56D17A
+:10BF50000B208DF80000A088ADF8040044E021E03B
+:10BF600026E016E0FFE72088000548D5052D46D3DA
+:10BF70000C208DF80000A088ADF80400B6F803008E
+:10BF80006D1FADF80850ADF80600ADF80AA02AE024
+:10BF900035E02088C00432D5012D30D10D208DF838
+:10BFA000000021E02088800429D4B6F80100E08058
+:10BFB000A07B000723D5032D21D3307800F03F006C
+:10BFC0001B2818D00F208DF80000208840F4005066
+:10BFD000A4F80000B6F80100ADF80400ED1EADF8BD
+:10BFE0000650ADF808B0039769460598F9F773FB5A
+:10BFF000050008D016E00E208DF80000EAE70725BE
+:10C0000010E008250EE0307800F03F001B2809D032
+:10C010001D2807D00320059907F042FA208800F474
+:10C0200000502080A07B400708D52046FFF70CFD7C
+:10C03000C00703D1A07B20F00400A073284684E64B
+:10C040001FB5032806D101208DF8000088B269468B
+:10C05000F9F741FB1FBD0000F8B51D46DDE90647B5
+:10C060000E000AD003F0D8FE2346FF1DBCB23146B5
+:10C070002A46009403F0E5FAF8BDD0192246194685
+:10C0800012F023FC2046F8BD2DE9FF4F8DB09B46F2
+:10C09000DDE91B57DDF87CA00C46082B05D0E069D4
+:10C0A00001F000F950B11020D2E02888092140F0B9
+:10C0B000100028808AF80010022617E0E1690120AC
+:10C0C0008871E2694FF420519180E1698872E069DA
+:10C0D00042F601010181E069002181732888112164
+:10C0E00040F0200028808AF80010042638780A9052
+:10C0F0000A2038704FF0020904F118004D460C90E8
+:10C1000001F093FBB04681E0BBF1100F0ED1022D80
+:10C110000CD0A9EB0800801C80B20221CDE90010F0
+:10C1200005AB52461E990D98FFF796FFBDF8161005
+:10C130001A98814203D9F74800790F9004E003D19F
+:10C140000A9808B138702FE04FF00201CDE90019CC
+:10C150000DF1160352461E990D98FFF77DFF1D98AD
+:10C160000088401B801B83B2C6F1FF00984200D2BA
+:10C1700003461E990BA8D9B15FF00002DDF878C024
+:10C18000CDE9032009EB060189B2CDE901C10F9881
+:10C190000090BDF8161000220D9801F0C9FB387010
+:10C1A00070B1C0B2832807D0BDF8160020833AE0F2
+:10C1B0000AEB09018A19E1E7022011B0BDE8F08F0E
+:10C1C000BDF82C00811901F0FF08022D0DD09AF85E
+:10C1D0000120424506D1BDF82010814207D0B8F1B8
+:10C1E000FF0F04D09AF801801FE08AF80180C94847
+:10C1F00000680178052902D1BDF81610818009EB8D
+:10C2000008001FFA80F905EB080085B2DDE90C1083
+:10C2100005AB0F9A01F00CFB28B91D980088411B53
+:10C220004145BFF671AF022D13D0BBF1100F0CD1F9
+:10C23000A9EB0800801C81B20220CDE9000105AB0A
+:10C2400052461E990D98FFF707FF1D9805800020A4
+:10C2500038700020B1E72DE9F8439C46089E13464C
+:10C260000027B26B9AB3491F8CB2F18FA1F57F45BD
+:10C27000FF3D05D05518AD882944891D8DB200E0D9
+:10C2800000252919B6F83C800831414520D82A44B8
+:10C29000BCF8011022F8021BBCF8031022F8021BA4
+:10C2A000984622F8024B914603F0A4FD4FF00C0C87
+:10C2B00041464A462346CDF800C003F08EF9F58783
+:10C2C000B16B00202944A41D2144088003E001E053
+:10C2D000092700E083273846BDE8F88310B50B88AE
+:10C2E000848F9C420CD9846BE018048844B1848804
+:10C2F00024F40044A41D23440B801060002010BDD2
+:10C300000A2010BD2DE9F0478AB0002590468946E5
+:10C310008246ADF8185007274BE0059806888088BC
+:10C32000000446D4A8F8006007A80195009702957C
+:10C33000CDE903504FF4007300223146504601F01E
+:10C34000F7FA04003CD1BDF81800ADF820000598BC
+:10C3500004888188B44216D10A0414D40195029548
+:10C36000039521F400410097049541F480434288ED
+:10C370002146504601F0B2F804000BD1059881889F
+:10C3800041F40041818005AA08A94846FFF7A6FFAD
+:10C390000400DCD00097059802950195039504955B
+:10C3A0000188BDF81C300022504601F097F80A2C95
+:10C3B00006D105AA06A94846FFF790FF0400ACD0B5
+:10C3C000ADF8185004E00598818821F4004181807F
+:10C3D00005AA06A94846FFF781FF0028F3D00A2CDA
+:10C3E00003D020460AB0BDE8F0870020FAE710B578
+:10C3F0000C46896B86B051B10C218DF80010A18FCD
+:10C40000ADF80810A16B01916946FAF715F9002003
+:10C410004FF6FF71A063E187A08706B010BD2DE93C
+:10C42000F0410D460746896B0020069E1446002900
+:10C4300011D0012B0FD1324629463846FFF762FF53
+:10C44000002808D1002C06D0324629463846BDE8DF
+:10C45000F04100F036BFBDE8F0812DE9FC41144603
+:10C46000DDE9087C0E46DDE90A15521DBCF800E046
+:10C4700092B2964502D20720BDE8FC81ACF80020BC
+:10C4800017222A70A5F80160A5F803300522CDE92E
+:10C4900000423B462A46FFF7DFFD0020ECE770B57F
+:10C4A0000C4615464821204612F0B0FA04F1080067
+:10C4B00044F81C0F00204FF6FF71E0616184208476
+:10C4C000A5841720E08494F82A0040F00A0084F83C
+:10C4D0002A0070BD4FF6FF720A800146042006F064
+:10C4E000DFBF30B585B00C460546FFF780FFA18E53
+:10C4F000284629B101218DF800106946FAF79CF809
+:10C500000020E0622063606305B030BDB0F84000F9
+:10C51000704700005400002090F84620920703D492
+:10C52000408808800020F3E70620F1E790F84620D5
+:10C530009207EDD5A0F84410EAE7014600200988EB
+:10C540000A0700D5012011F0F00F01D040F00200E1
+:10C55000CA0501D540F004008A0501D540F0080065
+:10C560004A0501D540F010000905D1D540F0200062
+:10C57000CEE700B5034690F84600C00701D006207C
+:10C5800000BDA3F842101846FFF7D7FF10F03E0F8A
+:10C5900005D093F8460040F0040083F8460013F8F5
+:10C5A000460F40F001001870002000BD90F84620B2
+:10C5B000520700D511B1B0F84200A9E71720A7E74C
+:10C5C00010F8462F61F3C3020270A1E72DE9FF4F77
+:10C5D0009BB00E00DDE92B34DDE92978289D24D0BD
+:10C5E0002878C10703D000F03F00192801D90121A4
+:10C5F00000E000212046FFF7D9FFB04215D328788C
+:10C60000410600F03F010CD41E290CD0218811F402
+:10C610007F6F0AD13A8842B1A1F57F42FF3A04D038
+:10C6200001E0122901D1000602D504201FB0C5E5A2
+:10C63000F9491D984FF0000A08718DF818A08DF87F
+:10C640003CA00FAA0A60ADF81CA0ADF850A0297854
+:10C65000994601F03F02701F5B1C04F1180C4FF06B
+:10C66000060E4FF0040BCDF858C01F2A7ED2DFE82B
+:10C6700002F07D7D107D267DAC7DF47DF37DF27D25
+:10C68000F17DF47DF07D7D7DEF7DEE7D7D7D7D7D99
+:10C69000ED0094F84610B5F80100890701D5032E86
+:10C6A00002D08DF818B022E34FF40061ADF85010BD
+:10C6B000608003218DF83C10ADF84000D8E2052ED3
+:10C6C000EFD1B5F801002083ADF81C00B5F80310D8
+:10C6D000618308B1884201D901207FE10020A07266
+:10C6E00020814FF6FF702084169801F09EF80520F7
+:10C6F00089F800000220029083460AAB1D9A169921
+:10C700001B9801F095F890BB9DF82E00012804D0ED
+:10C71000022089F80100102003E0012089F80100BF
+:10C7200002200590002203A90BA804F0D2FFE8BB69
+:10C730009DF80C00059981423DD13A88801CA2EBFE
+:10C740000B01814237DB02990220CDE900010DF196
+:10C750002A034A4641461B98FFF77EFC02980BF1DC
+:10C76000020B801C80B217AA03A901E0A0E228E016
+:10C7700002900BA804F0ADFF02999DF80C00CDE9E2
+:10C78000000117AB4A4641461B98FFF765FC9DF830
+:10C790000C100AAB0BEB01001FFA80FB02981D9AEC
+:10C7A000084480B2029016991B9800E003E001F063
+:10C7B0003FF80028B6D0BBF1020F02D0A7F800B0B6
+:10C7C00053E20A208DF818004FE200210391072E52
+:10C7D000FFF467AFB5F801002083ADF81C00B5F891
+:10C7E0000320628300283FF477AF90423FF674AF96
+:10C7F0000120A072B5F8050020810020A073E06937
+:10C8000000F050FD78B9E16901208871E2694FF4C8
+:10C8100020519180E1698872E06942F6010101814D
+:10C82000E06900218173F01F20841E986062072058
+:10C830006084169800F0F9FF072089F800000120B5
+:10C84000049002900020ADF82A0028E01DE2A3E148
+:10C850003AE1EAE016E2AEE086E049E0029801281B
+:10C8600014D0E0698079012803D1BDF82800ADF823
+:10C870000E00049803ABCDE900B04A4641461B9830
+:10C88000FFF7EAFB0498001D80B20490BDF82A006F
+:10C89000ADF80C00ADF80E00059880B202900AAB1E
+:10C8A0001D9A16991B9800F0C3FF28B90298398881
+:10C8B000001D05908142D1D20298012881D0E06903
+:10C8C0008079012805D0BDF82810A1F57F40FF38F8
+:10C8D00003D1BDF82800ADF80E00049803ABCDE9F4
+:10C8E00000B04A4641461B98FFF7B6FB0298BBE1F1
+:10C8F000072E02D0152E7FF4D4AEB5F80110218397
+:10C90000ADF81C10B5F80320628300293FF4E4AEB3
+:10C9100091423FF6E1AE0121A1724FF0000BA4F865
+:10C9200008B084F80EB0052E07D0C0B2691DE269C8
+:10C9300004F0B0FE00287FF444AF4FF6FF7020846F
+:10C9400001A906AA14A8CDF800B081E885032878CB
+:10C95000214600F03F031D9A1B98FFF795FB824686
+:10C96000208BADF81C0080E10120032EC3D14021B3
+:10C97000ADF85010B5F801102183ADF81C100AAACB
+:10C98000B8F1000F00D00023CDE9020304921D98F6
+:10C99000CDF80480009038880022401E83B21B9896
+:10C9A00000F0C6FF8DF8180090BB0B2089F800003E
+:10C9B000BDF8280037E04FF0010C052E9BD18020F8
+:10C9C000ADF85000B5F801102183B5F803002084BC
+:10C9D000ADF81C10B0F5007F03D907208DF81800C2
+:10C9E00085E140F47C4222840CA8B8F1000F00D00D
+:10C9F0000023CDE90330CDE9018C1D9800903888E3
+:10CA0000401E83B21B9800F093FF8DF8180028B1E8
+:10CA10008328A8D10220BDE0540000200D2189F810
+:10CA20000010BDF83000401C1EE1032E04D2480661
+:10CA30007FF537AE002017E1B5F80110ADF81C10F6
+:10CA40002878400602D58DF83CE002E007208DF8FA
+:10CA50003C004FF000080320CDE902081E9BCDF8F2
+:10CA600010801D980193A6F1030B00901FFA8BF321
+:10CA700042461B9800F032FD8DF818008DF83C807E
+:10CA8000297849060DD52088C00506D5208BBDF82C
+:10CA90001C10884201D1C4F8248040468DF81880CB
+:10CAA000E2E0832801D14FF0020A4FF48070ADF824
+:10CAB0005000BDF81C002083A4F820B01E986062CE
+:10CAC000032060841321CCE0052EFFF4EAADB5F815
+:10CAD0000110ADF81C10A28F62B3A2F57F43FE3B9C
+:10CAE00028D008228DF83C204FF0000B0523CDE91B
+:10CAF000023BDDF878C0CDF810B01D9A80B2CDF8B9
+:10CB000004C040F400430092B5F803201B9800F0E5
+:10CB1000E5FC8DF83CB04FF400718DF81800ADF8CD
+:10CB20005010832810D0F8B1A18FA1F57F40FE38B6
+:10CB300007D0DCE00B228DF83C204FF6FE72A28776
+:10CB4000D2E7A4F83CB0D2E000942B4631461E9ABE
+:10CB50001B98FFF780FB8DF8180008B183284BD194
+:10CB6000BDF81C00208355E700942B4631461E9AE1
+:10CB70001B98FFF770FB8DF81800E8BBE18FA06BE6
+:10CB80000844811D8DE882034388828801881B98B0
+:10CB9000FFF763FC824668E095F80180022E70D1B1
+:10CBA0005FEA080002D0B8F1010F6AD109208DF8C0
+:10CBB0003C0007A800908DF84080434600222146A3
+:10CBC0001B98FFF72CFC8DF842004FF0000B8DF8FE
+:10CBD00043B050B9B8F1010F12D0B8F1000F04D131
+:10CBE000A18FA1F57F40FF380AD0A08F40B18DF80A
+:10CBF0003CB04FF4806000E037E0ADF850000DE04D
+:10CC00000FA91B98F9F718FD82468DF83CB04FF438
+:10CC10008060ADF85000BAF1020F06D0FB48006802
+:10CC2000C07928B18DF8180027E0A4F8188044E0F6
+:10CC3000BAF1000F03D081208DF818003DE007A85D
+:10CC400000904346012221461B98FFF7E8FB8DF830
+:10CC5000180021461B98FFF7CAFB9DF8180020B961
+:10CC6000192189F80010012038809DF83C0020B17E
+:10CC70000FA91B98F9F7E0FC8246BAF1000F33D0F8
+:10CC80001BE018E08DF818E031E02078000712D59D
+:10CC9000012E10D10A208DF83C00E088ADF840004C
+:10CCA00004201B9906F0FCFB0820ADF85000C1E6FB
+:10CCB00048067FF5F6AC4FF0040A2088BDF8501006
+:10CCC00008432080BDF8500080050BD5A18FA1F549
+:10CCD0007F40FE3806D11E98E06228982063A68621
+:10CCE0004FF0030A5046A1E49DF8180078B10120E6
+:10CCF00089F80000297889F80110BDF81C10A9F8FE
+:10CD000002109DF8181089F804100520388020883A
+:10CD1000BDF8501088432080E4E72DE9FF4F884696
+:10CD2000087895B0012181404FF20900249C014010
+:10CD3000ADF820102088DDF88890A0F57F424FF0F4
+:10CD4000000AFF3A02D029B1000703D5012019B02B
+:10CD5000BDE8F08F239E4FF0000B0EA886F800B0C0
+:10CD600018995D460988ADF83410A8498DF81CB0B3
+:10CD7000179A0A718DF838B0086098F800000128F9
+:10CD80003BD0022809D003286FD1307820F03F0033
+:10CD90001D303070B8F80400E08098F800100320CF
+:10CDA000022904D1317821F03F011B31317094F810
+:10CDB0004610090759D505ABB9F1000F13D0002172
+:10CDC00002AA82E80B000720CDE90009BDF8340073
+:10CDD000B8F80410C01E83B20022159800F0A8FD18
+:10CDE0000028D1D101E0F11CEAE7B8F80400A6F868
+:10CDF0000100BDF81400C01C04E198F805108DF87E
+:10CE00001C1098F80400012806D04FF4007A02287C
+:10CE10002CD00328B8D16CE12188B8F8080011F4AF
+:10CE20000061ADF8201020D017281CD3B4F84010B2
+:10CE3000814218D3B4F84410172901D3814212D18A
+:10CE4000317821F03F01C91C3170A6F8010003219F
+:10CE5000ADF83410A4F8440094F8460020F0020025
+:10CE600084F8460065E105257EE177E1208808F138
+:10CE7000080700F4FE60ADF8200010F0F00F1BD0A2
+:10CE800010F0C00F03D03888228B9042EBD199B9B3
+:10CE9000B878C00710D0B9680720CDE902B1CDF845
+:10CEA00004B00090CDF810B0FB88BA883988159886
+:10CEB00000F014FB0028D6D12398BDF82010401CA8
+:10CEC00080294ED006DC10290DD020290BD0402916
+:10CED00087D124E0B1F5807F6ED051457ED0B1F589
+:10CEE000806F97D1DEE0C80601D5082000E0102051
+:10CEF00082460DA907AA0520CDE902218DF8380048
+:10CF0000ADF83CB0CDE9049608A93888CDE9000118
+:10CF10005346072221461598FFF7B6F8A8E09DF87A
+:10CF20001C2001214FF00A0A002A9BD105ABB9F160
+:10CF3000000F00D00020CDE902100720CDE9000944
+:10CF4000BDF834000493401E83B2218B0022159853
+:10CF500000F0EEFC8DF81C000B203070BDF81400C2
+:10CF600020E09DF81C2001214FF00C0A002A22D15C
+:10CF700013ABB9F1000F00D00020CDE9021007205B
+:10CF8000CDE900090493BDF83400228C401E83B221
+:10CF9000218B159800F0CCFC8DF81C000D20307012
+:10CFA000BDF84C00401CADF8340005208DF8380069
+:10CFB000208BADF83C00BCE03888218B88427FF4A0
+:10CFC00052AF9DF81C004FF0120A00281CD1606A75
+:10CFD000A8B1B878C0073FF446AF00E018E0BA68DF
+:10CFE0000720CDE902B2CDF804B00090CDF810B022
+:10CFF000FB88BA88159800F071FA8DF81C00132090
+:10D0000030700120ADF8340093E00000540000209F
+:10D010003988208B8142D2D19DF81C004FF0160A2E
+:10D020000028A06B08D0E0B34FF6FF7000215F46E8
+:10D03000ADF808B0019027E068B1B978C907BED152
+:10D04000E18F0DAB0844821D03968DE80C024388E6
+:10D050008288018809E0B878C007BCD0BA680DABF7
+:10D0600003968DE80C02BB88FA881598FFF7F5F94E
+:10D0700005005ED0072D72D076E0019005AA02A9C6
+:10D080002046FFF72BF90146E28FBDF808008242E7
+:10D0900001D00029F1D0E08FA16B084407800198EE
+:10D0A000E08746E09DF81C004FF0180A40B1208B45
+:10D0B000C8B13888208321461598FFF798F938E0E1
+:10D0C00004F118000090237E012221461598FFF7F5
+:10D0D000A6F98DF81C000028EDD119203070012030
+:10D0E000ADF83400E7E7052521461598FFF77FF9ED
+:10D0F0003AE0208800F40070ADF8200050452DD1B2
+:10D10000A08FA0F57F41FE3901D006252CE0D8F88C
+:10D1100008004FF0160A48B1A063B8F80C10A187B8
+:10D120004FF6FF71E187A0F800B002E04FF6FF7004
+:10D13000A087BDF8200030F47F611AD07823002248
+:10D140000420159906F002F998F800002071208853
+:10D15000BDF82010084320800EE000E0072520885D
+:10D16000BDF8201088432080208810F47F6F1CD0E9
+:10D170003AE02188814321809DF8380020B10EA932
+:10D180001598F9F759FA05469DF81C000028EBD0D0
+:10D1900086F801A001203070208B70809DF81C0063
+:10D1A00030710520ADF83400DEE7A18EE1B11898AA
+:10D1B0000DAB0088ADF834002398CDE90304CDE928
+:10D1C0000139206B0090E36A179A1598FFF7FEF972
+:10D1D000054601208DF838000EA91598F9F72CFAAC
+:10D1E00000B10546A4F834B094F8460040070AD5CB
+:10D1F0002046FFF7A2F910F03E0F04D114F8460FB5
+:10D2000020F0040020701898BDF8341001802846E2
+:10D210009DE500B585B0042806D102208DF80000F8
+:10D2200088B26946F9F708FA05B000BD10B5384C68
+:10D230000B782268012B02D0022B2AD111E013783F
+:10D240000BB1052B01D10423137023688A889A80BF
+:10D250002268CB88D38022680B8913814989518148
+:10D260000DE08B8893802268CB88D38022680B895D
+:10D2700013814B8953818B899381096911612168DD
+:10D28000F9F7DAF9226800210228117003D000288A
+:10D2900000D0812010BD832010BD806B002800D0FD
+:10D2A000012070478178012909D10088B0F5205FFD
+:10D2B00003D042F60101884201D1002070470720C7
+:10D2C0007047F0B587B0002415460E460746ADF806
+:10D2D000144010E0069801882980811DCDE90241A3
+:10D2E000072101940494009183884288018838467C
+:10D2F00000F0F4F830B906AA05A93046FEF7EEFFB3
+:10D300000028E7D00A2800D1002007B0F0BD0000B7
+:10D310005400002010B58B7883B102789A4205D171
+:10D320000B885BB102E08B79091D4BB18B789A4277
+:10D33000F9D1B0F801300C88A342F4D1002010BD1F
+:10D34000812010BD072826D012B1012A27D103E081
+:10D35000497801F0070102E04978C1F3C2010529CB
+:10D360001DD2DFE801F00318080C12000AB10320F7
+:10D3700070470220704704280DD250B10DE00528F7
+:10D3800009D2801E022808D303E0062803D0032810
+:10D3900003D005207047002070470F207047812080
+:10D3A0007047C0B282060BD4000607D5FE48807ACB
+:10D3B0004143C01D01EBD00080B270470846704762
+:10D3C0000020704770B513880B800B781C0625D59C
+:10D3D000F54CA47A844204D843F010000870002071
+:10D3E00070BD956800F0070605EBD0052D78F54077
+:10D3F00065F304130B701378D17803F0030341EA4B
+:10D40000032140F20123B1FBF3F503FB15119268F0
+:10D41000E41D00FB012000EBD40070BD906870BDDE
+:10D4200037B51446BDF8041011809DF804100A06A3
+:10D430001ED5C1F30013DC49A568897A814208D85A
+:10D44000FE2811D1C91DC9085A42284611F0B4FA64
+:10D450000AE005EBD00100F00702012508789540AD
+:10D46000A843934018430870207820F010002070E3
+:10D470003EBD2DE9F0410746C81C0E4620F00300D2
+:10D48000B04202D08620BDE8F081C74D002034466E
+:10D490002E60AF802881AA72E8801AE0E988491CD2
+:10D4A000E980810614D4E17800F0030041EA00200D
+:10D4B00040F20121B0FBF1F201FB12012068FFF7FD
+:10D4C00070FF2989084480B22881381A3044A0604E
+:10D4D0000C3420784107E1D40020D4E72DE9FF4F38
+:10D4E00089B01646DDE9168A0F46994623F4404571
+:10D4F000084600F00DFB04000FD0099802F00EFB67
+:10D500000290207800060AD5A748817A02988142C5
+:10D5100005D887200DB0BDE8F08F0120FAE722463C
+:10D5200001A90298FFF74EFF834600208DF80C00FA
+:10D530004046B8F1070F1AD001222146FFF702FF3B
+:10D540000028E7D12078400611D502208DF80C0084
+:10D55000ADF81070BDF80400ADF81200ADF814601D
+:10D560001898ADF81650CDF81CA0ADF818005FEA79
+:10D57000094004D500252E46A84601270CE0217855
+:10D58000E07801F0030140EA012040F20121B0FB04
+:10D59000F1F2804601FB12875FEA494009D5B845A0
+:10D5A00007D1A178207901F0030140EA0120B042BF
+:10D5B00001D3BE4201D90720ACE7A8191FFA80F9B0
+:10D5C000B94501D90D20A5E79DF80C0028B103A9A4
+:10D5D0000998F9F72FF800289CD1B84507D1A07811
+:10D5E0004FEA192161F30100A07084F804901A98A1
+:10D5F00000B10580199850EA0A0027D0199830B177
+:10D600000BEB06002A46199911F05FF90EE00BEBBF
+:10D6100006085746189E099802F0ECFB2B46F61DAB
+:10D62000B5B239464246009501F0D7FF224601A91E
+:10D630000298FFF7C7FE9DF80400224620F0100074
+:10D640008DF80400DDE90110FFF7EAFE002061E734
+:10D650002DE9FF4FDFF8509182461746B9F80610C2
+:10D66000D9F8000001EB410100EB810440F20120F8
+:10D67000B2FBF0F185B000FB11764D46DDF84C8031
+:10D6800031460698FFF78DFE29682A898B46611A74
+:10D690000C3101441144AB8889B28B4202D88420FA
+:10D6A00009B038E70699CDB2290603D5A90601D5F8
+:10D6B0000620F5E7B9F806C00CF1010C1FFA8CFC46
+:10D6C000A9F806C0149909B1A1F800C0A90602D5AD
+:10D6D000C4F8088007E0104480B2A9F80800191ABD
+:10D6E00001EB0B00A0602246FE200699FFF798FE92
+:10D6F000E77026712078390A61F30100320AA178B7
+:10D7000040F0040062F30101A17020709AF8020059
+:10D710006071BAF80000E08000262673280602D562
+:10D7200099F80A7000E00127A80601D54FF000081B
+:10D730004D4600244FF007090FE0CDE9026801963D
+:10D74000CDF800900496E9882046129B089AFFF7CE
+:10D75000C5FE0028A4D1641CE4B2BC42EDD3002075
+:10D760009EE72DE9F047804600F0D2F9070005D08A
+:10D77000002644460C4D40F2012919E00120BDE885
+:10D78000F087204600F0C4F90278C17802F0030265
+:10D7900041EA0222B2FBF9F309FB13210068FFF70B
+:10D7A00000FE304486B201E0B8050020641CA4B23B
+:10D7B000E988601E8142E4DCA8F10100E880288944
+:10D7C000801B288100203870D9E710B5144631B18C
+:10D7D000491E218002F0A2F9A070002010BD012096
+:10D7E00010BD10B5D24904460088CA88904201D3C2
+:10D7F0000A2010BD096800EB400001EB800250795F
+:10D80000A072D08820819178107901F0030140EA5C
+:10D810000120A081A078E11CFFF7D4FD20612088C1
+:10D82000401C2080E080002010BD01210182704753
+:10D830002DE9FF4F85B04FF6FF788246A3F80080B0
+:10D8400048681F460D4680788DF8060048680088B5
+:10D85000ADF8040000208DF80A00088A0C88A04268
+:10D8600000D304462C8241E0288A401C2882701D87
+:10D870006968FFF74FFDB8BB3988414501D1601E8B
+:10D8800038806888A04236D3B178307901F003013E
+:10D8900040EA012901A9701DFFF73CFD20BB298941
+:10D8A00041452CD0002231460798FFF74BFDD8B9EF
+:10D8B0002989494518D1E9680391B5F80AC0D6F815
+:10D8C00008B05046CDF800C002F094FADDF800C070
+:10D8D0005A460CF1070C1FFA8CFC4B460399CDF805
+:10D8E00000C001F044FE50B1641CA4B2204600F018
+:10D8F0000FF90600B8D1641E2C820A20D0E67C8085
+:10D900007079B871F088B8803178F07801F003014F
+:10D9100040EA01207881A7F80C90504602F0FEF80A
+:10D92000324607F10801FFF74DFD38610020B7E6E8
+:10D930002DE9FF4F87B081461C469246DDF860B066
+:10D94000DDF85480089800F0E3F805000CD0484654
+:10D9500002F0E4F82978090608D57549897A8142E8
+:10D9600004D887200BB0D6E50120FBE7CAF30906EF
+:10D970002A4601A9FFF726FD0746149807281CD060
+:10D9800000222946FFF7DEFC0028EBD1287840066C
+:10D9900013D501208DF808000898ADF80C00BDF8EB
+:10D9A0000400ADF80E00ADF81060ADF8124002A909
+:10D9B0004846F8F73FFE0028D4D12978E87801F0EE
+:10D9C000030140EA0121AA78287902F0030240EA23
+:10D9D0000220564507D0B1F5007F04D9611E81426F
+:10D9E00001DD0B20BEE7864201D90720BAE7801B84
+:10D9F00085B2A54200D92546BBF1000F01D0ABF896
+:10DA00000050179818B1B9192A4610F05EFFB8F106
+:10DA1000000F0DD03E4448464446169F02F0FCF9E4
+:10DA20002146FF1DBCB232462B46009401F009FE90
+:10DA3000002097E72DE9F04107461D4616460846A7
+:10DA400000F066F804000BD0384602F067F8217841
+:10DA5000090607D53649897A814203D8872012E51D
+:10DA6000012010E522463146FFF7ACFC65B1217874
+:10DA7000E07801F0030140EA0120B0F5007F01D811
+:10DA8000012000E0002028700020FCE42DE9F04196
+:10DA900007461D461646084600F03AF804000BD02B
+:10DAA000384602F03BF82178090607D52049897AE3
+:10DAB000814203D88720E6E40120E4E4224631468F
+:10DAC000FFF7AEFCFF2D14D02178E07801F00302BF
+:10DAD00040EA022040F20122B0FBF2F302FB130005
+:10DAE00015B900F2012080B2E070000A60F3010174
+:10DAF00021700020C7E410B50C4600F009F828B1E9
+:10DB0000C18821804079A070002010BD012010BD87
+:10DB10000749CA88824209D340B1096800EB400036
+:10DB20006FF00B0202EB8000084470470020704742
+:10DB3000B805002010B505F0BCFEFAF7BFFA05F0F5
+:10DB400079FDBDE8104005F007BE70B50346002022
+:10DB500002466FF02F050EE09C5CA4F130060A2E01
+:10DB600002D34FF0FF3070BD00EB800005EB4000AA
+:10DB7000521C2044D2B28A42EED370BD30B50A2482
+:10DB80000AE0B0FBF4F304FB13008D18303005F805
+:10DB9000010C521E1846D2B2002AF2D130BD30B567
+:10DBA00000234FF6FF7510E0040A44EA002084B217
+:10DBB000C85C6040C0F30314604005EA0034444090
+:10DBC000E0B25B1C84EA40109BB29342ECD330BDC0
+:10DBD0000178406829B190F8041190F8720038B9C2
+:10DBE00001E001F0EFB919B1042901D0012070471B
+:10DBF0000020704770B50C460546062101F0C8FFAD
+:10DC0000606008B1002006E00721284601F0C0FF4F
+:10DC1000606018B101202070002070BD022070BD2E
+:10DC20002DE9FC470C4606466946FFF7E3FF00284E
+:10DC30007DD19DF8000050B106F016FEB0427CD0B8
+:10DC40002146304609F0B8FB002873D12DE00CF0D6
+:10DC500067F9B04271D0214630460FF024FA00280F
+:10DC600068D1019D95F8C80022E0012000E0002065
+:10DC7000804695F835004FF0010A4FF00009F0B1E9
+:10DC800095F8360080071AD584F8019084F800A032
+:10DC900084F80290A68095F83710A171298F218110
+:10DCA000698F618185F8359044E0019D95F8040104
+:10DCB00058350028DBD1A87E0028D8D0D5E73046DB
+:10DCC00002F0AAF8070000D1FFDF384601F0BAFAE7
+:10DCD00040B184F801900E212170A680E08084F884
+:10DCE00002A027E0304602F085F8070000D1FFDFF0
+:10DCF000B8F1000F21D0384601F0FBFAB8B19DF819
+:10DD0000000038B90198D0F8F0004188B14201D143
+:10DD100080F80090304606F046FC84F801900B2114
+:10DD2000217084F80290A680E97EA17100E004E0F1
+:10DD300085F81A900120BDE8FC870020FBE71CB5A0
+:10DD40006946FFF757FF00B1FFDF684601F046F96B
+:10DD5000FE4900208968A1F8CA001CBD2DE9FC41DC
+:10DD600004460E46062001F0BBFE0546072001F0E2
+:10DD7000B7FE2844C7B20025A8463E4417E02088D5
+:10DD8000401C80B22080B04202D34046A4F80080FC
+:10DD900080B2B84204D3B04202D20020BDE8FC8178
+:10DDA0006946FFF727FF0028F8D06D1CEDB2AE42A0
+:10DDB000E5D84FF6FF7020801220EFE738B54FF618
+:10DDC000FF70ADF800000DE00621BDF8000001F085
+:10DDD000F1FE04460721BDF8000001F0EBFE0CB196
+:10DDE00000B1FFDF00216846FFF7B8FF0028EBD045
+:10DDF00038BD2DE9F04106F047FC0AF0C7FED44CCF
+:10DE0000042710206780A0804FF6FF76E6832684E3
+:10DE10000025D0A0257001680079A4F13E02A5710B
+:10DE200042F8451FE11D1071A01D0FF06CFA25731B
+:10DE30001B21E1814FF4A47020826182A082032221
+:10DE4000A2752046E775018341833E38A2830570A1
+:10DE50004680BE480C300570A4F110000570468065
+:10DE6000BDE8F08170B5B94C0D466060217006F0D8
+:10DE700098FBFFF7A3FFFFF7BCFF20780DF0B0FA87
+:10DE80000CF04EFA217860680FF0E1F920780AF082
+:10DE9000F9F8284607F08BFE06F026FD2178606829
+:10DEA00009F079FBBDE870400AF070BE10B501249E
+:10DEB0000AB1002010BD21B1012903D00024204661
+:10DEC00010BD02210BF066FEF9E72DE9F0470400D2
+:10DED00000D1FFDF9E48022120308146FFF73EFF40
+:10DEE00000B1FFDF9A4D0620B5F8208001F0F8FD63
+:10DEF0000646072001F0F4FD3044C6B2701CC7B2DC
+:10DF0000288CB04211D120460BF094FF48BB2878F2
+:10DF100078B300266670132020702021A01C10F01A
+:10DF200053FD0220A0702E7020E0B8421AD1204686
+:10DF300006F052FCE8B12078132817D1A0783C28CD
+:10DF400014D1A088072101F023FE050000D1FFDFD6
+:10DF5000288806F028FBA088072101F02BFE00B1DD
+:10DF6000FFDF03E02146FFF75BFE10B10120BDE8B3
+:10DF7000F087FFE702214846FFF7F0FE10B9298C31
+:10DF80004145BDD10020F2E710B500F0C3FF08B154
+:10DF90000C2010BD0AF031FE002010BD10B5044663
+:10DFA000007818B1012801D0122010BD00F0C3FF85
+:10DFB00020B10AF07FFE08B10C2010BD207800F0DF
+:10DFC00078FFE21D04F11703611CBDE810400AF060
+:10DFD00029BE10B50446007818B1012801D01220DE
+:10DFE00010BD00F097FF08B10C2010BD207800F0A4
+:10DFF00060FF611C0AF0DDFD08B1002010BD0720A4
+:10E0000010BD10B50AF05AFE08B1002010BD302036
+:10E0100010BD10B5044600F08EFF08B10C2010BDF5
+:10E0200020460AF043FE002010BD10B500F083FF2B
+:10E0300020B10AF03FFE08B10C2010BD0AF028FE06
+:10E04000002010BDFF2181704FF6FF7181803F4994
+:10E0500049680A7882718A88028149884181012150
+:10E0600041700020704710B510F1080F17D00CDC7C
+:10E0700010F1280F13D010F1140F10D010F1100F61
+:10E080000DD010F10C0F08D109E010F1040F06D0EB
+:10E0900028B1032803D0042801D0122010BD05F0B8
+:10E0A00014FD002010BD10B5134601220BF08AF9B3
+:10E0B000002010BD10B504460DF005FC052804D065
+:10E0C00020460DF07CF9002010BD0C2010BD10B5CD
+:10E0D000044600F030FF08B10C2010BD214600209E
+:10E0E00006F0D3FA002010BD10B504460DF0F0F98B
+:10E0F00050B107F0AAFF38B1207807F08AFD2078E8
+:10E100000CF0ACFA002010BD0C2010BD10B5044678
+:10E1100000F011FF08B10C2010BD2146012006F0CF
+:10E12000B4FA002010BD38B504464FF6FF70ADF8C4
+:10E130000000A079E17988421CD021791F2919D8E3
+:10E1400061791F2916D80022114607E05C000020E3
+:10E1500002060020FFFFFFFF1F0000000FF026FE59
+:10E1600040B90022E07911460FF020FE10B9207A64
+:10E17000072801D9122038BD07F073FF60B90DF0F0
+:10E18000A2FB48B900216846FFF7E8FD20B1204610
+:10E1900005F0BEFB002038BD0C2038BD2DE9FC4148
+:10E1A000817805461A2925D00EDC16292DD2DFE804
+:10E1B00001F02C2C2C2C2C212C2C2C2C2C2C2C2C11
+:10E1C0002C2C2C2C2C2121212A291ED00BDCA1F156
+:10E1D0001E010C2919D2DFE801F0181818181818B8
+:10E1E00018181818180D3A3904290ED2DFE801F072
+:10E1F0000D020D022888B0F5706F06D2012769461E
+:10E20000FFF7F8FC18B10220C8E51220C6E59DF81A
+:10E21000000000F055FE019C08B1EC3401E004F56B
+:10E22000B3749DF8000000F04BFE019E08B1ED367E
+:10E2300001E006F267166846FFF7CAFC08B12078CD
+:10E2400008B10C20AAE52770A8783070684600F065
+:10E25000C5FE0020A2E57CB50D466946FFF7CAFC65
+:10E26000002618B12E602E7102207CBD9DF80000A2
+:10E2700000F026FE019C9DF80000583400F020FEBE
+:10E28000DDF8040084F83E6081682960017B297113
+:10E2900094F83E100029F5D100207CBD10B540B1A6
+:10E2A0000478406813B1B0F84A0003E0B0F84C00BD
+:10E2B00000E0FB201B2908D3814206D8B2F5A47FD9
+:10E2C00003D340F64800824201D9122010BD00203D
+:10E2D00010BD2DE9FC41044600886946FFF78AFC21
+:10E2E000002843D12289E18801236846FFF7D6FF41
+:10E2F00000283BD1A288618800236846FFF7CEFF43
+:10E30000070033D19DF80000019DB846012640B1B9
+:10E3100085F88961019890F8C80105F5C47538B988
+:10E3200013E085F8FD60019890F82001FC3508B1F4
+:10E330003A2718E0E08868802089A8806088E88013
+:10E34000A08828810122019909E0E088688020895D
+:10E35000A8806088E880A08828810199002228464A
+:10E360000BF03CF92E7085F80180384616E530B583
+:10E3700085B00D460446008803A9FFF73BFC002842
+:10E3800048D19DF80C0040B100220499E388B1F80F
+:10E390004A00984203D2181A02E00122F5E7002051
+:10E3A0006880B1F84C006388984201D2181A00E0E6
+:10E3B0000020A8800020009001900290E088ADF835
+:10E3C00002002089ADF804006088ADF80600A0883E
+:10E3D000ADF8080068460BF001F92089BDF804107B
+:10E3E000401AE880A088BDF80810401A2881E0880B
+:10E3F000BDF80210411A6888814200DD0846688035
+:10E400006088BDF80610411AA888814200DD0846E0
+:10E41000A880002005B030BD10B5044600F08BFD8B
+:10E4200020B10AF047FC08B10C2010BD207800F0A4
+:10E4300040FDE279611C0AF082FD08B1002010BDA8
+:10E44000022010BD7CB5044600886946FFF7D2FB68
+:10E4500000282FD1A17801B90321E27802B9032263
+:10E460009DF8005000240123002D019D06D085F861
+:10E470009331019D95F8DC512DBB1CE085F80731E7
+:10E48000019D95F82C513DB9019D95F806511DB996
+:10E49000019D95F87B500DB13A2008E0019D85F86B
+:10E4A0000631019B83F80811019981F8092101992E
+:10E4B00081F807417CBD019D95F892511DB9019DE0
+:10E4C00095F87B500DB13A2008E0019D85F8923116
+:10E4D000019B83F89411019981F89521019981F8A4
+:10E4E00093417CBD8178CA0802D1C278D30801D09B
+:10E4F00012207047490701D4510701D511207047F8
+:10E50000A0E710B5044600F0F8FC08B10C2010BDDF
+:10E51000A1791220012904D019B1022901D00329BF
+:10E52000F5D1217809B10129F1D1E17929B1012988
+:10E5300003D0022901D00329E9D1618843F6FD7295
+:10E540000B1F30209342E2D2A3881B1F9342DED2DE
+:10E55000F9484180A1888180A0790BF0D3FFE07950
+:10E560000CF00CF82078012805D00120BDE81040FF
+:10E5700000210CF036B80220F8E710B5122201286D
+:10E5800002D008B1104610BD09B10129FAD1012805
+:10E5900007D00DF098F9052811D0BDE810400CF017
+:10E5A000C7BE0BF0A5FF40B10BF0B4FFE248818875
+:10E5B0004088BDE810400CF097BF122010BD0C2021
+:10E5C00010BD2DE9F047DC4E92460C46B0F84C20C9
+:10E5D0000546F1891046814200D20846074695F863
+:10E5E0005210104600F080FC318A814200D2084669
+:10E5F000B5F84A208046718A1046B146814200D261
+:10E600000846064695F85110104600F06DFCB9F822
+:10E610001410814200D208464FF4A4721B2E01D080
+:10E62000904203D11B2F0DD090450BD0E780A4F86A
+:10E6300008806680A0805246294620460AF0CEFF18
+:10E640000120207093E430B5428840F67B43911F4F
+:10E65000994219D281888C1F9C4215D28A4213D8C4
+:10E66000C288B2F5FA7F0FD2038940F67745A3F14D
+:10E670000A04AC4208D2521C4A43B2EB830F03DABD
+:10E6800041898089814201D9302030BD002030BDD0
+:10E690001FB5018843F6FD720B1F934205D24388D4
+:10E6A0001C1F944201D28B4202D9302004B010BD0D
+:10E6B000017911B1012910D107E0417929B101296E
+:10E6C00003D0022901D0032907D1017B39B10129E7
+:10E6D00005D0022903D0032901D01220E6E7C18921
+:10E6E000ADF80210018AADF80410418AADF80610A9
+:10E6F000818AADF80810C18AADF80A10008BADF818
+:10E700000C006846FFF79FFFD0E72DE9F04385B086
+:10E710000546AFF2C051D1E90086FFF7B9FF0028E6
+:10E7200011D10DF0D0F805280CD00DF0CCF804284C
+:10E7300008D0814F387828B90BF0F2FBA0F57F4163
+:10E74000FF3903D00C2005B0BDE8F0837A4801AA58
+:10E750003E3801907948029077480621103803909E
+:10E7600004A801F0E3F904007ED003210AF07BFD48
+:10E770007148B946018BA4F84A10418BA4F84C109B
+:10E78000428B018BFB7D0093BB7D208801F0BBFA9F
+:10E7900000B1FFDF208805F005FF218804F10E009D
+:10E7A00000F0D3FB66A004F112070068009003217B
+:10E7B000684604F073FB002069460A5C3A54401C2A
+:10E7C000C0B20328F9D3288A6080688AA080A88A0A
+:10E7D000E08094F8522094F85110B9F81C000CF025
+:10E7E00009FF0146A06220460CF012FF002784F8C2
+:10E7F0005E7084F85F70687900F05BFB6076D5F836
+:10E800000600C4F81A006889E083C4F808802673FB
+:10E81000012084F8F800024604F1FC012046FFF7CD
+:10E82000D0FE8DF800700121684604F037FB9DF89A
+:10E83000000000F00701C0F3C1021144C0F3401012
+:10E8400008448DF80000401D2076092801D20830C8
+:10E850002076002120460AF006FD287B0BF052FEB0
+:10E8600069792879AA1D00E00CE00BF023FE58B16D
+:10E870000BF050FE69792879AA1D0BF08AFE06007C
+:10E8800004D010E009205EE712260CE021460320A8
+:10E890000BF0A7FE060006D16A88298820460CF0F6
+:10E8A000DBFD060008D0208805F07DFE20880621CB
+:10E8B00001F080F900B1FFDF304644E738B51E4C67
+:10E8C000207870B90CF0FFFF052805D00BF028FB6D
+:10E8D000A0F57F41FF3904D068460CF033FE10B13B
+:10E8E00013E00C2038BD0098008805F05CFE00980D
+:10E8F0000621008801F05EF900B1FFDF01202070E1
+:10E900000E480C380078FCF7FDFF002038BD70B5CC
+:10E910000546FFF798FE002815D12888062101F04A
+:10E9200037F904000ED000F04DFB58B1D4F8F000D8
+:10E93000017869B908E000000206002068000020A4
+:10E9400011223300022070BDD4F83C11097809B1BE
+:10E950003A2070BD05218171D4F8F01000200881A3
+:10E96000D4F8F010A8884881D4F8F010E88888819D
+:10E97000D4F8F0102889C881D4F8F00002894189C0
+:10E980008A4204D88279082A01D88A4201D3122007
+:10E9900070BD29884180D4F8F01002200870002052
+:10E9A00070BD3EB504460AF0DBFCB0B1FC48012561
+:10E9B000A0F13E028571236842F8453F237900218A
+:10E9C000137181716946062001F06BF800B1FFDF19
+:10E9D000684601F044F810B10EE012203EBDBDF8CB
+:10E9E0000440029880F8F850684601F038F818B9E9
+:10E9F000BDF80400A042F4D100203EBD70B505462C
+:10EA00000088062101F0C4F8040007D000F0DAFA0B
+:10EA100020B1D4F8F010087830B901E0022070BDC0
+:10EA2000D4F83C01007808B13A2070BD9420005D14
+:10EA300010F0010F18D0D5F802004860D5F8060094
+:10EA4000886054F8F00F698910228181206805F1EF
+:10EA50000C010E300FF039FF216803200870216887
+:10EA600028884880002070BD0C2070BD10B5044679
+:10EA700007F0F7FA08B10C2010BD6079032824D8FC
+:10EA8000A179012921D8A17B03291ED8617BE1B19D
+:10EA900007291AD82179052917D2DFE801F0030CDC
+:10EAA000030303002288202A0FD361888A420CD8EE
+:10EAB000B1F5804F09D805F071FFB9492079487048
+:10EAC0002046BDE8104006F031B8122010BD10B548
+:10EAD0001F2801D9122010BD06F0A2F8002010BD99
+:10EAE00010B51F2801D9122010BD06F088F80020AB
+:10EAF00010BD7CB5012802D000285DD070E005F083
+:10EB0000FDFE00286CD005F02FFF002868D007F02C
+:10EB1000A8FA002856D105F0A7FEA0F57F41FF39DD
+:10EB200050D105F0B9FF9E4E707848B1012807D04A
+:10EB3000042805D0002007F06FF8D0B3FFDF4DE0C8
+:10EB40000022072101A800F0F1FF040032D095480F
+:10EB50000321846020460AF013FB204606F065F985
+:10EB60008F4D0121288BA4F84A00688BA4F84C0033
+:10EB7000B08B07F019F90146A0620022204606F08A
+:10EB800052FC6A8B298BF07D0090B37D208801F0C8
+:10EB9000BAF800B1FFDF208805F004FD204607F039
+:10EBA0003BF800B1FFDF002204F5C4712046FFF7F7
+:10EBB00008FD13E009207CBD06F016FC044606F0B3
+:10EBC000CFFF08B10C207CBD44B1208805F0EBFCE0
+:10EBD0002088072100F0EEFF00B1FFDF00207CBDA0
+:10EBE00012207CBD70B50D46072100F0D1FF040056
+:10EBF00003D094F8690110B10AE0022070BD94F8C6
+:10EC00006400142801D0152802D194F8AA0108B193
+:10EC10000C2070BD1022294604F5B5700FF055FE8A
+:10EC2000012084F86901002070BD10B5072100F0B3
+:10EC3000AFFF18B190F8691111B107E0022010BDC3
+:10EC400090F86410142903D0152901D00C2010BDB0
+:10EC5000022180F86911002010BD2DE9FC410C460D
+:10EC60004BF68032122194421DD8E4B16946FEF77A
+:10EC7000C1FF002815D19DF8000000F021F9019E88
+:10EC80009DF80000583600F01BF9019DAD1C2F883F
+:10EC90002246394630460AF036FA2888B842F6D17C
+:10ECA0000020BDE8FC810846FBE77CB504460088EF
+:10ECB0006946FEF79FFF002817D19DF8000000F07D
+:10ECC000FFF8019D9DF80000583500F0F9F87F210C
+:10ECD0000198297269720021A972A17800F82C1F8D
+:10ECE000E17841702179817000207CBD1CB50C4613
+:10ECF0006946FEF77FFF00280AD19DF8000000F06A
+:10ED0000DFF8019890F8720000B101202070002017
+:10ED10001CBD1CB50C466946FEF76CFF002809D1E6
+:10ED20009DF8000000F0CCF8019890F82C00012824
+:10ED300001D00C201CBD9DF8000000F0C1F8019826
+:10ED400090F86000207000201CBD70B50D4616467E
+:10ED5000072100F01DFF38B381880124C388428851
+:10ED600004EB4104AC4217D842F210746343A41080
+:10ED70006243B3FBF2F2521E94B24FF4FA72944221
+:10ED800000D91446A54200D22C46491C641CB4FB91
+:10ED9000F1F24A43521E91B290F8962142B906E030
+:10EDA000020600205C000020FFE7022070BD018405
+:10EDB0003180002070BD10B50C46072100F0E8FE40
+:10EDC00048B180F8D74024B190F8D51009B107F0C8
+:10EDD00008F8002010BD022010BD017889B14178EB
+:10EDE00079B141881B290CD381881B2909D3C1889B
+:10EDF000022906D3814902684A6540688865002077
+:10EE000070471220704710B504460CF0EFFB204607
+:10EE100006F099FF002010BD2DE9F04115460F4680
+:10EE200006460122114638460CF0E4FB0446012157
+:10EE3000384606F0B9FF844200D20446012130462C
+:10EE400000F043F806460121002000F03EF831189A
+:10EE5000012096318C4206D901F19600611AB1FB6E
+:10EE6000F0F0401C80B228800020BDE8F08110B591
+:10EE7000044600F060F808B10C2010BD601C0AF0D8
+:10EE800035F8207800F0010005F08BFD207800F0C7
+:10EE900001000BF03BFB002010BD10B5044607F04D
+:10EEA000E0F808B10C2010BD204605F0C9FE002096
+:10EEB00010BD18B1022801D0012070470020704712
+:10EEC00008B1002070470120704710B5012904D017
+:10EED000022905D0FFDF204610BDC000503001E000
+:10EEE00080002C3084B2F6E7022903D0C0007030D5
+:10EEF00080B2704780003C30FAE710B50CF0E3FCBC
+:10EF0000042805D00CF0DFFC052801D0002010BD3E
+:10EF1000012010BD10B5FFF7F0FF10B10BF06AFB38
+:10EF200028B907F09EF820B105F017FD08B10120BF
+:10EF300010BD002010BD10B5FFF7DFFF18B907F0B6
+:10EF400090F8002800D0012010BD2DE9FE430025D7
+:10EF50000F4680460A260421404603F0C8FF40467B
+:10EF60000AF0DCF9062000F0BBFD044615E0694616
+:10EF7000062000F096FD0AE0BDF80400B84206D075
+:10EF80000298042241460E300FF073FC50B16846DF
+:10EF900000F065FD0500EFD0641E002C06DD002D9D
+:10EFA000E5D005E040460AF0C3F9F5E705B9FFDF13
+:10EFB000D8F800000AF0B1F8761E01D00028CAD0B7
+:10EFC000BDE8FE8390F8C81090F8720020B919B11E
+:10EFD000042901D0012070470020704701780029E2
+:10EFE0000AD0416891F8D520002A05D0002281F886
+:10EFF000D520406806F0F5BE70470000C40500202B
+:10F0000030B5058825F4004421448CB24FF400410A
+:10F0100094420AD2121B92B21B339A4201D2A943E4
+:10F0200007E005F40041214303E0A21A92B2A9438C
+:10F030001143018030BD0844083050434A31084430
+:10F0400080B2704770B51D4616460B4604462946E9
+:10F050003046049AFFF7EFFF0646B34200D2FFDFC7
+:10F06000282120460FF0D2FC4FF6FF70A082283EE8
+:10F07000B0B265776080B0F5004F00D9FFDF6188DE
+:10F0800005F13C00814200D2FFDF60880835401B5B
+:10F09000343880B220801B2800D21B202080002022
+:10F0A000A07770BD8161886170472DE9F05F0D46E2
+:10F0B000C188044600F12809008921F4004620F4A3
+:10F0C000004800F062FB10B10020BDE8F09F4FF057
+:10F0D000000A4FF0010BB0450CD9617FA8EB060088
+:10F0E000401A0838854219DC09EB0600002105802A
+:10F0F00041801AE06088617F801B471A083F0DD469
+:10F100001B2F00DAFFDFBD4201DC294600E0B9B267
+:10F11000681A0204120C04D0424502DD84F817A0DC
+:10F12000D2E709EB06000180428084F817B0CCE7F3
+:10F1300070B5044600F12802C088E37D20F4004049
+:10F140002BB110440288438813448B4201D2002023
+:10F1500070BD00258A4202D30180458008E0891AEB
+:10F160000904090C418003D0A01D00F01EFB08E03B
+:10F17000637F00880833184481B26288A01DFFF7BE
+:10F180003FFFE575012070BD70B5034600F128040E
+:10F19000C588808820F400462644A84202D1002079
+:10F1A000188270BD98893588A84206D3401B75889F
+:10F1B0002D1A2044ADB2C01E05E02C1AA5B25C7F0A
+:10F1C00020443044401D0C88AC4200D90D809C89FD
+:10F1D00024B1002414700988198270BD0124F9E754
+:10F1E00070B5044600F12801808820F400404518DD
+:10F1F000208A002825D0A189084480B2A0812988CE
+:10F200006A881144814200D2FFDF2888698800267D
+:10F210000844A189884212D1A069807F2871698839
+:10F2200019B1201D00F0C1FA08E0637F2888083377
+:10F23000184481B26288201DFFF7E2FEA681268273
+:10F24000012070BD2DE9F0414189878800260446E0
+:10F2500000F12805B94218D004F10A0821F4004051
+:10F260002844418819B1404600F09FFA08E0637FC6
+:10F2700000880833184481B262884046FFF7C0FE18
+:10F28000761C6189B6B2B942E8D13046BDE8F0815A
+:10F290002DE9F04104460B4627892830A68827F43B
+:10F2A0000041B4F80A8001440D46B74201D1002064
+:10F2B000ECE70AB1481D106023B1627F691D184652
+:10F2C0000FF003FB2E88698804F1080021B18A1928
+:10F2D00096B200F06AFA06E0637F628808339919F3
+:10F2E00089B2FFF78DFE474501D120896081304604
+:10F2F000CCE78188C088814201D10120704700207D
+:10F30000704701898088814201D101207047002027
+:10F31000704770B58588C38800F1280425F4004241
+:10F3200023F4004114449D421AD08389058A5E1952
+:10F3300025886388EC18A64214D313B18B4211D3ED
+:10F340000EE0437F08325C192244408892B2801A52
+:10F3500080B22333984201D211B103E08A4201D135
+:10F36000002070BD012070BD2DE9F0478846C1889E
+:10F370000446008921F4004604F1280720F40045E2
+:10F3800007EB060900F001FA002178BBB54204D969
+:10F39000627FA81B801A002503E06088627F801BC3
+:10F3A000801A083823D4E28962B1B9F80020B9F88C
+:10F3B00002303BB1E81A2177404518DBE089384438
+:10F3C000801A09E0801A217740450ADB607FE189D5
+:10F3D0000830304439440844C01EA4F81280BDE807
+:10F3E000F087454503DB01202077E7E7FFE76182EF
+:10F3F0000020F4E72DE9F74F044600F12805C08806
+:10F40000884620F4004A608A05EB0A0608B14045A8
+:10F4100002D20020BDE8FE8FE08978B13788B6F8C7
+:10F42000029007EB0901884200D0FFDF207F4FF0F8
+:10F43000000B50EA090106D088B33BE00027A07F0B
+:10F44000B9463071F2E7E18959B1607F294408304B
+:10F4500050440844B4F81F1020F8031D94F82110FC
+:10F460008170E28907EB080002EB0801E18130803E
+:10F47000A6F802B002985F4650B1637F3088083327
+:10F48000184481B26288A01DFFF7BAFDE78121E030
+:10F49000607FE18908305044294408442DE0FFE7AB
+:10F4A000E089B4F81F102844C01B20F8031D94F80D
+:10F4B0002110817009EB0800E28981B202EB08009B
+:10F4C000E081378071800298A0B1A01D00F06DF935
+:10F4D000A4F80EB0A07F401CA077A07D08B1E08802
+:10F4E000A08284F816B000BFA4F812B084F817B058
+:10F4F00001208FE7E0892844C01B30F8031DA4F8E1
+:10F500001F10807884F82100EEE710B5818800F1A3
+:10F51000280321F400442344848AC288A14212D0E3
+:10F52000914210D0818971B9826972B11046FFF79A
+:10F53000E8FE50B91089283220F4004010441979AF
+:10F540000079884201D1002010BD184610BD00F19D
+:10F550002803407F08300844C01E1060088808B99E
+:10F56000DB1E136008884988084480B270472DE983
+:10F57000F04100F12806407F1C46083090464318B1
+:10F5800008884D88069ADB1EA0B1C01C80B290424C
+:10F5900014D9801AA04200DB204687B298183A4658
+:10F5A00041460FF066F9002816D1E01B84B2B8443A
+:10F5B000002005E0ED1CADB2F61EE8E7101A80B29F
+:10F5C0000119A94206D8304422464146BDE8F0411F
+:10F5D0000FF04FB94FF0FF3058E62DE9F04100F140
+:10F5E0002804407F1E4608309046431800250888AE
+:10F5F0004F88069ADB1E90B1C01C80B2904212D98F
+:10F60000801AB04200DB304685B299182A4640463F
+:10F610000FF05BF9701B86B2A844002005E0FF1CC8
+:10F62000BFB2E41EEAE7101A80B28119B94206D8C7
+:10F630002118324640460FF048F9A81985B22846ED
+:10F6400024E62DE9F04100F12804407F1E460830F1
+:10F6500090464318002508884F88069ADB1E90B113
+:10F66000C01C80B2904212D9801AB04200DB3046F2
+:10F6700085B298182A4641460FF027F9701B86B2CA
+:10F68000A844002005E0FF1CBFB2E41EEAE7101A00
+:10F6900080B28119B94206D82044324641460FF063
+:10F6A00014F9A81985B22846F0E5401D704710B539
+:10F6B000044600F12801C288808820F400431944E0
+:10F6C000904206D0A28922B9228A12B9A28A904217
+:10F6D00001D1002010BD0888498831B1201D00F0FB
+:10F6E00064F800202082012010BD637F6288083307
+:10F6F000184481B2201DFFF783FCF2E70021C1818D
+:10F7000001774182C1758175704703881380C28972
+:10F7100042B1C28822F4004300F128021A440A6070
+:10F72000C08970470020704710B50446808AA0F554
+:10F730007F41FF3900D0FFDFE088A082E08900B17F
+:10F740000120A07510BD4FF6FF71818200218175E7
+:10F75000704710B50446808AA0F57F41FF3900D17B
+:10F76000FFDFA07D28B9A088A18A884201D10020AE
+:10F7700010BD012010BD8188828A914201D1807D17
+:10F7800008B1002070470120704720F4004221F4A6
+:10F7900000439A4207D100F4004001F4004188423E
+:10F7A00001D0012070470020704730B50446008822
+:10F7B0000D4620F40040A84200D2FFDF21884FF41C
+:10F7C000004088432843208030BD70B50C000546BA
+:10F7D00009D0082C00D2FFDF1DB1A1B2286800F0CB
+:10F7E00044F8201D70BD0DB100202860002070BDC0
+:10F7F0000021026803E093881268194489B2002A44
+:10F80000F9D100F032B870B500260D46044608293B
+:10F8100000D2FFDF206808B91EE004462068818816
+:10F82000A94202D001680029F7D181880646A94281
+:10F8300001D100680DE005F1080293B2002299425F
+:10F8400009D32844491B026081802168096821602E
+:10F850000160206000E00026304670BD00230B6090
+:10F860008A8002680A600160704700234360021DBD
+:10F87000018102607047F0B50F4601884088154647
+:10F880000C181E46AC4200D3641B3044A84200D979
+:10F89000FFDFA019A84200D9FFDF3819F0BD2DE91C
+:10F8A000F041884606460188408815460C181F46D8
+:10F8B000AC4200D3641B3844A84200D9FFDFE019F2
+:10F8C000A84200D9FFDF70883844708008EB04003C
+:10F8D000BDE8F0812DE9F041054600881E46174637
+:10F8E000841B8846BC4200D33C442C80688830444A
+:10F8F000B84200D9FFDFA019B84200D9FFDF6888FD
+:10F900003044688008EB0400E2E72DE9F041068806
+:10F910001D460446701980B2174688462080B842BA
+:10F9200001D3C01B20806088A84200D2FFDF70197D
+:10F93000B84200D9FFDF6088401B608008EB0600FA
+:10F94000C6E730B50D460188CC18944200D3A41AFE
+:10F950004088984200D8FFDF281930BD2DE9F041DA
+:10F96000C84D04469046A8780E46A04200D8FFDF56
+:10F9700005EB8607B86A50F8240000B1FFDFB868CD
+:10F98000002816D0304600F044F90146B868FFF769
+:10F990003AFF05000CD0B86A082E40F8245000D376
+:10F9A000FFDFB9484246294650F82630204698479E
+:10F9B0002846BDE8F0812DE9F8431E468C19914692
+:10F9C0000F460546FF2C00D9FFDFB14500D9FFDF08
+:10F9D000E4B200954DB300208046E81C20F00300FF
+:10F9E000A84200D0FFDF4946DFF89892684689F8C0
+:10F9F000001089F8017089F8024089F8034089F8FD
+:10FA0000044089F8054089F8066089F80770414686
+:10FA100000F008F9002142460F464B460098C01CF2
+:10FA200020F00300009012B10EE00120D4E703EBB8
+:10FA30008106B062002005E0D6F828C04CF820709E
+:10FA4000401CC0B2A042F7D30098491C00EB8400D0
+:10FA5000C9B200900829E1D3401BBDE8F88310B576
+:10FA6000044603F08FFD08B1102010BD2078854AB0
+:10FA7000618802EB800092780EE0836A53F82130AF
+:10FA800043B14A1C6280A180806A50F82100A060C6
+:10FA9000002010BD491C89B28A42EED86180052041
+:10FAA00010BD70B505460C46084603F06BFD08B165
+:10FAB000102070BD082D01D3072070BD25700020D7
+:10FAC000608070BD0EB56946FFF7EBFF00B1FFDF48
+:10FAD0006846FFF7C4FF08B100200EBD01200EBD2F
+:10FAE00010B50446082800D3FFDF6648005D10BD4E
+:10FAF0003EB5054600246946FFF7D3FF18B1FFDF86
+:10FB000001E0641CE4B26846FFF7A9FF0028F8D0C2
+:10FB10002846FFF7E5FF001BC0B23EBD5949897872
+:10FB2000814201D9C0B27047FF2070472DE9F041F2
+:10FB3000544B062903D007291CD19D7900E00025EC
+:10FB400000244FF6FF7603EB810713F801C00AE0AB
+:10FB50006319D7F828E09BB25EF823E0BEF1000FEE
+:10FB600004D0641CA4B2A445F2D8334603801846DE
+:10FB7000B34201D100201CE7BDE8F041EEE6A0F55C
+:10FB80007F43FF3B01D0082901D300207047E5E601
+:10FB9000A0F57F42FF3A0BD0082909D2394A937861
+:10FBA000834205D902EB8101896A51F82000704730
+:10FBB000002070472DE9F04104460D46A4F57F4131
+:10FBC00043F20200FF3902D0082D01D30720F0E6EE
+:10FBD0002C494FF000088A78A242F8D901EB85063B
+:10FBE000B26A52F82470002FF1D0274839462030ED
+:10FBF00050F8252020469047B16A284641F82480D5
+:10FC000000F007F802463946B068FFF727FE0020EB
+:10FC1000CFE61D49403131F810004FF6FC71C01C91
+:10FC2000084070472DE9F843164E884605460024E3
+:10FC30002868C01C20F0030028602046FFF7E9FF79
+:10FC4000315D4843B8F1000F01D0002200E02A687E
+:10FC50000146009232B100274FEA0D00FFF7B5FDD3
+:10FC60001FB106E001270020F8E706EB8401009AA7
+:10FC70008A602968641C0844E4B22860082CD7D341
+:10FC8000EBE600002406002008EE010070B50E46E9
+:10FC90001D46114600F0D4F804462946304600F0CF
+:10FCA000D8F82044001D70BD2DE9F04190460D4666
+:10FCB00004004FF0000610D00027E01C20F00300E5
+:10FCC000A04200D0FFDFDDB141460020FFF77DFDFF
+:10FCD0000C3000EB850617B112E00127EDE7614F0C
+:10FCE00004F10C00A9003C602572606000EB850007
+:10FCF000206060680EF08AFE41463868FFF765FDB7
+:10FD00003046BDE8F0812DE9FF4F564C804681B06A
+:10FD100020689A46934600B9FFDF2068027A424580
+:10FD200003D9416851F8280020B143F2020005B020
+:10FD3000BDE8F08F5146029800F082F886B258462E
+:10FD40000E9900F086F885B27019001D87B2206800
+:10FD5000A14639460068FFF756FD04001FD06780B2
+:10FD600025802946201D0E9D07465A4601230095F1
+:10FD7000FFF768F92088314638440123029ACDF80C
+:10FD800000A0FFF75FF92088C1193846FFF78AF90C
+:10FD9000D9F800004168002041F82840C7E7042056
+:10FDA000C5E770B52F4C0546206800B9FFDF206815
+:10FDB000017AA9420ED9426852F8251051B10023A8
+:10FDC00042F825304A880068FFF748FD2168002086
+:10FDD0000A7A08E043F2020070BD4B6853F8203005
+:10FDE00033B9401CC0B28242F7D80868FFF700FD63
+:10FDF000002070BD70B51B4E05460024306800B968
+:10FE0000FFDF3068017AA94204D9406850F8250024
+:10FE100000B1041D204670BD70B5124E0546002489
+:10FE2000306800B9FFDF3068017AA94206D940681E
+:10FE300050F8251011B131F8040B4418204670BD5C
+:10FE400010B50A460121FFF7F6F8C01C20F00300A8
+:10FE500010BD10B50A460121FFF7EDF8C01C20F0D7
+:10FE6000030010BD7000002070B50446C2F11005FB
+:10FE700028190EF02AFD15F0FF0108D0491EC9B25D
+:10FE8000802060542046BDE870400EF09DBD70BDDE
+:10FE900030B505E05B1EDBB2CC5CD55C6C40C45475
+:10FEA000002BF7D130BD10B5002409E00B78521EAD
+:10FEB00044EA430300F8013B11F8013BD2B2DC09EC
+:10FEC000002AF3D110BD2DE9F04389B01E46DDE9CB
+:10FED000107990460D00044622D002460846F949A2
+:10FEE000FEF7E1F8102221463846FFF7DCFFE07B01
+:10FEF000000606D5F34A3946102310320846FFF7AC
+:10FF0000C7FF102239464846FFF7CDFFF87B0006B1
+:10FF100006D5EC4A4946102310320846FFF7B8FFD1
+:10FF2000102120460EF050FD0DE0103EB6B208EB59
+:10FF30000601102322466846FFF7AAFF22462846FC
+:10FF40006946FEF7B0F8102EEFD818D0F2B241464D
+:10FF50006846FFF789FF10234A46694604A8FFF761
+:10FF600097FF1023224604A96846FFF791FF224617
+:10FF700028466946FEF797F809B0BDE8F0831023DC
+:10FF80003A464146EAE770B59CB01E460546134620
+:10FF900020980C468DF80800202219460DF1090022
+:10FFA0000EF093FC202221460DF129000EF08DFC6D
+:10FFB00017A913A8CDE90001412302AA314628461A
+:10FFC000FFF781FF1CB070BD2DE9FF4F9FB014AE4D
+:10FFD000DDE92D5410AFBB49CDE900762023203157
+:10FFE0001AA8FFF770FF4FF000088DF808804FF057
+:10FFF00001098DF8099054F8010FCDF80A00A08886
+:020000040001F9
+:10000000ADF80E0014F8010C1022C0F340008DF87A
+:10001000100055F8010FCDF81100A888ADF81500B3
+:1000200015F8010C2C99C0F340008DF8170006A8B4
+:1000300082460EF04AFC0AA88346102222990EF04E
+:1000400044FCA0483523083802AA40688DF83C805B
+:10005000CDE900760E901AA91F98FFF734FF8DF8AE
+:1000600008808DF809902068CDF80A00A088ADF8C6
+:100070000E0014F8010C1022C0F340008DF810009F
+:100080002868CDF81100A888ADF8150015F8010C06
+:100090002C99C0F340008DF8170050460EF015FC67
+:1000A0005846102222990EF010FC86483523083855
+:1000B00002AA40688DF83C90CDE900760E901AA90E
+:1000C0002098FFF700FF23B0BDE8F08FF0B59BB09C
+:1000D0000C460546DDE922101E461746DDE92032B2
+:1000E000D0F801C0CDF808C0B0F805C0ADF80CC01C
+:1000F0000078C0F340008DF80E00D1F80100CDF873
+:100100000F00B1F80500ADF8130008781946C0F3E8
+:1001100040008DF815001088ADF8160090788DF825
+:1001200018000DF1190010220EF0CFFB0DF129007F
+:10013000102231460EF0C9FB0DF13900102239466C
+:100140000EF0C3FB17A913A8CDE90001412302AAB1
+:1001500021462846FFF7B7FE1BB0F0BDF0B5A3B0AF
+:1001600017460D4604461E46102202A828990EF096
+:10017000ACFB06A8202239460EF0A7FB0EA82022D1
+:1001800029460EF0A2FB1EA91AA8CDE900015023B2
+:1001900002AA314616A8FFF796FE1698206023B0F3
+:1001A000F0BDF0B589B00446DDE90E070D4639789B
+:1001B000109EC1F340018DF8001031789446C1F3D0
+:1001C00040018DF801101968CDF802109988ADF83A
+:1001D000061099798DF808100168CDF8091081880A
+:1001E000ADF80D1080798DF80F0010236A46614636
+:1001F00004A8FFF74DFE2246284604A9FDF753FF49
+:10020000D6F801000090B6F80500ADF80400D7F864
+:100210000100CDF80600B7F80500ADF80A0000208F
+:10022000039010236A46214604A8FFF731FE2246B8
+:10023000284604A9FDF737FF09B0F0BD1FB51C68BB
+:1002400000945B680193136802935268039202461C
+:1002500008466946FDF727FF1FBD10B588B0044664
+:10026000106804905068059000200690079008469A
+:100270006A4604A9FDF717FFBDF80000208008B00A
+:1002800010BD1FB51288ADF800201A88ADF8022005
+:100290000022019202920392024608466946FDF747
+:1002A00002FF1FBD7FB5074B14460546083B9A1C4D
+:1002B0006846FFF7E6FF224669462846FFF7CDFF6E
+:1002C0007FBD000060EE010070B5044600780E4668
+:1002D000012813D0052802D0092813D10EE0A06808
+:1002E00061690578052003F0DBF8052D0AD0782335
+:1002F00000220520616903F029F803E00520616907
+:1003000003F0CEF831462046BDE8704001F086B8D3
+:1003100010B500F12D02C3799478411D64F00304F7
+:100320002340C371DB070DD04B79547923404B71C7
+:100330000B79127913400B718278C9788A4200D9FF
+:10034000817010BD00224A710A71F5E741780129D8
+:1003500000D00C21017070472DE9F04F93B04FF0A1
+:10036000000B0C690D468DF820B0097801260C2091
+:1003700017464FF00D084FF0110A4FF008091B29DE
+:1003800075D2DFE811F01B00C30206031E035D03F4
+:100390007003A203B703F803190461049304A004D3
+:1003A000EC042A05340552055D05EE0531063406D8
+:1003B00063067F06F9061D07E606EB0614B12078F2
+:1003C0001D282AD0D5F808805FEA08004FD0012008
+:1003D0008DF82000686A02220D908DF824200A20F2
+:1003E0008DF82500A8690A90A8880028EED098F812
+:1003F000001091B10F2910D27ED2DFE801F07D13F9
+:1004000049DEFEFDFCFBFAF938089CF8F7000228EB
+:100410002DD124B120780C2801D00026EFE38DF8EF
+:100420002020CBE10520696A03F03AF8A888072864
+:10043000EED1204600F0EDFF022809D0204600F062
+:10044000E8FF032807D9204600F0E3FF072802D27F
+:100450000120207004E0002CB8D020780128D7D1EA
+:1004600098F80400C11F0A2902D30A2061E0C4E100
+:10047000A070D8F80010E162B8F80410218698F84E
+:10048000060084F83200012028700320207044E028
+:100490000728BDD1002C99D020780D28B8D198F824
+:1004A000031094F82F20C1F3C000C2F3C002104221
+:1004B00001D0062000E00720890707D198F8051031
+:1004C0000142D2D198F806100142CED194F83120E1
+:1004D00098F8051020EA02021142C6D194F83220A1
+:1004E00098F8061090430142BFD198F80400C11F4C
+:1004F0000A29BAD2617D00E006E281427ED8D8F8AE
+:1005000000106160B8F80410218198F80600A0720C
+:10051000012028700E20207003208DF82000686ACA
+:100520000D9004F12D000990601D0A900F300B9082
+:1005300022E12875FDE3412891D1204600F069FFB2
+:10054000042802D1E078C00704D1204600F061FF02
+:100550000F2884D1A88CD5F80C8080B24FF0400BC6
+:10056000E669FFF747FC324641465B464E46CDF80A
+:100570000090FFF732F80B208DF82000686A0D908C
+:10058000E0690990002108A8FFF79EFE2078042862
+:1005900006D0A07D58B1012809D003280AD049E32C
+:1005A00005202070032028708DF82060CDE184F8AC
+:1005B00000A032E712202070E9E11128BCD12046CA
+:1005C00000F027FF042802D1E078C00719D02046A8
+:1005D00000F01FFF062805D1E078C00711D1A07DEB
+:1005E00002280ED0204600F014FF08E0CAE081E0A7
+:1005F0006FE14EE121E101E1E7E017E0ADE1112813
+:100600009AD1102208F1010104F13C000EF05DF9CD
+:10061000607801287ED012202070E078C00760D07A
+:10062000A07D0028C8D00128C6D05AE0112890D15A
+:10063000204600F0EEFE082804D0204600F0E9FE37
+:10064000132886D104F16C00102208F1010106463E
+:100650000EF03BF9207808280DD014202070E178A6
+:10066000C8070DD0A07D02280AD06278022A04D0E3
+:100670000328A1D035E00920F0E708B1012837D1DF
+:10068000C80713D0A07D02281DD000200090D4E917
+:10069000062133460EA8FFF776FC10220EA904F1BE
+:1006A0003C000EF0E6F8C8B1042042E7D4E9091294
+:1006B000201D8DE8070004F12C0332460EA8616B63
+:1006C000FFF76FFDE9E7606BC1F34401491E006865
+:1006D000C84000F0010040F08000D7E720780928EA
+:1006E00006D185F800908DF8209033E32870ECE374
+:1006F0000920FBE711289AD1204600F08AFE0A283B
+:1007000002D1E078C00704D1204600F082FE15280F
+:100710008DD100E08DE104F13C00102208F10101CF
+:1007200006460EF0D2F820780A2816D0162020703F
+:10073000D4E90932606B611D8DE80F0004F15C03A0
+:1007400004F16C0247310EA8FFF7C0FC10220EA97D
+:1007500030460EF08EF818B1F5E20B20207071E2F1
+:100760002046FFF7D5FDA078216A0A18C0F11001D4
+:1007700010460EF029F923E3394608A8FFF7A4FD37
+:1007800006463BE20228B6D1204600F042FE04288D
+:1007900004D3204600F03DFE082809D3204600F08F
+:1007A00038FE0E2829D3204600F033FE122824D22A
+:1007B000A07D02289FD10E208DF82000686A0D9040
+:1007C00098F801008DF82400F0E3022893D1204628
+:1007D00000F01FFE002810D0204600F01AFE01286D
+:1007E000F9D0204600F015FE0C28F4D004208DF836
+:1007F000240098F801008DF825005EE21128FCD154
+:10080000002CFAD020781728F7D16178606A022985
+:1008100011D0002101EB4101182606EBC101102285
+:10082000405808F101010EF050F80520696A00F007
+:10083000E3FD2670F1E50121ECE70B28DDD1002C6A
+:10084000DBD020781828D8D16078616A02281CD0C3
+:100850005FF0000000EB4002102000EBC2000958DE
+:10086000B8F8010008806078616A02280FD0002083
+:1008700000EB4002142000EBC2000958404650F83B
+:10088000032F0A604068486039E00120E2E7012058
+:10089000EEE71128B1D1002CAFD020781928ACD1C7
+:1008A0006178606A022912D05FF0000101EB41011A
+:1008B0001C2202EBC1011022405808F101010EF088
+:1008C00004F80520696A00F097FD1A20B6E00121BE
+:1008D000ECE7082891D1002C8FD020781A288CD1F1
+:1008E000606A98F80120017862F347010170616A3B
+:1008F000D8F8022041F8012FB8F8060088800520BA
+:10090000696A00F079FD8EE2072012E63878012846
+:1009100094D1182204F1140079680EF01BF8E079E4
+:10092000C10894F82F0001EAD001E07861F30000DB
+:10093000E070217D002974D12178032909D0C007F6
+:1009400025D0032028708DF82090686A0D904120F2
+:1009500004E3607DA178884201D90620E9E50226FA
+:100960002671E179204621F0E001E171617A21F000
+:10097000F0016172A17A21F0F001A172FFF7C8FCC9
+:100980002E708DF82090686A0D900720E6E2042012
+:10099000ACE6387805289DD18DF82000686A0D9066
+:1009A000B8680A900720ADF824000A988DF830B096
+:1009B0006168016021898180A17A817104202070A1
+:1009C000F4E23978052985D18DF82010696A0D91F6
+:1009D000391D09AE0EC986E80E004121ADF824107C
+:1009E0008DF830B01070A88CD7F80C8080B24026FB
+:1009F000A769FFF711FA41463A463346C846CDF893
+:100A00000090FEF71EFE002108A8FFF75DFCE078CD
+:100A100020F03E00801CE0702078052802D00F20D6
+:100A20000CE049E1A07D20B1012802D0032802D0CA
+:100A300002E10720BFE584F80080EEE42070ECE4DA
+:100A4000102104F15C0002F052FA606BB0BBA07D93
+:100A500018B1012801D00520FDE006202870F748D4
+:100A60006063A063BEE23878022894D1387908B177
+:100A70002875B3E3A07D022802D0032805D022E028
+:100A8000B8680028F5D060631CE06078012806D0C3
+:100A9000A07994F82E10012805D0E84806E0A17945
+:100AA00094F82E00F7E7B8680028E2D06063E07899
+:100AB000C00701D0012902D0E04803E003E0F86854
+:100AC0000028D6D0A063062010E68DF82090696A31
+:100AD0000D91E1784846C90709D06178022903D110
+:100AE000A17D29B1012903D0A17D032900D00720D0
+:100AF000287031E138780528BBD1207807281ED02E
+:100B000084F800A005208DF82000686A0D90B86870
+:100B10000A90ADF824A08DF830B003210170E1787F
+:100B2000CA070FD0A27D022A1AD000210091D4E971
+:100B3000061204F15C03401CFFF725FA67E384F812
+:100B40000090DFE7D4E90923211D8DE80E0004F1B0
+:100B50002C0304F15C02401C616BFFF722FB56E39F
+:100B6000626BC1F34401491E1268CA4002F00101E0
+:100B700041F08001DAE738780528BDD18DF82000F2
+:100B8000686A0D90B8680A90ADF824A08DF830B06E
+:100B9000042100F8011B102204F15C010DF095FE08
+:100BA000002108A8FFF790FB2078092801D0132026
+:100BB00044E70A2020709BE5E078C10742D0A17D80
+:100BC000012902D0022927D038E0617808A801293C
+:100BD00016D004F16C010091D4E9061204F15C0313
+:100BE000001DFFF7BBFA0A20287003268DF820802D
+:100BF000686A0D90002108A8FFF766FBDDE2C3E2FA
+:100C000004F15C010091D4E9062104F16C03001D9C
+:100C1000FFF7A4FA0026E9E7C0F3440114290DD236
+:100C20004FF0006101EBB0104FEAB060E070607807
+:100C3000012801D01020BEE40620FFE660780128DC
+:100C40003FF4B7AC0A2051E5E178C90708D0A17D8F
+:100C5000012903D10B20287004202FE028702DE0FB
+:100C60000E2028706078616B012817D004F15C03B6
+:100C700004F16C020EA8FFF7E1FA2046FFF748FBEB
+:100C8000A0780EAEC0F1100130440DF09DFE06209C
+:100C90008DF82000686A09960D909AE004F16C03C3
+:100CA00004F15C020EA8FFF7C9FAE9E739780229D6
+:100CB00003D139790029D1D029758FE28DF8200030
+:100CC000686A0D9058E538780728F6D1D4E90921EB
+:100CD0006078012808D004F16C00CDE9000202918F
+:100CE00005D104F16C0304E004F15C00F5E704F1C4
+:100CF0005C0304F14C007A680646216AFFF764F948
+:100D00006078012821D1A078216A0A18C0F1100169
+:100D100010460DF059FED4E90923606B04F12D0152
+:100D20008DE80F0004F15C0304F16C0231460EA85B
+:100D300000E055E2FFF7CAF910220EA904F13C00C9
+:100D40000DF097FD08B10B20AFE485F8008000BFDF
+:100D50008DF82090686A0D908DF824A00CE5387805
+:100D60000528AAD18DF82000686A0D90B8680A900D
+:100D7000ADF824A08DF830B080F8008061780129AA
+:100D80001AD0D4E9093204F12D01A66B0392009622
+:100D9000CDE9011304F16C0304F15C0204F14C0190
+:100DA000401CFFF793F9002108A8FFF78DFA60783F
+:100DB000012805D0152041E6D4E90923611DE4E7A7
+:100DC0000E20287006208DF82000686ACDF824B027
+:100DD0000D90A0788DF82800CEE438780328C0D193
+:100DE000E079C00770D00F202870072066E73878B8
+:100DF00004286BD11422391D04F114000DF0AAFD52
+:100E0000616A208CA1F80900616AA078C871E17953
+:100E1000626A01F003011172616A627A0A73616A9F
+:100E2000A07A81F82400162060E485F800A08DF8EF
+:100E30002090696A50460D9190E0000060EE01003C
+:100E40003878052842D1B868A8616178606A0229BB
+:100E500001D0012100E0002101EB4101142606EB45
+:100E6000C1014058082102F042F86178606A022905
+:100E700001D0012100E0002101EB410106EBC1019D
+:100E8000425802A8E169FFF70DFA6078626A022809
+:100E900001D0012000E0002000EB4001102000EB19
+:100EA000C1000223105802A90932FEF7F1FF626A5D
+:100EB000FD4B0EA80932A169FFF7E3F96178606A7A
+:100EC000022904D0012103E042E18BE0BDE00021D2
+:100ED00001EB4101182606EBC101A27840580EA98A
+:100EE0000DF0F3FC6178606A022901D0012100E075
+:100EF000002101EB410106EBC1014058A1780844F3
+:100F0000C1F110010DF060FD05208DF82000686A28
+:100F10000D90A8690A90ADF824A08DF830B0062194
+:100F200001706278616A022A01D0012200E0002289
+:100F300002EB420206EBC202401C895810220DF05F
+:100F4000C4FC002108A8FFF7BFF91220C5F818B0AB
+:100F500028708DF82090686A0D900B208DF8240081
+:100F60000AE43878052870D18DF82000686A0D9061
+:100F7000B8680A900B20ADF824000A980721017088
+:100F80006178626A022901D0012100E0002101EBB1
+:100F90004103102101EBC30151580988A0F8011049
+:100FA0006178626A022902D0012101E02FE100216B
+:100FB00001EB4103142101EBC30151580A6840F8C9
+:100FC000032F4968416059E01920287001208DF8ED
+:100FD000300077E6162028708DF830B0002108A880
+:100FE000FFF772F9032617E114202870B0E638786D
+:100FF00005282AD18DF82000686A0D90B8680A90FB
+:10100000ADF824A08DF830B080F800906278616A65
+:101010004E46022A01D0012200E0002202EB4202E9
+:101020001C2303EBC202401C895810220DF04DFC1A
+:10103000002108A8FFF748F9152028708DF82060D6
+:10104000686A0D908DF824603CE680E038780528C9
+:101050007DD18DF82000686A0D90B8680A90ADF8CF
+:10106000249009210170616909784908417061691A
+:1010700051F8012FC0F802208988C18020781C28EF
+:10108000A8D1A1E7E078C00702D04FF0060C01E03C
+:101090004FF0070C607802280AD04FF0000000BF24
+:1010A00000EB040101F1090105D04FF0010004E05B
+:1010B0004FF00100F4E74FF000000B78204413EAF2
+:1010C0000C030B7010F8092F02EA0C02027004D115
+:1010D0004FF01B0C84F800C0D2B394F801C0BCF1EF
+:1010E000010F00D09BB990F800C0E0465FEACC7CCD
+:1010F00004D028F001060670102606E05FEA887C1E
+:1011000005D528F00206067013262E70032694F8E3
+:1011100001C0BCF1020F00D092B991F800C05FEAA3
+:10112000CC7804D02CF001060E70172106E05FEA9F
+:101130008C7805D52CF002060E701921217000263E
+:101140000078D0BBCAB3C3BB1C20207035E012E0CE
+:1011500002E03878062841D11A2019E420780128C5
+:101160003CD00C283AD02046FFF7F0F809208DF843
+:101170002000686A0D9031E03878052805D00620F7
+:10118000387003261820287046E005218DF82010BD
+:10119000686A0D90B8680A900220ADF8240001201A
+:1011A0008DF830000A980170297D4170394608A8F1
+:1011B000FFF78AF8064618202870012E0ED02BE083
+:1011C00001208DF82000686A0D9003208DF824001E
+:1011D000287D8DF8250085F814B012E0287D80B1B7
+:1011E0001D202070172028708DF82090686A0D90BF
+:1011F00002208DF82400394608A8FFF765F8064656
+:101200000AE00CB1FE2020709DF8200020B10021E2
+:1012100008A8FFF759F810E413B03046BDE8F08F86
+:101220002DE9F04387B00C464E6900218DF804107B
+:1012300001202578034602274FF007094FF0050CDF
+:1012400085B1012D53D0022D39D1FE2030708DF89B
+:101250000030606A059003208DF80400207E8DF830
+:10126000050063E02179012925D002292DD0032929
+:1012700028D0042923D1B17D022920D131780D1F36
+:10128000042D04D30A3D032D01D31D2917D1218933
+:10129000022914D38DF80470237020899DF804105E
+:1012A00088421BD2082001E058EE01008DF80000B2
+:1012B000606A059057E070780128EBD0052007B0F0
+:1012C000BDE8F0831D203070E4E771780229F5D184
+:1012D00031780C29F3D18DF80490DDE7083402F859
+:1012E00004CB94E80B0082E80B000320E7E71578B5
+:1012F000052DE4D18DF800C0656A059595680295C5
+:101300008DF8101094F80480B8F1010F13D0B8F1E3
+:10131000020F2DD0B8F1030F1CD0B8F1040FCED1BD
+:10132000ADF804700E202870207E68700021684699
+:10133000FEF7CAFF0CE0ADF804700B202870207E89
+:10134000002100F01F0068706846FEF7BDFF37708F
+:101350000020B4E7ADF804708DF8103085F800C0B7
+:10136000207E6870277011466846FEF7ADFFA6E73D
+:10137000ADF804902B70207F6870607F00F0010052
+:10138000A870A07F00F01F00E870E27F2A71C007FC
+:101390001CD094F8200000F00700687194F8210038
+:1013A00000F00700A87100216846FEF78DFF28684D
+:1013B000F062A8883086A87986F83200A069407863
+:1013C00070752879B0700D203070C1E7A97169710E
+:1013D000E9E700B587B005280CD101208DF80000A1
+:1013E0008DF80400002005918DF80500014668463F
+:1013F000FEF76AFF07B000BD70B50C46054602F067
+:101400004FF821462846BDE870407823002201F0BD
+:101410009DBF08B1007870470C20704770B50C0074
+:1014200005784FF000010CD021702146F2F793F9B6
+:1014300069482178405D884201D1032070BD0220B7
+:1014400070BDF2F788F9002070BD0279012A05D03D
+:1014500000220A704B78012B02D003E00420704771
+:101460000A758A6102799300521C0271C1500320EF
+:101470007047F0B587B00F4605460124287905EB83
+:10148000800050F8046C7078411E02290AD252493B
+:101490003A46083901EB8000314650F8043C2846B2
+:1014A000984704460CB1012C11D12879401E10F048
+:1014B000FF00287101D00324E0E70A208DF8000026
+:1014C000706A0590002101966846FFF7A7FF032C7C
+:1014D000D4D007B02046F0BD70B515460A46044684
+:1014E00029461046FFF7C5FF064674B12078FE284E
+:1014F0000BD1207C30B100202870294604F10C006B
+:10150000FFF7B7FF2046FEF721FF304670BD70475A
+:1015100070B50E4604467C210DF078FA0225012EA6
+:1015200003D0022E04D0052070BD0120607000E0C1
+:1015300065702046FEF70AFFA575002070BD28B132
+:10154000027C1AB10A4600F10C01C5E70120704780
+:1015500010B5044686B0052001F0A2FF2078FE28D1
+:1015600006D000208DF8000069462046FFF7E7FF0F
+:1015700006B010BD7CB50E4600218DF804104178F0
+:10158000012903D0022903D0002405E0046900E00A
+:1015900044690CB1217C89B16D4601462846FFF7AC
+:1015A00054FF032809D1324629462046FFF794FF0D
+:1015B0009DF80410002900D004207CBD04F10C0526
+:1015C000EBE730B40C460146034A204630BC034BDF
+:1015D0000C3AFEF756BE00009CEE010058EE0100EA
+:1015E00070B50D46040011D085B1210128460DF0DB
+:1015F000EBF910224E4928460DF067F94C480121BD
+:101600000838018044804560002070BD012070BD15
+:1016100070B5474E00240546083E10E07068AA7B6E
+:1016200000EB0410817B914208D1C17BEA7B91429F
+:1016300004D10C2229460DF01CF930B1641C30880D
+:101640008442EBDB4FF0FF3070BD204670BD70B5BB
+:101650000D46060006D02DB1FFF7DAFF002803DBA8
+:10166000401C14E0102070BD314C083C208862887A
+:10167000411C914201D9042070BD6168102201EB28
+:10168000001031460DF021F92088401C2080287080
+:10169000002070BD70B514460D0018D0BCB10021FB
+:1016A000A170022802D0102811D105E0288870B15D
+:1016B0000121A170108008E02846FFF7A9FF00284B
+:1016C00005DB401CA070A8892080002070BD01208F
+:1016D00070BD70B5054614460E000BD0002030706A
+:1016E000A878012808D005D91149A1F108010A8874
+:1016F00090420AD9012070BD24B128782070288832
+:10170000000A5070022008700FE064B1496810228E
+:1017100001EB0011204610390DF0D7F8287820731E
+:101720002888000A607310203070002070BD00000F
+:101730007C0000202DE9F04190460C46074600252C
+:10174000FE48072F00EB881607D2DFE807F00707EF
+:10175000070704040400012500E0FFDF06F8147009
+:10176000002D13D0F548803000EB880191F8270058
+:10177000202803D006EB4000447001E081F82640A9
+:1017800006EB44022020507081F82740BDE8F0812C
+:10179000F0B51F4614460E460546202A00D1FFDF4D
+:1017A000E649E648803100EB871C0CEB440001EB76
+:1017B0008702202E07D00CEB460140784B7848700A
+:1017C000184620210AE092F82530407882F825005A
+:1017D000F6E701460CEB410005704078A142F8D1D4
+:1017E00092F82740202C03D00CEB4404637001E0F6
+:1017F00082F826300CEB41042023637082F8271016
+:10180000F0BD30B50D46CE4B44190022181A72EBCC
+:10181000020100D2FFDFCB48854200DDFFDFC9486F
+:101820004042854200DAFFDFC548401C844207DAA7
+:10183000002C01DB204630BDC148401C201830BDC3
+:10184000BF48C043FAE710B504460168407ABE4A73
+:1018500052F82020114450B10220084420F07F406B
+:10186000F9F78FFC94F90810BDE81040C9E704208F
+:10187000F3E72DE9F047B14E803696F82D50DFF8AA
+:10188000BC9206EB850090F8264034E009EB851702
+:101890004FF0070817F81400012806D004282ED0AE
+:1018A00005282ED0062800D0FFDF01F0E3F801461E
+:1018B00007EB4400427806EB850080F8262090F87C
+:1018C0002720A24202D1202280F82720084601F0DA
+:1018D000DCF82A4621460120FFF72CFF9B484146B1
+:1018E00000EB041002682046904796F82D5006EB56
+:1018F000850090F82640202CC8D1BDE8F087022052
+:1019000000E003208046D0E710B58C4C20218034C5
+:1019100084F8251084F8261084F82710002084F815
+:10192000280084F82D0084F82E10411EA16044F890
+:10193000100B2074607420736073A0738449E07787
+:1019400020750870487000217C4A103C02F8110094
+:10195000491CC9B22029F9D30120F9F700FB002066
+:10196000F9F7FDFA012084F82200F9F79DFF794884
+:10197000F9F7A9FF764CA41E20707748F9F7A3FF6A
+:101980006070BDE81040F9F777BA10B5F9F799FA29
+:101990006F4CA41E2078F9F7AFFF6078F9F7ACFF21
+:1019A000BDE8104001F09EB8202070472DE9F34FAC
+:1019B000624E0025803606EB810A89B09AF8250030
+:1019C000202822D0691E02916049009501EB001089
+:1019D0008146D0E90112C0680391CDE90420B08BA3
+:1019E000ADF81C00B07F8DF81E009DF81500C8B141
+:1019F0000227554951F820400399E219114421F07A
+:101A00007F41019184B102210FE00120F9F7A7FA8B
+:101A10000020F9F7A4FAF9F772FA01F063F886F8F2
+:101A20002F50A0E00427E4E700218DF818100228C9
+:101A300001D0012820D10398391901440998081AC6
+:101A40009DF81C1020F07F4001B10221333181420A
+:101A50000BD203208DF815000398C4F13201401A0F
+:101A600020F07F40322403900CE096F8240018B94F
+:101A700001F0A0F900284CD0322C03D214B101F0AF
+:101A800025F801E001F02EF8314A107818B393469A
+:101A90005278039B121B00219DF81840984601289C
+:101AA0001AD0032818D000208DF81E00002A04DD6B
+:101AB000981A039001208DF818009DF81C0000B1C1
+:101AC00002210398254A20F07F40039003AB099838
+:101AD00001F014F810B110E00120E5E79DF81D00B9
+:101AE00018B99BF80000032812D08DF81C50CDF8CF
+:101AF0000C808DF818408DF81E509DF8180058B1D4
+:101B000003980123C11900221846F9F77BFA06E071
+:101B100000200BB0BDE8F08F0120F9F720FA99F909
+:101B20000C20012300200199F9F76CFA012086F8B6
+:101B30002F008AF828502022694611E06C08002006
+:101B4000FF7F841E0020A107ACEE01006C06002080
+:101B50008E000020FB31010073180100FFFF3F00E1
+:101B6000F9480CF0F7FE0120D3E72DE9F05FDFF82C
+:101B7000D883064608EB860090F82550202D1FD00C
+:101B8000A8F180002C4600EB8617A0F50079DFF85D
+:101B9000BCB305E0A24607EB4A004478202C0AD0EB
+:101BA000F9F77CFA09EB04135A4601211B1D00F0DA
+:101BB000A5FF0028EED0AC4202D0334652461EE0CC
+:101BC000E34808B1AFF30080F9F768FA98F82F20DE
+:101BD0006AB1D8F80C20411C891A0902CA1701EB16
+:101BE00012610912002902DD0020BDE8F09F314694
+:101BF000FFF7DCFE08B10120F7E733462A46202133
+:101C00000420FFF7C5FDEFE72DE9F041CE4C256933
+:101C1000F9F744FA401B0002C11700EB11600012F3
+:101C200000D4FFDF94F8220000B1FFDF012784F821
+:101C3000227094F82E00202800D1FFDF94F82E6047
+:101C4000202084F82E00002584F82F5084F820509E
+:101C500084F82150BF4825600078022833D003283B
+:101C600031D000202077A068401C05D04FF0FF3015
+:101C7000A0600120F9F773F90020F9F770F9F9F77E
+:101C80006EFAF9F766FAF9F73AF90CF02BF9B2485F
+:101C9000056005604FF0E0214FF40040B846C1F800
+:101CA0008002F1F776F994F82D703846FFF75DFF62
+:101CB0000028FAD0A448803800EB871010F81600EE
+:101CC000022802D006E00120CCE73A463146062041
+:101CD000FFF730FD84F8238004EB870090F826009E
+:101CE000202804D09B48801E4078F9F70BFE207F07
+:101CF000002803D0F9F723FA2577657746E50146F2
+:101D0000914810B590F82D200024803800EB821007
+:101D100010F814302BB1641CE4B2202CF8D320202E
+:101D200010BD8E4800EB0410016021460120FFF732
+:101D300001FD204610BD10B5012801D0032800D1B7
+:101D400071B3814A92F82D307F4C0022803C04EB25
+:101D5000831300BF13F812400CB1082010BD521CB1
+:101D6000D2B2202AF6D37B4A48B1022807D00729ED
+:101D700016D2DFE801F01506080A0C0E100000214B
+:101D80000AE01B2108E03A2106E0582104E077210F
+:101D900002E0962100E0B52151701070002010BDC6
+:101DA000072010BD6B4810B54078F9F7EAF980B20A
+:101DB00010BD10B5202811D2634991F82D30A1F142
+:101DC000800202EB831414F810303BB191F82D30EF
+:101DD00002EB831212F81020012A01D0002010BD5E
+:101DE00091F82D2001460020FFF7A4FC012010BD32
+:101DF00010B5F9F753F9BDE81040F9F7C2B92DE96C
+:101E0000F0410E46504F01782025803F0C4607EBED
+:101E1000831303E0254603EB45046478944202D023
+:101E2000202CF7D108E0202C06D0A14206D103EBEC
+:101E300041014978017007E00020A7E403EB44006A
+:101E400003EB450140784870454F7EB127B1002132
+:101E500040F2DA30AFF300803078A04206D127B1EB
+:101E6000002140F2DD30AFF30080357027B1002152
+:101E700040F2E230AFF30080012087E410B5426801
+:101E80000B689A1A1202D41702EB1462121216D4BB
+:101E9000497A91B1427A82B9324A006852F82110E7
+:101EA000126819441044001D891C081A0002C11749
+:101EB00000EB11600012322801DB012010BD002070
+:101EC00010BD2DE9F04781461F48244E00EB8100EC
+:101ED000984690F825402020107006F500701546B1
+:101EE00000EB81170BE000BF06EB04104946001D14
+:101EF000FFF7C4FF28B107EB44002C704478202C76
+:101F0000F2D1297888F8001013E000BF06EB041521
+:101F1000291D4846FFF7B2FF68B988F80040A97B41
+:101F200099F80A00814201D80020E6E407EB44005A
+:101F30004478202CEAD10120DFE42DE9FC410E4653
+:101F400007460024054D18E0EC080020FFFF3F0085
+:101F5000000000008E00002000F500406C0600200C
+:101F600000000000ACEE01009DF8000005EB001041
+:101F70008168384600F0D6FD01246B4601AA31463F
+:101F80003846FFF79EFF0028EED02046BDE8FC81D2
+:101F900070B50446FF480125A54300EB841100EB12
+:101FA000851040220CF091FCFB4E26B1002140F23E
+:101FB0005C40AFF30080F748803000EB850100EB18
+:101FC0008400D0F82500C1F8250026B100214FF487
+:101FD0008C60AFF30080284670BD2DE9FC4184463B
+:101FE000EC481546089C00EB85170E4617F81400C0
+:101FF000012803D0022801D00020C7E70B46E74A9A
+:102000000121604600F07AFDA8B101AB6A4629467D
+:102010003046FFF756FF70B1DE489DF804209DF86A
+:102020000010803000EB85068A4208D02B46052040
+:10203000FFF7AEFB0BE02A462146042014E02029DE
+:1020400003D007EB4100407801E096F8250007EB4C
+:10205000440148709DF80000202809D007EB40009B
+:1020600044702A4621460320FFF764FB01208DE7D8
+:1020700006F8254F0120F070F3E7C94901EB001085
+:10208000001DFFF7E0BB7CB51D46134604460E4617
+:1020900000F1080221461846F9F780F894F9080083
+:1020A0000F2804DD1F3820722068401C206096B184
+:1020B0000220BC4951F82610461820686946801B4A
+:1020C00020F07F40206094F908002844C01C1F289D
+:1020D00003DA012009E00420EBE701AAF9F75EF832
+:1020E0009DF8040010B10098401C009000992068F1
+:1020F00031440844C01C20F07F4060607CBD2DE965
+:10210000FE430C460646097860799072207998461D
+:102110001546507241B19F48803090F82E1020290A
+:102120000AD00069401D0BE0D4E90223217903B0F5
+:102130002846BDE8F043A6E79B484178701D084457
+:1021400020F07F47217900222846A368FFF79BFFF4
+:102150003946284600F0E6FCD4E902322179684687
+:10216000FFF791FF41462846019CFFF7E6FE2B460C
+:1021700022460021304600F0C1FC002803D1314640
+:10218000284600F0CFFCBDE8FE832DE9FE4F8146D6
+:1021900000F084FC30B1002799F8000020B1002045
+:1021A000BDE8FE8F0127F7E77A4D7B4C4FF0000A20
+:1021B000803524B1002140F2D340AFF3008095F880
+:1021C0002D8085F823A0002624B100214FF49B60C8
+:1021D000AFF300801FB94046FFF7DAFE804624B116
+:1021E00000214FF49C60AFF30080F8F757FF43469F
+:1021F0006A464946FFF783FF24B1002140F2E640DA
+:10220000AFF3008095F82E0020280CD029690098A3
+:10221000401A0002C21700EB1260001203D5684694
+:1022200000F080FC012624B100214FF49E60AFF342
+:10223000008095F823000028BBD124B1002140F292
+:10224000F640AFF30080F8F729FF6B46534A0021B0
+:1022500000F054FC0028A3D027B941466846FFF798
+:102260006CFE064326B16846FFF7EDFAC9F8080090
+:1022700024B1002140F20950AFF3008001208FE724
+:102280002DE9FF5F8A46814600F008FC414C80340E
+:1022900010B39AF80000002710B1012800D0FFDF2A
+:1022A0003D4D25B1002140F27F50AFF30080012069
+:1022B000A84600905FEA080604D0002140F287504B
+:1022C000AFF30080009800F0E0FB94F82D50002060
+:1022D00084F8230067B119E094F82E000127202824
+:1022E00000D1FFDF9AF800000028D9D0FFDFD7E740
+:1022F0002846FFF74DFE054626B1002140F29150D9
+:10230000AFF3008094F823000028D3D126B1002138
+:1023100040F29B50AFF30080F8F7C0FE83462B4697
+:1023200001AA5146FFF7EBFE5FEA060804D0002140
+:1023300040F2A250AFF300803B462A4601A958461E
+:10234000CDF80090FFF749FE064604EB850090F8B3
+:1023500028B0B8F1000F04D0002140F2A950AFF32B
+:10236000008000F087FB0090B8F1000F04D000213E
+:1023700040F2AF50AFF3008094F82300002899D1C9
+:10238000B8F1000F04D0002140F2B750AFF3008045
+:1023900003490BE06C08002000000000FFFF3F0035
+:1023A0006C060020ACEE01008E00002001EB09104D
+:1023B0000DF1040C00F104009CE80E0080E80E0012
+:1023C0004EB35FEA080604D0002140F2C450AFF3D8
+:1023D00000803BEA070012D094F82E0020280ED18E
+:1023E00026B1002140F2C950AFF300802846FFF724
+:1023F000BCFB20B99AF80000D8B3012849D0B8F145
+:10240000000F04D0002140F2E650AFF300802846D0
+:1024100000F029FB01265FEA080504D0002140F204
+:10242000EF50AFF30080009800F02FFB25B10021A2
+:1024300040F2F350AFF300808EB194F82D0004EB1E
+:10244000800090F82600202809D025B1002140F214
+:10245000FA50AFF30080F9484078F9F753FA25B104
+:10246000002140F2FF50AFF3008004B03046BDE8D9
+:10247000F09FFFE7B8F1000F04D0002140F2D150E7
+:10248000AFF3008094F82D2049460420FFF752F95D
+:10249000C0E7002E3FF40EAF002140F2DC50AFF356
+:1024A000008007E72DE9F84FE54D814695F82D00AE
+:1024B0004FF00008E34C4FF0010B474624B10021D8
+:1024C00040F20D60AFF30080584600F0DEFA85F868
+:1024D000237024B1002140F21260AFF3008095F820
+:1024E0002D00FFF755FD064695F8230028B1002C76
+:1024F000E4D000214FF4C3604BE024B1002140F24E
+:102500001C60AFF30080CE48803800EB861111F8D4
+:102510001900032856D1334605EB830A4A469AF838
+:102520002500904201D1012000E0002000900AF136
+:1025300025000021FFF763FC01460098014203D00B
+:1025400001228AF82820AF77E1B324B1002140F2BC
+:102550002160AFF30080324649460120FFF7EAF8D8
+:102560009AF828A024B1002140F22C60AFF300803B
+:1025700000F080FA834624B1002140F23160AFF3CD
+:10258000008095F8230038B1002C97D0002140F24C
+:102590003560AFF3008091E7BAF1000F07D095F8EE
+:1025A0002E00202803D13046FFF7DFFAE0B124B136
+:1025B000002140F24960AFF30080304600F053FA4A
+:1025C0004FF0010824B1002140F25260AFF30080C7
+:1025D000584600F05AFA24B1002140F25660AFF399
+:1025E00000804046BDE8F88F002CF1D0002140F279
+:1025F0004460AFF30080E6E70020F8F789BC0120D3
+:10260000F8F786BC8D48007870472DE9F0418C4C76
+:1026100094F82E0020281FD194F82D6004EB860733
+:1026200097F82550202D00D1FFDF8549803901EB37
+:10263000861000EB4500407807F8250F0120F87060
+:1026400084F82300294684F82E5032460220223492
+:10265000FFF770F8002020700FE42DE9F0417A4E6A
+:10266000774C012538B1012821D0022879D00328E0
+:102670007DD0FFDFF0E700F029FAFFF7C6FF207EEC
+:1026800000B1FFDF84F821500020F8F768FCA16852
+:10269000481C04D0012300221846F8F7B3FC14F8B4
+:1026A0002E0F217806EB01110A68012154E0FFF793
+:1026B000ACFF0120F8F753FC94F8210050B1A0685A
+:1026C000401C07D014F82E0F217806EB01110A6880
+:1026D000062141E0207EDFF86481002708F102082E
+:1026E000012803D002281ED0FFDFB5E7A777F8F74F
+:1026F00026FD98F80000032801D165772577607DD5
+:10270000524951F8200094F8201051B948B161683D
+:102710000123091A00221846F8F774FC02202076DB
+:102720009AE7277698E784F8205000F0CFF9A07F49
+:1027300050B198F8010061680123091A0022184677
+:10274000F8F760FC257600E0277614F82E0F217844
+:1027500006EB01110A680021BDE8F041104700E0D6
+:1027600005E036480078BDE8F041F9F7CBB8FFF74F
+:102770004CFF14F82E0F217806EB01110A68052191
+:10278000EAE710B52E4C94F82E00202800D1FFDF88
+:1027900014F82E0F21782C4A02EB01110A68BDE8CB
+:1027A0001040042110477CB5254C054694F82E00B6
+:1027B000202800D1FFDFA068401C00D0FFDF94F884
+:1027C0002E00214901AA01EB0010694690F90C0086
+:1027D0002844F8F7E3FC9DF904000F2801DD0120EF
+:1027E00000E00020009908446168084420F07F411F
+:1027F000A16094F82100002807D002B00123BDE8B1
+:10280000704000221846F8F7FDBB7CBD30B5104A79
+:102810000B1A541CB3EB940F1ED3451AB5EB940F4F
+:102820001AD3934203D9101A43185B1C14E0954243
+:1028300010D9511A0844401C43420DE08C0000207E
+:10284000EC080020000000006C060020ACEE010047
+:10285000FF7F841EFFDF0023184630BD01230022C6
+:1028600001460220F8F7CEBB0220F8F778BBF8F754
+:1028700015BC2DE9FC47B14C054694F82E002028E4
+:1028800000D1FFDF642D58D3AD4A0021521B71EBFC
+:10289000010052D394F82E20A0462046DFF8A492DF
+:1028A00090F82D7009EB0214D8F8000001AA284412
+:1028B0006946F8F773FC9DF90400002802DD0098D2
+:1028C000401C0090A068009962684618B21A22F075
+:1028D0007F42B2F5800F30D208EB8702444692F86F
+:1028E0002520202A0AD009EB02125268101A000291
+:1028F000C21700EB1260001288421EDBA068401C69
+:1029000010D0F8F7CBFBA168081A0002C11700EB42
+:1029100011600012022810DD0120F8F720FB4FF0B3
+:10292000FF30A06020682844206026F07F402061AE
+:10293000012084F82300BDE8FC870020FBE72DE997
+:10294000F0477E4C074694F82D00A4F1800606EB74
+:10295000801010F8170000B9FFDF94F82D50A04642
+:10296000794C24B1002140F66500AFF3008040F6B9
+:10297000710940F67A0A06EB851600BF16F81700B3
+:10298000012818D0042810D005280ED006280CD015
+:102990001CB100214846AFF3008020BF002CEDD0D1
+:1029A00000215046AFF30080E8E72A46394601206F
+:1029B000FEF7C0FEF2E74FF0010A4FF0000945466E
+:1029C00024B1002140F68100AFF30080504600F0B2
+:1029D0005CF885F8239024B1002140F68600AFF31F
+:1029E000008095F82D00FFF7D3FA064695F82300EE
+:1029F00028B1002CE4D0002140F68C001FE024B167
+:102A000000214FF40960AFF3008005EB860000F170
+:102A1000270133463A462630FFF7F1F924B1002169
+:102A200040F69400AFF3008000F024F8824695F859
+:102A3000230038B1002CC3D0002140F69A00AFF338
+:102A40000080BDE785F82D60012085F82300504601
+:102A500000F01BF8002C04D0002140F6A700AFF3D3
+:102A60000080BDE8F087354981F82D00012081F80C
+:102A70002300704710B5354808B1AFF30080EFF37D
+:102A8000108000F0010072B610BD10B5002804D10E
+:102A90002F4808B1AFF3008062B610BD2D48006822
+:102AA000C005C00D10D0103840B2002806DA00F082
+:102AB0000F0000F1E02090F8140D03E000F1E02099
+:102AC00090F80004400970470820704710B51B4C6F
+:102AD00094F82400002804D1F8F7CEFB012084F8F4
+:102AE000240010BD10B5154C94F82400002804D023
+:102AF000F8F7EBFB002084F8240010BD10B51C682B
+:102B00005B68241A181A24F07F4420F07F40A14209
+:102B100006D8B4F5800F03D2904201D8012010BD31
+:102B2000002010BDD0E90032D21A21F07F431144B9
+:102B300021F07F41C0E9003170470000EC0800201F
+:102B4000FF1FA1076C06002000000000000000002D
+:102B50000000000004ED00E02DE9F041044680078C
+:102B60004FF000054FF0010604D55C480560066093
+:102B700024F00204E0044FF0FF3705D558484660C2
+:102B8000C0F8087324F48054600003D555480560EC
+:102B900024F08044E0050FD55348C0F80052C0F837
+:102BA000087352490D60091D0D60504A04210C3212
+:102BB0001160066124F48074A00409D54C48466075
+:102BC000C0F80052C0F808734A48056024F4005465
+:102BD000C4F38030C4F3C031884200D0FFDF14F466
+:102BE000404F14D044484660C0F80873434886609C
+:102BF000C0F80052C0F8087341490D600A1D166004
+:102C00008660C0F808730D60166024F44044200507
+:102C10000AD53C4846608660C0F80873C0F848731F
+:102C20003948056024F400640BF036F93748044253
+:102C300000D0FFDFBDE8F08170B5202500221346EB
+:102C400020FA02F1C90719D051B201F01F06012480
+:102C5000B4404E09B60006F1E026C6F88041C6F839
+:102C60008042002906DA01F00F0101F1E02181F82C
+:102C7000143D03E001F1E02181F80034521CAA4226
+:102C8000DED370BD70B5224C0D462060FFF764FFA7
+:102C90002068FFF7D1FF2846F8F7E3FB0AF01EFD96
+:102CA00000F0D5F80BF0F8F80BF043F8F8F7FCFD5E
+:102CB000BDE870400AF0C0BD10B5154C2068FFF7A4
+:102CC0004BFF2068FFF7B8FF0BF0E6F8F8F75DFC64
+:102CD0000020206010BD0A2070470000FC1F00404B
+:102CE00000C0004004E50140008000400485004031
+:102CF00000D0004004D5004000E0004000F000405B
+:102D000000F5004000B0004008B50040FEFF0FFD98
+:102D10009000002070B522490A680AB300221546C7
+:102D200001244B685B1C4B60092B00D34D600E796E
+:102D300004FA06F30E681E420FD0EFF3108212F071
+:102D4000010272B600D001220C689C430C6002B9EB
+:102D500062B649680160002070BD521C092AE0D3A8
+:102D6000052070BD4FF0E0214FF48000C1F8000253
+:102D70007047EFF3108111F0010F72B64FF00102AE
+:102D800002FA00F20648036842EA0302026000D138
+:102D900062B6E7E702480021016041607047000029
+:102DA00094000020012081070860704701208107FE
+:102DB0004860704712480068C00700D00120704783
+:102DC0000F48001F0068C00700D0012070470C4862
+:102DD00008300068C00700D0012070470848103054
+:102DE0000068704706490C310A68D20306D50968A5
+:102DF00001F00301814201D101207047002070479A
+:102E00000C0400402DE9F04115460E46044600270B
+:102E100000F0E7F8A84215D3002341200FE000BFDF
+:102E200094F84220A25CF25494F84210491CB1FB81
+:102E3000F0F200FB12115B1C84F84210DBB2AB42D3
+:102E4000EED3012700F0D9F83846BDE8F08170498B
+:102E500010B5802081F800046E49002081F84200FE
+:102E600081F84100433181F8420081F8410043314B
+:102E700081F8420081F8410067480AF0A3FE6648E5
+:102E8000401C0AF09FFEF8F7DBFBBDE8104000F0A5
+:102E9000B4B8402070475F4800F0A3B80A46014626
+:102EA0005C48AFE7402070475A48433000F099B87B
+:102EB0000A46014657484330A4E7402101700020EC
+:102EC000704710B504465348863000F08AF82070E9
+:102ED000002010BD0A4601464E4810B58630FFF767
+:102EE00091FF08B1002010BD42F2070010BD70B57F
+:102EF0000C460546412900D9FFDF484800681038D4
+:102F000040B200F050F8C6B20D2000F04CF8C0B24C
+:102F1000864203D2FFDF01E0F8F7E2FB22462946B2
+:102F20003C48FFF76FFF0028F6D070BD2DE9F04157
+:102F3000394F002506463F1D57F82540204600F032
+:102F400041F810B36D1CEDB2032DF5D33148433079
+:102F500000F038F8002825D02E4800F033F800287B
+:102F600020D02C48863000F02DF800281AD0F8F731
+:102F70008DFB29480AF02EFEB0F5005F00D0FFDF80
+:102F8000BDE8F04124480AF03BBE94F841004121DD
+:102F9000265414F8410F401CB0FBF1F201FB120063
+:102FA0002070D3E751E7002806DA00F00F0000F1A7
+:102FB000E02090F8140D03E000F1E02090F8000408
+:102FC0004009704710F8411F4122491CB1FBF2F340
+:102FD00002FB13114078814201D10120704700208B
+:102FE000704710F8411F4078814201D3081A02E06F
+:102FF000C0F141000844C0B2704710B506480AF05D
+:10300000E9FD002803D1BDE81040F8F72ABB10BD48
+:103010000DE000E01C0900209C00002004ED00E011
+:1030200070B5154D2878401CC4B26878844202D02F
+:10303000F8F7E7FB2C7070BD2DE9F0410E4C4FF016
+:10304000E02600BFF8F7D2FB20BF40BF20BF677863
+:1030500020786070D6F80052EEF760F9854305D10C
+:10306000D6F8040210B92078B842EBD0F8F7B9FBD3
+:103070000020BDE8F0810000AC0000202DE9F04107
+:10308000012528034FF0E0210026C1F880011E4CE5
+:10309000C4F800610C2000F02CF81C48016802689C
+:1030A000C94341F3001142F010020260C4F8045316
+:1030B0002560491C00E020BFD4F80021002AFAD086
+:1030C00019B9016821F010010160114807686560B5
+:1030D000C4F80853C4F800610C2000F00AF8384620
+:1030E000BDE8F08110B50446FFF7C8FF206000205E
+:1030F00010BD00F01F02012191404009800000F145
+:10310000E020C0F88012704700C0004010ED00E0E1
+:1031100008C500402DE9F047FF4C0646FF21A06896
+:1031200000EB061211702178FF2910D04FF008092A
+:1031300009EB011109EB06174158C05900F0F4F9E9
+:10314000002807DDA168207801EB061108702670C1
+:10315000BDE8F08794F8008045460DE0A06809EBD3
+:1031600005114158C05900F0DFF9002806DCA068BD
+:10317000A84600EB08100578FF2DEFD1A06800EB02
+:10318000061100EB08100D700670E1E7F0B5E24B98
+:103190000446002001259A680C269B780CE000BFAD
+:1031A00005EB0017D75DA74204D106EB0017D759EE
+:1031B0008F4204D0401CC0B28342F1D8FF20F0BD42
+:1031C00070B5FFF754FBD44C08252278A16805EBB5
+:1031D0000212895800F0A8F9012808DD2178A068BA
+:1031E00005EB01114058BDE87040FFF737BBFFF712
+:1031F00009FABDE87040F8F785BB2DE9F041C64CEF
+:103200002578FFF734FBFF2D6ED04FF00808A26839
+:1032100008EB0516915900F087F90228A06801DD36
+:1032200080595DE000EB051109782170022101EB66
+:103230000511425C5AB1521E4254815901F5800178
+:1032400021F07F4181512846FFF764FF34E00423D9
+:10325000012203EB051302EB051250F803C0875C53
+:10326000BCF1000F10D0BCF5007F10D9CCF30802E0
+:1032700050F806C00CEB423C2CF07F4C40F806C0E6
+:10328000C3589A1A520A09E0FF2181540AE0825970
+:1032900002EB4C3222F07F428251002242542846F7
+:1032A000FFF738FF0C21A06801EB05114158E068D9
+:1032B00050F82720384690472078FF2814D0FFF791
+:1032C000D6FA2278A16808EB02124546895800F028
+:1032D0002BF9012893DD2178A06805EB01114058F6
+:1032E000BDE8F041FFF7BABABDE8F081F0B51D4680
+:1032F00014460E460746FF2B00D3FFDFA00700D081
+:10330000FFDF8548FF210022C0E90247C570067132
+:103310000170427082701046012204E002EB00133B
+:10332000401CE154C0B2A842F8D3F0BD70B57A4C4D
+:10333000064665782079854200D3FFDFE06840F8D3
+:1033400025606078401C6070284670BD2DE9FF5FE5
+:103350001D468B460746FF24FFF789FADFF8B89130
+:10336000064699F80100B84200D8FFDF00214FF06F
+:1033700001084FF00C0A99F80220D9F808000EE075
+:1033800008EB0113C35CFF2B0ED0BB4205D10AEB47
+:10339000011350F803C0DC450CD0491CC9B28A4265
+:1033A000EED8FF2C02D00DE00C46F6E799F803109A
+:1033B0008A4203D1FF2004B0BDE8F09F1446521C9E
+:1033C00089F8022008EB04110AEB0412475440F874
+:1033D00002B00421029B0022012B01EB04110CD04E
+:1033E00040F801204FF4007808234FF0020C4545C7
+:1033F00013D9E905C90D02D002E04550F2E7414674
+:1034000006EB413203EB041322F07F42C250691AEB
+:103410000CEB0412490A81540BE005B9012506EBB7
+:10342000453103EB041321F07F41C1500CEB041133
+:10343000425499F800502046FFF76CFE99F80000BE
+:10344000A84201D0FFF7BCFE3846B4E770B50C4681
+:103450000546FFF70CFA064621462846FFF796FE7A
+:103460000446FF281AD02C4D082101EB0411A8684E
+:103470004158304600F058F800F58050C11700EB75
+:10348000D14040130221AA6801EB0411515C09B13B
+:1034900000EB4120002800DC012070BD002070BD41
+:1034A0002DE9F04788468146FFF770FE0746FF2862
+:1034B0001BD0194D2E78A8683146344605E0BC4231
+:1034C00006D0264600EB06121478FF2CF7D10CE04C
+:1034D000FF2C0AD0A6420CD100EB01100078287016
+:1034E000FF2804D0FFF76CFE03E0002030E6FFF772
+:1034F000BBF941464846FFF7A9FF0123A9680246E8
+:1035000003EB0413FF20C854A878401EB84200D132
+:10351000A87001EB041001E0E809002001EB06119E
+:1035200000780870104613E6081A0002C11700EB75
+:10353000116000127047000070B50446A0F500004D
+:103540002D4EB0F1786F02D23444A4F500042B481C
+:10355000844201D2012500E0002500F043F848B183
+:1035600025B9B44204D32648006808E0012070BDA4
+:10357000002070BD002DF9D1B442F9D32148844216
+:10358000F6D2F3E710B50446A0F50000B0F1786F6D
+:1035900003D219480444A4F5000400F023F84FF0C6
+:1035A000804130B11648006804E08C4204D201200A
+:1035B00003E014488442F8D2002080F0010010BDDE
+:1035C00010B520B1FFF7DEFF08B1012010BD0020CB
+:1035D00010BD10B520B1FFF7AFFF08B1012010BD3D
+:1035E000002010BD084809490068884201D1012027
+:1035F00070470020704700000000002000300200EB
+:103600002000002008000020B0000020BEBAFECA42
+:103610000548064A0168914201D100210160044930
+:103620000120086070470000B0000020BEBAFECA4A
+:1036300040E5014043480021017041701021817034
+:10364000704770B5054616460C460220F4F743FD58
+:103650003C490120F61E08703B4806603A4808388D
+:103660000560001F046070BD10B50220F4F733FD43
+:1036700034490120087035480021C0F80011C0F815
+:103680000411C0F8081132494FF40000086010BD61
+:1036900010B52C4C207888B12D494FF40000091D3D
+:1036A000086000F041F8002120B101206070294835
+:1036B000006801E061701020A0702170BDE810402A
+:1036C0000020F4F708BD1F4810B5017859B11F4814
+:1036D000D0F8000128B100F027F8002800D0012020
+:1036E00010BD022010BD407810BD10B5C824641E66
+:1036F000E4B2FFF7E8FF022803D0012800D0002041
+:1037000010BD002CF3D1FFDFF9E70E4810B50178AA
+:1037100041B100F009F818B10E480068C0B210BD00
+:10372000102010BD807810BD0848D0F8001129B1D4
+:10373000D0F8041111B1D0F8080108B10020704789
+:1037400001207047B400002010F5004000F0004058
+:1037500004F5014000F4004045480021017041702B
+:10376000704770B5064614460D460120F4F7B3FCC9
+:1037700040480660001D0460001D056070BD70B506
+:103780003B4A012540EA014115703A4A41F08071F7
+:10379000121F1160384C0026C4F80461374A4FF0FC
+:1037A0004071116058B1012800D0FFDFC4F80062F9
+:1037B000256032494FF00070091F086070BDC4F8E1
+:1037C0000052256070BD2A48017871B12B4A4FF034
+:1037D000407111602849D1F8042100211AB1284A0A
+:1037E0001268427000E0417001700020F4F773BC71
+:1037F0001F48017841B12048D0F80401002802D0C8
+:103800001F480068C0B270474078704770B5002804
+:1038100028D01748007800B9FFDF1748D0F8041106
+:1038200000291FD10223C0F8043316490A680C6826
+:10383000D24342F3001244F010040C609C034FF09A
+:10384000E025521C03E000BFC5F8804220BFD0F83D
+:103850000461002EF8D01AB90A6822F010020A603A
+:10386000C0F8083370BD044901208860704700002B
+:10387000B700002008F5004000F0004008F50140C6
+:1038800000F4004010ED00E0F84808B50021C0F851
+:103890000011C0F80C11C0F81011C0F80411C0F8E4
+:1038A0001411C0F81811C0F82811F14800680090F0
+:1038B00008BD70B5EF4D00246C702C7000F02EFE2A
+:1038C00085F82140AC626C63AC77092105F11400E6
+:1038D0000BF09CF8E849601E0860091D0860091D8E
+:1038E0000C60091D0860091D0C60091D0860091D98
+:1038F0000860091D0860091D0860091D0860091D90
+:103900000860091D0860091D0860091D086070BD78
+:1039100070B5D8490268D94C4A6142688A61007A18
+:1039200008770C3C0A7DD54B251F012042B10E7E45
+:1039300000FA06F21A608E7D0EB1226000E02A6065
+:103940004A7D002A05D04A7E90401860C97D09B1A1
+:10395000206070BD286070BDCA49C9480860091D53
+:10396000C9480860704710B50446012902D00229F1
+:1039700002D0FFDF002101E04FF08071C348014316
+:10398000C0480160C049E0B225390843BD49091D5E
+:103990000860B648D0F80001002800D0FFDF10BD55
+:1039A00070B5012000F0A4FDB94900250D6001208B
+:1039B0000860B8490A68B84B22F077021A430A60D7
+:1039C000091D0A6822F47F4242F4B0520A60A94CF1
+:1039D000AC4A02214C3261771160B14AAF491160A3
+:1039E000A3491031121F1160A64A40F25B612432D4
+:1039F0001160121F40F203111160111F0860A149EC
+:103A00000320091F08609F4996203031086094F90F
+:103A10001E000AF087FB607F10B14FF4C02000E069
+:103A2000A0489F49943908609C489D49001F08316F
+:103A300008608F480838091F0860012000F063FD06
+:103A40008A491020C1F8040384F82D5070BD9148B4
+:103A50003830016821F0010141F080710160704748
+:103A6000844A0368C2F802308088D080117270479F
+:103A7000804890F8210070477E4A5170107070475E
+:103A8000F0B50546840079488B882044C0F820367C
+:103A90000B78D1F8011043EA0121C0F8001605F1B6
+:103AA000080001277B4C07FA00F6FC3C52B1012AC2
+:103AB00000D0FFDF2068304320602068AF403843EB
+:103AC0002060F0BD2068B043F6E710B504460AF068
+:103AD00029FB6848847710BD664890F82E0070472F
+:103AE000644890F830007047664AC178103211601F
+:103AF000006864490002083108607047252807D033
+:103B0000262807D0272807D00A2807D8042206E04D
+:103B1000022107E01A2105E0502103E0062202EB12
+:103B20004001C9B2574A0C3A116056494031086009
+:103B300070475048817A012916D0022913D1417D5E
+:103B4000002910D0827E0121C37E01FA02F2994041
+:103B50000A43534994390A60007F534A002102EB1B
+:103B60008000C0F810157047017DE9E7F0B5414BC2
+:103B70009C7A012C12D0022C67D15D7D002D64D07F
+:103B80004A4F4FF47A76012C0AD05D7EDC7D04B179
+:103B9000012401291FD0022A1FD020E01D7DEDE75E
+:103BA0001D7E9C7D04B101244FF4C86C012902D014
+:103BB000022A07D008E0022A00D1B44649F6FC6187
+:103BC000614405E03A4FB44607EB0C0101F5FA7188
+:103BD000B1FBF6F107E0292105E0354F643F07F21C
+:103BE000E147B7FBF6F1491F0844324908602B4909
+:103BF00000204439C1F84C01280284F0010140EA58
+:103C0000015040F00312197F274800EB8104C4F8EB
+:103C100010259C7E284A00EB810102EBC400C0F80D
+:103C20001415264DC0F81055DB7E02EBC300C0F81A
+:103C300014150F490839C0F81015012000FA04F1D5
+:103C400098400143164898380160F0BD2DE9F047CF
+:103C5000064D0746032090468946C5F80002054EEA
+:103C6000707F10B14FF4C0202BE029E0001000401D
+:103C700018110040F8090020000E004018050050FF
+:103C8000060102001415004025000302080110007F
+:103C9000FC1F00403C17004088000080448000402A
+:103CA0009CF501400000040400600040A2240200D2
+:103CB000683602004C85004000F001404C81004015
+:103CC000F948FA49086048460AF076FA40460AF090
+:103CD00053FA012417B1012F06D008E0404600F046
+:103CE00024FCB4722C6002E00220B0726C60F048D8
+:103CF000C464F048006842464946BDE8F04735E7ED
+:103D00002DE9F0418846EC49074603201646C1F8E4
+:103D10000002EA4C607F10B14FF4C02000E0E2489E
+:103D2000E24D286040460AF047FA30460AF024FA8D
+:103D300017B1012F0CD014E0304600F0F6FB012043
+:103D4000A072606B40F4801060634FF4801007E055
+:103D50000220A072606B40F4001060634FF400100A
+:103D6000286032464146BDE8F0410020FEE608B535
+:103D7000FF208DF80000D0480021C0F8101101216B
+:103D8000016104E09DF80010491E8DF800109DF8B7
+:103D9000001019B1D0F810110029F3D09DF80000DF
+:103DA000002800D1FFDF08BD2DE9FF5FC24D0746A7
+:103DB000002603209B46C5F80002C04C607F10B16E
+:103DC0004FF4C02100E0B849DFF8E082C8F80010E5
+:103DD00002980AF0F1F958460AF0CEF9DFF8CC92D1
+:103DE0004FF0010A09F1A80917B1012F21D02BE0EA
+:103DF000584600F09AFBC9F8005094F82D000128AD
+:103E000005D002280BD0FFDF84F80AA01CE094F84C
+:103E10002C20DDE901015B460AF022FA06E094F865
+:103E20002C30DDE901015A460AF0D1F9A16A4618A1
+:103E3000EAE7A149091DC9F8001094F82D000128EE
+:103E400038D0FFDF0220A0729A48001F0660974911
+:103E50009B48A4310860606B40F400206063D5F893
+:103E600000724FF01009C5F808930020C5F8000251
+:103E70008E484FF48024001D046005F50075FFF79F
+:103E800076FFFFF701FD2F60C8F80040C5F80491E8
+:103E90006100C8F800108649C1F84CA08548006848
+:103EA000B04200D3FFDF029904B05A463046BDE865
+:103EB000F05F5BE694F82C20DDE901015B460AF037
+:103EC000ADF9A16A4618BDE72DE9F0417A4CD4F866
+:103ED000000220F00307D4F804034FF01008C0F3E9
+:103EE0000016C4F808830025C4F800527348407FC8
+:103EF00010B14FF4C02000E06B486C49091D086008
+:103F0000FFF717FEFFF733FFC4F81051C4F828512C
+:103F100000F004FBC4F80072002E01D0C4F8048342
+:103F2000BDE8F0810068674920F07F400860704775
+:103F300010B5012000F0DCFABDE81040012000F0CF
+:103F4000E2BA4FF0E0210220C1F8000170475E495B
+:103F5000087070475B4938390860704770B5574C36
+:103F60000546A06AA84200D3FFDF01202073256127
+:103F7000607F40B1284420614F48D0F8001241F0E2
+:103F80004001C0F800124A490020C1F844014949E3
+:103F9000206908390860BDE8704000F0D8BA70B5F3
+:103FA000464C0546022020730AF0F4F8024694F8C5
+:103FB0002C1028460AF07CF92061617F41B1084449
+:103FC00020613D48D0F8001241F04001C0F80012D5
+:103FD00037490020C1F844012169A06A08443549E5
+:103FE0000839086070BD31494FF48000091D086030
+:103FF0003248416B21F48001416300210173704715
+:104000002B4801214160C1600021C0F844112948BA
+:104010000838016029488162704728494020487764
+:104020002849243108602448D0F8001241F04001AA
+:10403000C0F8001270472048D0F8001221F040016B
+:10404000C0F800121F4902202431086070471A4846
+:10405000D0F8001221F01001C0F800120121816196
+:10406000704715480021C0F81C11D0F8001241F02B
+:104070001001C0F8001270470F4908B5D1F81C2193
+:10408000012A01D0002008BD0E4A0C32126802F04D
+:104090007F02524202700020C1F81C010B480068E8
+:1040A0000090012008BD00000000040404F5014058
+:1040B000008000404C85004000100040F8090020BE
+:1040C000488100403C150040B90000201C11004010
+:1040D000F8B5F74CF74D207B18B1D5F8440101280D
+:1040E0000AD00026F449D1F81001012806D0002298
+:1040F000A07A012804D007E00126F3E74022F7E781
+:10410000D1F80C31012B04D000231343012802D035
+:1041100005E02023F9E7D1F80421012A05D0002287
+:104120001A43E64F022802D008E01022F8E73B6865
+:10413000012B03D1D1F80C31012B04D00023134300
+:10414000022802D007E00823F9E73A681AB9D1F843
+:104150000C21012A04D000221A43022802D004E0D4
+:104160000422F9E70EB1022300E0002313430228E2
+:1041700009D1D1F80401012805D1D5F8440101285D
+:1041800001D0012600E00026CD481E43026812F04F
+:10419000FF0F03D0D1F81421012A00D0002284F8A7
+:1041A0002E20006810F0FF0F03D0D1F8180101286D
+:1041B00000D0002084F82F00C0481030006884F838
+:1041C0003000BF48E0380068402803D1FFF77BFA91
+:1041D000012800D0002084F83100FFF755FB0020B3
+:1041E000C5F84401B748006800903046F8BD30B5C6
+:1041F0000C00054600D1FFDFE00702D0012C00D003
+:10420000FFDF55B10221AA4801294172C472AA48B0
+:1042100005D0022908D0FFDF30BD0121F3E7D0F837
+:10422000001241F0040103E0D0F8001241F008014F
+:10423000C0F8001230BD70B59D4C0022E17A8B07AA
+:1042400001D5430711D4CB0605D594F82F3013B10F
+:1042500094F831304BB10B0702D594F8203023B9D4
+:10426000490703D594F8211001B90122637A9249D4
+:10427000012533B100F00200104312D0BDE87040B8
+:1042800022E6607F10B14FF4C02000E08E488F4AD4
+:104290001060D1F8000220F00300C1F80002E572BE
+:1042A00070BD0026012B09D0022B17D0FFDFA06ABA
+:1042B00001223044BDE87040002157E4D1F80002EB
+:1042C00020F00400C1F8000200F028F90123A572D3
+:1042D0001A460021962009F07AFF0FE0D1F800027B
+:1042E00020F00800C1F8000200F018F90220A072C6
+:1042F00001231A460021962009F090FF0646D6E7D2
+:104300002DE9F047DFF8ACA1DAF84C0108B1FFF76E
+:1043100010FC674C6D49606B086000266663FFF710
+:10432000D7FEDFF8AC810546D8F800006062617FF7
+:1043300009B1401A60626648001F0068A06209F077
+:1043400029FF84F82C00A07ADFF8889184F82D00EA
+:10435000022808D1607830B1D9F8001009780140FE
+:10436000207888430DD084F820605B4FE8070CD09C
+:1043700039785A4A4908606A52F821108847012161
+:104380000AE0012084F82000EFE7A80601D5022109
+:1043900002E0A80707D50021504A3B783832A06ACE
+:1043A00052F8232090473878C00713D1D9F800106D
+:1043B0000622A01C09310AF05CFA40B9217AD9F82A
+:1043C00000000078B1EBD01F01D1012000E00020F7
+:1043D00084F821002846FFF72EFFA80705D53F489F
+:1043E0003978083050F82100804715F00C0F07D0BD
+:1043F0003A483978183050F82110C5F3C000884782
+:10440000A80605D535483978283050F8210080476E
+:104410003878022805D105F06E00402805D106F055
+:1044200021F93878042800D3FFDFA07A022819D1B7
+:10443000207B002816D0CAF8446102280ED001283B
+:1044400000D0FFDFA16A2069884200D8FFDF216920
+:10445000C8F80010BDE8F04700F079B82169A06AFB
+:104460000144F5E7BDE8F08700B5012802D0022835
+:1044700002D0FFDF282000BD182000BD10B541F696
+:10448000A474012802D0022802D0FFDF204610BD0C
+:1044900041F2883010BD10B541F2D474012802D029
+:1044A000022802D0FFDF204610BD41F2040010BDFB
+:1044B000F809002000800040001000400014004077
+:1044C00040160040448100400000040408F501400B
+:1044D0004485004004150040B9000020C4EE0100EE
+:1044E00000B5012802D0022800D0FFDF002000BD67
+:1044F00000F01F02012191404009800000F1E020FE
+:10450000C0F88011704700F01F020121914040095E
+:10451000800000F1E020C0F88012704711480021AF
+:10452000417281720121C17270470F4A11685306AE
+:104530000228D3F8200307D0C0F3062021F4FE415F
+:1045400041EA002010607047C0F30660F6E70548B6
+:10455000416B41F48001416304494FF480000860DD
+:1045600070470000F80900208815004004F501405C
+:1045700010B5434822210AF027FA41480024017867
+:1045800021F010010170012105F004FB3C494FF6B8
+:10459000FF70263981F8224088843A490880488093
+:1045A00010BDE5E7704700F05FB83549016070471E
+:1045B000344908807047324926398A8CA2F57F43F6
+:1045C000FF3B02D00021016008E091F822202C4935
+:1045D0002639012A02D0016001207047002070476F
+:1045E0002748263810F8221F012908D00121017020
+:1045F00024482349263900888884012070470020F8
+:1046000070472049488070471D491E4B26398A8CC7
+:104610005B889A4205D191F8222012B101600120F5
+:104620007047002070471648164A2638818C5288F9
+:10463000914209D14FF6FF71818410F8221F19B100
+:104640000021017001207047002070470C480D4A7E
+:104650002638818C5288914204D190F8220008B10A
+:104660000020704701207047054926398A8C824214
+:1046700005D1002081F822004FF6FF708884704732
+:10468000560A0020BA0000207047524A012338B170
+:10469000012804D113700868906088889081704761
+:1046A00053700868C2F802008888D0807047494A71
+:1046B00010B1012807D00EE0507860B1D2F80200A6
+:1046C0000860D08804E0107828B19068086090896C
+:1046D000888001207047002070473E4910B10128B2
+:1046E00002D005E0487800E0087808B10120704762
+:1046F0000020704730B58DB00C4605460D2104A84A
+:104700000AF084F9E0788DF81F0020798DF81E00FA
+:1047100060798DF81D001022294668460AF0D5F808
+:10472000684609F075F820789DF82F1088420CD162
+:1047300060789DF82E10884207D1A0789DF82D1042
+:10474000884202D101200DB030BD0020FBE730B51A
+:104750000C4605468DB04FF0030104F1030012B181
+:10476000FEF7A6FB01E0FEF7C2FB60790D2120F009
+:10477000C00040F04000607104A80AF047F9E078FA
+:104780008DF81F0020798DF81E0060798DF81D00CE
+:104790001022294668460AF098F8684609F038F869
+:1047A0009DF82F0020709DF82E0060709DF82D0060
+:1047B000A070C8E710B5002904464FF0060102D0EA
+:1047C000FEF776FB01E0FEF792FB607920F0C00077
+:1047D000607110BDBE00002070B5FC4E044696F816
+:1047E0009210002506F18000012909D096F88C105E
+:1047F000012912D096F86A00012818D0002070BD57
+:1048000065701921217050F8131FC4F80210406818
+:10481000C4F8060086F8925024E0657006212170E5
+:10482000D0F80E00C4F8020086F88C501AE06570CB
+:104830001320E649207020226C31A01C0AF045F8B4
+:104840000120A07106F86A5FB188B184E049496827
+:104850004A7B86F8262086F822000888FBF7CAFAE9
+:10486000FAF771FF012070BDD84890F86A1011B1B5
+:10487000B0F86E0070474FF6FF70704770B5D448BF
+:10488000017811B10C26304670BDD04C002635465B
+:1048900084F8626084F8636084F8646084F865601A
+:1048A00084F85E6084F8606084F8566084F836604E
+:1048B00084F867607F21817094F8660028B1FFF763
+:1048C000BAFBFEF7E5FE84F8665084F86A5084F877
+:1048D0008C5084F89250BD489C3005F01FF8BB48BE
+:1048E000C43005F01BF8CEE7B94910B500200870B8
+:1048F000FFF7C4FF002800D0FFDF10BDB34890F8D9
+:1049000062007047B14900B591F8580091F857100E
+:10491000C0F38002C0F340031A4400F001001044C9
+:10492000052910D2DFE801F00A050A030700A949AA
+:1049300006E0A94800BDA749083101E0A5490839AA
+:1049400031F8100000BDFFDF002000BD9F4840F29D
+:104950007121B0F85A00484370479C4890F86800AD
+:10496000002800D00120704710B5984C207A00F044
+:10497000EDFC40B1207C04F1110104F0AFF90828EE
+:1049800001D0012010BD207A30B1022804D00120CE
+:10499000BDE81040FFF7A1BE0020F9E78B4908727F
+:1049A00070478A4981F8600070477CB505468748A2
+:1049B00090F85D0004F0A7F9040013D0102104F072
+:1049C000E5FC00280ED12A4669462046FFF7BFFEC7
+:1049D0007E4869469C3004F0D3FF7C4801219C301E
+:1049E00004F0E7FF7CBD70B578490A310D4601F14E
+:1049F000920004F0B9FF754C04F19C00617A04F058
+:104A0000CBFF294604F1C40004F0AEFF617A04F143
+:104A1000C400BDE8704004F0BFBF2DE9F0416B4C0D
+:104A2000074694F85D0004F064F9064694F85F00C8
+:104A300004F10A0528B126B11021304604F0A6FC85
+:104A4000A0B194F86000002824D094F85E000028FB
+:104A500020D0607A294600F08AFCA8B104F04BFA15
+:104A60003A462946BDE8F041FFF771BE0120607269
+:104A70003A4629463046FFF76AFE94F85D1028460C
+:104A8000BDE8F04104F002BA39462846BDE8F041DD
+:104A9000FFF790BEBDE8F08170B54C4C207AB0B104
+:104AA000022814D00120494960720A310D46FFF7EF
+:104AB000FEFD207A00F04AFC84F85F00082084F8AC
+:104AC0005D00607A294600F049FC38B901E0002019
+:104AD000E9E7607A294600F04AFC00B1012084F839
+:104AE0005E0094F85F0028B994F85700012801D0BF
+:104AF000042806D13549207C113104F0EFF884F800
+:104B00005D0000202060FDF773F960600020FFF772
+:104B100084FFFFF768FF94F85700012801D00428AC
+:104B200003D1BDE8704000203FE770BD70B5274C51
+:104B3000417B84F85810017984F85710012925D059
+:104B4000B0F80020A4F85A20827B84F8682082798B
+:104B5000F2B1022A1CD00122227450F8072FC4F8A7
+:104B600011208088A4F8150094F85600012508B19A
+:104B700084F8635094F8360008B184F8645005292D
+:104B800033D2DFE801F0070D2B2D0D000022D9E70D
+:104B90000022E1E70D4800219C3004F0C2FE0FE046
+:104BA0000A4801219C3004F0BCFE0849113101F192
+:104BB0008B0004F0E5FE0548217C9C3004F0F9FEF2
+:104BC000024801219C3000F0DDFB0FE0780A002054
+:104BD000CC0000201CEF0100D0891300062100E06A
+:104BE0000221FA4804F09DFE00E0FFDFF7480421AF
+:104BF000283004F096FE84F86250002070BD70B535
+:104C00000546F24C00209C3C04F8640FEF482A460D
+:104C1000853809F05AFE04F82E5C0120207070BD22
+:104C200010B5EA4C00229C3C84F8632004F8560F2F
+:104C30000246E648653809F048FE0120607310BD61
+:104C4000E2499C3981F86700704770B500F0ADFB10
+:104C5000DE4C9C3C002694F8660028B1FFF7EBF987
+:104C6000FEF716FD84F86660D94D2E7094F8570053
+:104C7000012804D0BDE87040002001F08EB9022068
+:104C800001F08BF994F86A0000B1FFDF6878002822
+:104C900017D0207C84F87100D4F81100C4F8720099
+:104CA000B4F81500A4F876003C2084F86C0068681D
+:104CB0000088A4F86E00012084F86A0000F06BFB05
+:104CC0006E7070BD10B50024C20701D0CA0708D0AD
+:104CD00082070BD58A0709D42620FEF70FFF02248E
+:104CE0000CE02520FEF70AFF012407E0400705D568
+:104CF000480703D42720FEF701FF0424FEF72CFE0B
+:104D0000204610BD2DE9F041B148017859BBAF4CA8
+:104D10009C3C94F8621031B3002584F861504570D2
+:104D200028465834FFF713F9FEF73AFEFEF714FE53
+:104D3000A848FEF7D9FEA748C01EFFF7F3F8207871
+:104D40000021FFF7BFFF2071FFF7FBF800210122D0
+:104D50000846FEF7D5FF0F210520FEF78DFEA0794E
+:104D6000583C58B901E00C2094E694F85F0028B94B
+:104D700094F85700012801D0042828D1FDF738F80D
+:104D8000064631466068FDF741FD934990FBF1F717
+:104D900001FB170041423046FCF733FD606020689C
+:104DA0003844206003F096FF216888420FD8C4E998
+:104DB00000560120FFF731FEFFF715FE94F857006B
+:104DC000012801D0042802D10120FFF7EEFD7F4821
+:104DD000617A9238FEF744FE94F8570001280DD00E
+:104DE00004280BD094F8630040B1784994F8562019
+:104DF0006539764804F0F9FD84F8635094F864004E
+:104E000048B1724994F83620853901F1AD0004F0BB
+:104E100018FE84F8645003F0BDFF6C48503004F075
+:104E200024F884F86600002034E669494860704739
+:104E300070B5664C0500A4F19C040AD094F85C108F
+:104E400014F8580FFFF73EFF14F8041F084304F846
+:104E50005C0994F8610038B194F85700012800D13A
+:104E6000FFDFBDE87040F0E635B1002201234FF4CA
+:104E700096711046FEF798FF5448FFF76BF894F8C8
+:104E80005700052809D2DFE800F0030303090300F7
+:104E900001210846FFF7ABF900E0FFDF94F8581056
+:104EA00094F85C0081434FF0010005D194F857104D
+:104EB000012904D084F861004549087070BD0021C3
+:104EC00084F85C10F8E7424810B5007848B93F48CC
+:104ED0009C3890F8620020B10020FFF7A9FF002065
+:104EE00010BD00F062FA0C2010BD39490120487055
+:104EF000704736499C3981F86500704770B50025C8
+:104F000000F024FF48B1324E3078012808D0022842
+:104F100001D0032833D0FFDF70BDBDE8704094E6B8
+:104F20002A4C9C3C94F85700032828D094F866003B
+:104F300018B1FEF799FBFFF770F824485030FFF7DF
+:104F400009F89620FFF72BF894F8570001280DD0A8
+:104F500004280BD094F86800012801D0032800D160
+:104F6000102545F00E010020FFF741F994F8670085
+:104F7000012801D1FFF775F80220307070BDBDE83F
+:104F80007040012054E710B5104C9C3C94F8670029
+:104F9000012801D100F014FA94F8660018B1FFF767
+:104FA0004AF8FEF775FB00F0D1FEB8B1084C207846
+:104FB000022800D0FFDF0120FFF73AFF2078002809
+:104FC00003D02078012800D0FFDF10BD140B002093
+:104FD000CC0000200FEF010040420F00BDE8104060
+:104FE00033E610B503F07AFE044603F09CFF38B1B7
+:104FF000204603F088FE18B1102104F0C7F908B16B
+:105000000020E2E70120E0E72DE9F84F0446002602
+:10501000FEF762FDDFF8C493074699F80000022806
+:1050200000D0FFDFDFF8B8A39AF86700012801D1AC
+:1050300000F0C6F9EA48EC3004F092FCFF25804607
+:10504000002C78D0E648EC3004F072FD002872D0D5
+:10505000FEF70EFD00286ED0E14C9AF86600EC34A5
+:1050600060B103F07DFE0546FF2807D00146E01C35
+:1050700003F06AFE284603F07DFE0743DFF860B3C5
+:10508000B8F1060F0BF1800B55D2DFE808F09797C7
+:10509000970397559AF8571001294CD0D046042908
+:1050A00049D067B998F8680008B1022843D1207840
+:1050B000E11CC0F38010FFF794FF00287ED198F820
+:1050C0006700474601282ED197F8920058BB01206F
+:1050D00087F89200FF2D0DD0C14A28469432511E08
+:1050E00003F01BFE00B9FFDF17F8930F40F002003A
+:1050F00038700CE02078C0F3801088F89300DBF85B
+:105100006F10CBF81410BBF87310ABF81810B44D37
+:1051100099F802009A354C467F2800D1FFDFA0782D
+:1051200028707F20A070AE48C430FEF713FF032123
+:1051300089F8001043E041E020789AF81010A0466A
+:10514000C0F380105446884207D1A5490622113188
+:1051500008F1030009F08DFB20B10020FF2D08D0DD
+:1051600088B901E00120F9E794F85D00A8420AD06F
+:105170000FE070B198F8000008F10301C0F380104F
+:10518000FFF72FFF28B994F85700012813D00428FF
+:1051900011D094F8570088B96FB994F8680008B135
+:1051A00001280BD198F8000008F10301C0F380102A
+:1051B000FFF717FF10B994F86500C8B101269AF8F7
+:1051C000660018B1FEF737FFFEF762FA16B101204C
+:1051D000FFF72EFE99F800104846002906D0017806
+:1051E000012903D00078032800D0FFDFBDE8F88F45
+:1051F0007B49D9F804008031C34651F87B2FC0F8B1
+:105200000E208A8842828979017598F816204275A5
+:10521000B8F81720C282B8F819204280B8F81B20CD
+:105220008280B8F81D20C2806E4A4146D2F80B3009
+:105230008360D27B027311F8242F02F01F020276E2
+:1052400011F81F29520980F8642111F8051C427BCE
+:10525000C1F340110A40427394F86A0000B1FFDFC5
+:10526000002784F86C70D9F80400C8460188A4F8B7
+:105270006E104188A4F884108188A4F88610C18833
+:10528000A4F8881090F8640184F88A00544894F8CF
+:105290005F100A30009021B1607A009900F067F841
+:1052A00038B994F8600058B1607A009900F056F867
+:1052B00030B1D4F80A00A067E089A4F87C0002E0CD
+:1052C000A767A4F87C709BF80000454AC0F38011E2
+:1052D000D8F804008032FF2D417652F86F1FC0F8D5
+:1052E0001A109288C28313D0C4F87E103C4AC08B37
+:1052F000A4F882007232511E284603F00EFD00B958
+:10530000FFDF94F8710040F0020084F871000DE0B6
+:10531000C4F87E70A4F88270417E84F87110D0F8D1
+:105320001A10C4F87210C08BA4F87600012084F81B
+:105330006A0000F030F888F8007000F036F80120BC
+:1053400000F02BFE3BE7012200F04FBE022803D005
+:10535000032801D00020704701207047012802D1A6
+:105360004879800901D0002070470120704701284A
+:1053700006D148790121B1EB901F01D1012070477E
+:10538000002070470278202322F0200203EA411116
+:105390000A4302707047114810B540680088FAF758
+:1053A00029FDBDE81040FAF7BFB910B5FEF728FE99
+:1053B000FEF719FEFEF788FDBDE81040FEF7B8BD08
+:1053C000064810B5801CFEF757FE10B903497F2030
+:1053D0008870BDE81040FEF73ABE0000CC00002007
+:1053E000780A0020780B0020FE484068704770B5AE
+:1053F00006460D4614461046FFF740F8022C10D022
+:10540000F94908444FF47A7100F2E140B0FBF1F041
+:1054100000EB460005442046FFF726F8284460309C
+:1054200070BDF249EDE72DE9F0410D460646014613
+:105430001746012004F0B1F8044696F85200FFF731
+:105440001DF896F85210022914D0E74940F2712253
+:1054500008444FF47A7100F2E140B0FBF1F170883A
+:105460005043C1EB4000C01BA0F55970A54203D2C8
+:10547000214602E0DD49E9E72946814204D2A542FE
+:1054800001D2204600E028467062BDE8F0812DE997
+:10549000FF4F89B0044690F85200DDF858909A46C4
+:1054A000039049EA0A00089094F864000025164623
+:1054B00019460D2803D00020069011B131E00120DB
+:1054C000FAE794F8040103282BD1069848B3B4F8FE
+:1054D0007C01B04225D1D4F80C01C4F8F8006088F2
+:1054E00040F2E2414843C4F8FC00B4F85201B4F879
+:1054F000DE100844C4F80001204602F093FBB4F823
+:105500008001E08294F87E016075B4F882016080C9
+:10551000B4F88401A080B4F88601E080022084F809
+:105520000401D4F85C010290B4F8DE00D4F858818C
+:105530000090B4F85011D4F84C010590BAF1000F66
+:1055400004D094F8180100287ED108E004F5A67074
+:10555000049004F59C7704F1D80B001D07E004F5D6
+:105560009870049004F58E7704F5967B001D0790E3
+:10557000B4F85800301A00B20190701A00B2002836
+:1055800005DAD4F84801059001200890019894F8B4
+:105590000411E9B101297DD002297CD003297BD0F7
+:1055A000FFDF29460598FCF72CF904990860079855
+:1055B0000121068000203870397104980068B860B5
+:1055C0008B48D0E90520824267D9CBF8000082E100
+:1055D000B8F1000F00D1FFDFE08A40F271214843AB
+:1055E000490001EB40000A9900F074FDC4F808017D
+:1055F000608840F2E24148430A9900F06BFDC4F82C
+:105600000C0182B22046A16AFFF70DFF14F8520F79
+:10561000FEF766FF4FF47A7100F2E140B0FBF1F162
+:1056200001EB080000902078FEF75AFF14F8521999
+:10563000024602293FD06C4815180846FEF71EFFA7
+:1056400029184FF47A7000E076E101F2DB51B1FBEA
+:10565000F0F1E08A40F271225043C1EB4001D4F8EE
+:10566000080140F2E2430A1A0099551894F85220B2
+:10567000617D11FB03F105F2C245FFF7B8FE5C49FD
+:10568000801C4861886194F85200FEF729FF4FF4AE
+:105690007A7103E087E010E0BEE019E100F2E1403A
+:1056A000B0FBF1F101EB0800281AB0F53D7FBFF423
+:1056B00078AFFFDF75E74D48BEE7E08A40F2712220
+:1056C000D4F8FC10504301EB40000A9900F002FDB1
+:1056D000C4F80801608840F2E24148430A9900F0AA
+:1056E000F9FCC4F80C0182B22046A16AFFF79BFEC8
+:1056F000009848BBB9F1000F26D094F85200FEF78D
+:10570000BDFE94F85210024602291BD0364840F2E2
+:10571000712510444FF47A7200F2E140B0FBF2F0D0
+:10572000D4F80821D4F8FC300244E08A684303EB43
+:105730004000851A0846FEF797FE0299081A0544AC
+:10574000203D0CE02948E2E7E08A40F27122D4F8DB
+:10575000FC10504301EB4000D4F80811451AD4F86E
+:105760000021D4F8F810D4F8080140F2E24301FB1C
+:10577000020094F85220617D11FB03F1E834FFF739
+:1057800036FE01461A4840F27123416134F8E61CA6
+:10579000626A5943C2EB4101A1F2133181610120D8
+:1057A0002077E83CFDE6628840F27123D4F80C11C2
+:1057B0005A43C1EB42054543DDE900021044D4F8E9
+:1057C0000021D4F8F8C0801AD4F80831401E0CFB30
+:1057D000023200FB012094F85220617D40F2E24346
+:1057E00008E000008C0B0020A22402000436020016
+:1057F000D400002011FB03F1FFF7F9FD0146FE483C
+:10580000B9F1000F4161A5F213318161CAD0B8F13D
+:10581000000FC7D1FFDFC4E6618840F27123D4F8DE
+:105820000C215943C2EB4105454394F863002428F9
+:1058300003D094F86400242809D1B4F87C01301A0C
+:1058400000B2002803DB94F87F0100B103900898B0
+:1058500028B10098002802981AD000B1FFDFDDE9D6
+:1058600000010844D4F80C11039A48430021FFF7C3
+:10587000BEFD0146E04840F2712341616188D4F8E1
+:105880000C215943C2EB4101A1F21331816188E639
+:1058900010B1B8F1000F00D1FFDF0398FEF7EEFD65
+:1058A00001460398022811D0D44808444FF47A7175
+:1058B00000F2E140B0FBF1F02D1A94F85200FEF72F
+:1058C000D3FD0299081A0544203DC8E7CC48ECE70F
+:1058D0001046CBF80020626A104400F28310F86092
+:1058E0007971B4F8C800801B00B2002801DD0320E4
+:1058F0007871069820B3B9F1000F17D0B4F8F020F2
+:10590000C2B3B4F8F20000BFA4F8F20094F8F43087
+:10591000401C4343934209D27879401E002805DD9C
+:105920007971B4F8F200401CA4F8F200BAF1000F4B
+:1059300027D094F8180100B302200DB0BDE8F08F15
+:10594000B9F1000FDAD194F804010028EED0608894
+:1059500040F27122D4F80C115043C1EB400138469B
+:1059600003F0DFFD0004000CE0D0179901B10880BE
+:105970000120E2E7FFE70020C6E794F85401FCF7B6
+:1059800091FD94F85401394600F08AFB18B18AF071
+:10599000010084F819010020CFE7FEB50446FCF7AA
+:1059A00027FA0146D4F84801FCF730FF214600F001
+:1059B0009BFB94F864100D290AD0B4F85820B4F871
+:1059C00016111318994206DB491CA4F8161106E0BB
+:1059D000B4F816010CE0401C1044A4F8160194F829
+:1059E0001A0140B9B4F81601B4F8CC10884202D1BB
+:1059F000401CA4F81601B4F852017F4D401CA4F8D5
+:105A00005201B4F87E00B4F87C10401AB4F8581073
+:105A1000401E084486B216E07A48297802AF002377
+:105A200030F81110CDE9003794F8643130F81300E4
+:105A30000023084481B22046FFF729FD002821D029
+:105A4000012817D0FFDFB4F81621B01A00B20028E1
+:105A5000E2DA082084F87300012084F872002046FE
+:105A600001F09DFD204600F01DFB2879BDE8FE40B9
+:105A7000F5F748BFB4F81601BDF808100844A4F8BB
+:105A80001601E0E7FEBD2DE9F0415F4C032701253B
+:105A9000277500202074E07A04F1100650B14FF40D
+:105AA0007A71A069FBF7ADFEA0610021304603F0DA
+:105AB00038FD10E0002000F056FB0546FEF746FFDB
+:105AC00005442946A069FBF79CFEA06129463046A3
+:105AD00003F027FD451C208C411C0A2901D22844D3
+:105AE0002084606830B1208C401C0A2802D3022038
+:105AF000607500E06775607A002806D1207B31462A
+:105B000000F0CEFA002800D1FFDFBEE42DE9F0411D
+:105B100006463D480F460178374D032909D1017BE0
+:105B2000B14206D1406828613846BDE8F04100F036
+:105B30002FBB304600F0AAFA0721FAF729F8040033
+:105B400000D1FFDF304600F0A1FA2188884200D062
+:105B5000FFDF214638462C61BDE8F04100F0D1BAA4
+:105B600010B5294C207848B101206072FFF7C1F9C7
+:105B70002078032804D0207A002800D00C2010BD03
+:105B8000207BFCF78FFC207BFCF7D9FE207BFCF709
+:105B900010F900B9FFDF0020207010BD10B5FFF72D
+:105BA000DFFF00F022FB18490020C87210BD70B55D
+:105BB0000446012000F05BFAC5B20B2000F057FA52
+:105BC000C0B2854200D0FFDF6FF0040000F04FFA52
+:105BD000C5B2192000F04BFAC0B2854200D0FFDFF9
+:105BE0000549002001220C7188700A704870C87045
+:105BF000054908700AE00000D4000020A224020039
+:105C0000043602002CEF01008C0B0020BDE8704030
+:105C1000C4E7FD49087070472DE9F041FB4C06468A
+:105C2000207800284CD1FA48FCF769F82073202826
+:105C300046D04FF00308666084F800800025657246
+:105C40002572A6B1012106F1F400FDF750F90620F6
+:105C5000F9F746FF07460720F9F742FF16F8F41F49
+:105C60003844B1FBF0F200FB1210401C3070FCF71E
+:105C700099F840F2F651884200D2084600F23D10F1
+:105C800086B2FEF73FFEE061FEF760FE0127C8B175
+:105C9000A772002000F067FA0644FCF7A9F8314625
+:105CA000FBF7AFFDC4F8180084F8148084F8158061
+:105CB000D6492574207B103100F0F2F960B90AE072
+:105CC0000C2022E7FCF794F83146FBF79AFDA0611F
+:105CD000A572E772E8E7FFDF25840020FFF709F9E6
+:105CE000002012E77CB50025044680F80451A0F896
+:105CF0005051C54900950195C648097894F864212A
+:105D00002B4630F8111030F812002A46084481B2B0
+:105D10002046FFF7BCFB00B1FFDFC4F800510120B3
+:105D2000C4F8F85084F80401A4F81651A4F81451EA
+:105D300084F81A5134F8580F401E24F8900B0020B4
+:105D4000A4F86A507CBDB04948707047AF4810B5A0
+:105D5000417A012409B1002408E0C17A31B1406AD6
+:105D6000AD49884202D90024FFF7BFF8204610BD94
+:105D700070B5A54C0646E088401CE080D4E90201DD
+:105D80006278D6F8585112B12A4603F0F4FBA060AD
+:105D9000854205D896F80401012801D0E07808B1C1
+:105DA000002070BD012070BD70B504460D46084648
+:105DB000FEF764FB022D10D0984908444FF47A7125
+:105DC00000F2E140B0FBF1F040F2E2414C4300F55B
+:105DD0004D70844203D9201A70BD9149EDE700202F
+:105DE00070BDFEB50025044680F8185190F8D60025
+:105DF00000284AD194F80401032846D1FBF7F8FFA4
+:105E00000146D4F84801FCF701FD00283DDD21469C
+:105E100000F06AF9411CB4F858000144A4F81411C8
+:105E2000B4F81411B4F8CC20511A09B200292CDDB1
+:105E3000012184F81A11B4F87E10B4F87C20891A74
+:105E4000491E084486B21AE06F49724802AA0978CE
+:105E500030F81110CDE90052B4F8142194F86431EF
+:105E600030F813000123084481B22046FFF70FFBEE
+:105E700000280AD0012809D0022806D0FFDFB4F894
+:105E80001401301A00B20028DEDAFEBDB4F81401A5
+:105E9000BDF808100844A4F81401F0E77CB500250B
+:105EA0000446012902D15848C17871B1042084F810
+:105EB000040100BFFBF7A8FEA4F85251B4F8580043
+:105EC000A4F8160184F81A517CBD5249007894F860
+:105ED000042131F810000123032A13D0012AE9D14B
+:105EE000CDE9003594F86431B4F8CC2031F81310C2
+:105EF0000023084481B22046FFF7C9FA0028D9D010
+:105F0000FFDFD7E7C4F80051C4F8F850E8E770B5F0
+:105F10003E4C00263546E07A08B1E57219E0A07AD9
+:105F200018B1012000F01FF90646FEF70FFD811998
+:105F3000A069FBF766FCA061257403206075607A98
+:105F400030B93249207B103100F0AAF800B9FFDFE8
+:105F50002584FBF759FE2C480079BDE87040F5F721
+:105F6000D1BC10B5062916D2DFE801F00509030CF3
+:105F70000C0D002100E00121BDE810408EE7032157
+:105F800080F8041110BDB0F80C118AB2816ABDE826
+:105F90001040FFF748BAFFDF10BD10B548B1012827
+:105FA00003D0022805D0FFDF10BDBDE8104000F08F
+:105FB00048B9BDE81040AAE770B5134CA178022992
+:105FC00012D1E18800290FD12569C5F85C0195F847
+:105FD0005200E035FEF748FAE96F081AA16801445B
+:105FE000A160E1680844E06070BD70B505460648F0
+:105FF0008378022B16D0054C2434C1B1012915D069
+:10600000022916D0FFDF70BDD40000208C0B0020C9
+:106010000D5B01002CEF0100DB821300A2240200C3
+:1060200004360200046904F5AC74E6E76D1E2560D1
+:10603000E9E71046FEF72FFA4FF47A7100F2E140DB
+:10604000B0FBF1F0281A2060DDE7D74810B50078E2
+:1060500008B1002010BD0720F9F734FD80F00100E1
+:1060600010BDD1480078002800D0012070470028DA
+:1060700006DA00F00F0000F1E02090F8140D03E0C4
+:1060800000F1E02090F800044009704710B5044684
+:10609000202800D3FFDFC448283030F8140010BD9A
+:1060A000FCF7EEB870B50446002084F8040194F8BB
+:1060B00054514FF6FF76202D00D3FFDFBA48283029
+:1060C00020F8156094F85401FBF773FE202084F843
+:1060D000540198E702460020002904D0B3485143F8
+:1060E000B1FBF0F0401C7047002809D0D1F80C211A
+:1060F000498840F271235943C2EB4101B0FBF1F0F2
+:10610000704770B50125AA4E0C46082829D2DFE851
+:1061100000F0040F17171228281B204600F0FAF889
+:10612000204600F0BAF884F818510220B0706AE7EF
+:1061300001F076FD01E0FEF7E3F884F8185162E71C
+:106140002046BDE8704028E494F80401042800D0FB
+:10615000FFDF2046FFF7A6FF3079BDE87040F5F776
+:10616000D1BBFFDF4FE708B500284FF001016846BB
+:1061700002D0FCF79DFE01E0FCF790FE9DF80000C8
+:1061800042F210710002B0FBF1F201FB120008BDF7
+:1061900070B5854C05462078032800D0FFDF002627
+:1061A000082D20D2DFE805F0040D1717131F1F1A62
+:1061B0006662FEF7A7FD00B1FFDF7D49032088700E
+:1061C00021E7FEF780FE0028FAD0FFDF1BE7BDE8DD
+:1061D0007040FEF795B8BDE8704054E4207BFBF7B3
+:1061E000E8FD26700FE7FFDF0DE7FEB5704C0120DC
+:1061F000E0704FF6FF750CE00721F9F7C9FC0600C7
+:1062000000D1FFDF96F85401FCF799FB3046FFF709
+:1062100049FF69460720F9F744FC50B1FFDF08E069
+:10622000029830B190F8041119B10088A842E3D166
+:1062300004E06846F9F713FC0028F1D00020E07074
+:10624000FEBD70B5584C0020E072A6692070012098
+:1062500020720021606802F093FF6068C0F8486116
+:10626000257B80F85451616AC0F84C61C0F8581120
+:106270000688202D00D3FFDF4B48283020F815601A
+:106280006068FFF72FFD00B1FFDFFBF7BDFC48485A
+:106290000079BDE87040F5F735BB70B50546FBF7F2
+:1062A00081FD95F8526004463046FEF7E7F8022E6D
+:1062B00026D0404940F2712208444FF47A7100F22E
+:1062C000E140B0FBF1F0D5F80C110144688850436F
+:1062D000C1EB4006303EB72C00D8B7242946012038
+:1062E00003F05BF92044341A29460120A4F2193442
+:1062F00003F053F9696A9C30814203D9081A02E01D
+:106300002D49D7E700202A49A042CC6000D320467F
+:10631000886078E610B5044625490020C4F8580185
+:10632000C880C4F85C0194F8190138B9FBF760FD26
+:10633000D4F82411FCF76AFA002813DCB4F816111B
+:10634000B4F85800814201D1B4F8CC10081AA4F86E
+:10635000CE00A4F85810D4F84001C4F82401C4F8C1
+:1063600048011CE0B4F81401B4F85810401AA4F81D
+:10637000CE00B4F81401A4F85800D4F82401C4F8ED
+:106380004001C4F84801D4F82C01C4F8D800D4F86E
+:106390003001C4F84C01B4F83401A4F8500120468F
+:1063A000BDE8104001F030BB8C0B002040420F00D4
+:1063B000D4000020A224020004360200012806D0E6
+:1063C000022807D0042808D0082808D105E00129B0
+:1063D00007D004E0022904D001E0042901D0002004
+:1063E00070470120704770B5FE4CE06890F864007B
+:1063F0001B2800D0FFDFE068002580F88B5090F864
+:10640000A20100B1FFDFE06890F88C1041B180F884
+:106410008C500188A0F8A61180F8A4510D2108E045
+:106420000188A0F8A61180F8A451012180F8A811D4
+:106430000C2180F8A2110088F9F7DCFCF9F774F957
+:10644000E078F5F75FFAE06880F8645070BD70B5E9
+:10645000E44C2079800725D56078002822D1216975
+:1064600020460126CA78C568921E05F15800162AF2
+:1064700079D2DFE802F00BAF4A566718AF32AF406F
+:106480006A5DAFAFAF5D6E797F8C9DA7012395F8F4
+:106490006620194602F0E9FF002803D1E1680820D0
+:1064A00081F8660070BD087995F863100A2909D152
+:1064B00095F8C210814205D1002085F8630085F867
+:1064C000860070BD95F86500010704D520F008002E
+:1064D00085F8650068E0FFDF70BD95F86500C007CE
+:1064E00000D1FFDF01F031FCE06810F8651F21F0FA
+:1064F0000101017070BD95F86400102800D0FFDF25
+:10650000E068112180F88B6008E095F86400142899
+:1065100000D0FFDFE068152180F88B6080F8641000
+:1065200070BD95F86400152800D0FFDF172005E046
+:1065300095F86400152800D0FFDF1920E16881F884
+:10654000640070BDBDE870404DE7BDE8704001F0EB
+:1065500008BC95F863200123002102F086FF00B9F2
+:10656000FFDF0E200FE035E015F8650F20F0040086
+:10657000287019E095F863200123002102F075FFCF
+:1065800000B9FFDF1C20E16881F8630070BD95F859
+:106590006500C0F30110012800D0FFDFE06810F8AB
+:1065A000651F21F010010170BDE8704001F0CDBB06
+:1065B00095F863200123002102F057FF00B9FFDFA7
+:1065C0001F20E0E795F86400212801D000B1FFDF2B
+:1065D0002220B3E7FFDF70BD8248C16891F86520D3
+:1065E000130702D501214170704742F0080281F87B
+:1065F00065204069C07881F8C10001F09DBB10B5ED
+:10660000784CE1680A88A1F8E62181F8E40191F864
+:10661000510001F03EFBE16881F8E80191F8520079
+:1066200001F037FBE16881F8E901012081F8E2011E
+:10663000002081F89201E078BDE81040F5F762B9DA
+:1066400010B5684C0521E068FFF78BFCE06890F816
+:106650004E10012913D000F5CB7102880A85028EF5
+:106660004A85828E8A85428ECA85C08E0886012020
+:1066700081F82600E078BDE81040F5F743B9022123
+:1066800080F84E1010BD10B5564C01230921E0686A
+:1066900090F86320583002F0E8FE38B1E16800203D
+:1066A00001F87A0F087301F8170C10BD0120607013
+:1066B00010BD70B54B4D2946E868496990F86320D4
+:1066C00009790E2A01D1122903D000241C2A03D0F3
+:1066D00004E0BDE87040D6E7142902D0202A07D094
+:1066E00008E080F8634080F88640BDE87040A7E786
+:1066F000162914D0172918D190F86410222914D122
+:1067000080F8644001F021FBE86880F87B4090F855
+:106710009201002809D00020BDE870406FE780F8A2
+:10672000634080F886401A20F6E770BD2DE9F843F3
+:106730002C4CE06890F86310202909D05FF0000726
+:1067400090F86410222905D07FB300F1630503E0BF
+:106750000127F5E700F1640510F8941F41F00401EA
+:106760000170606903F038FB4FF00108002608B3A0
+:106770003946606901F09FFAE0B16A466169E068F4
+:1067800002F064FF80B3606903F024FBE168A1F8C4
+:106790007C01B1F8581001F070FA30B3E06828219C
+:1067A00080F8731080F8728045E0FFE70220607087
+:1067B000BDE8F883E06890F8920110B11E20FFF761
+:1067C0001EFFC7B16069E168C07881F8C20008FAAD
+:1067D00000F1C1F3006000B9FFDFE0680A2180F832
+:1067E000631003E0F00000200EE019E090F886004E
+:1067F00030B9FFDF04E02E7001F0A7FAFFF7ECFEDE
+:10680000E06880F87B60D3E7E06890F8920110B10F
+:106810000020FFF7F4FE2E70E06880F87B600AE04D
+:10682000E0689DF8001080F87E119DF8011080F856
+:106830007F1124202870E06800F164018D4203D1AB
+:10684000BDE8F84301F081BA80F88660B0E770B522
+:10685000FC4C01230B21E06890F86420583002F0D2
+:1068600004FE202650BBE0680123002190F864203C
+:10687000583002F0FAFD0125F0B1E06890F86300AD
+:1068800024281BD0606903F085FAC8B1E06890F84D
+:10689000941041F0040180F8941061694A7902F083
+:1068A000070280F85020097901F0070180F84F10A5
+:1068B00090F893311BBB06E0657070BD667070BDCB
+:1068C000BDE8704088E690F89231C3B900F15103F9
+:1068D0005E788E4205D11978914202D180F87B50C2
+:1068E0000DE000F5EE710D7002884A8090F84F209F
+:1068F0000A7190F850004871E078F5F703F8E16804
+:10690000212081F86400BDE8704001F015BA70B52F
+:10691000CC48C06890F84E20448EC38E418FB0F8AA
+:106920004050022A23D0A94200D329460186C18FB4
+:10693000B0F84220914200D311468186018FB0F811
+:106940004420914200D311464186818FB0F8462001
+:10695000914200D31146C186418EA14200D90C4616
+:106960004486C18E994200D90B46C38670BD028E03
+:10697000914200D31146C68F828E964200D2324693
+:10698000A94200D329460186B0F842108A4200D3BA
+:106990000A468286002180F84E10CFE770B5A94CD8
+:1069A000E06890F8650010F0300F04D0607840F097
+:1069B0000100607070BD606903F0D0F948B3E5680C
+:1069C000606903F0C7F92887E568606903F0BEF9DC
+:1069D0006887E568606903F0BFF9A887E5686069C2
+:1069E00003F0B6F9E88720794FF00102800703D55C
+:1069F0002069C07814280FD0E06890F863101C2933
+:106A00000AD090F84E1001290DD090F8891151B993
+:106A100006E0BDE87040DFE5E06880F84E2002E067
+:106A200090F8881131B1E06810F8651F41F010014D
+:106A3000017016E090F8651041F0200180F86510B3
+:106A400000F5CB7103888B86038FCB86438F0B8732
+:106A5000838F4B87C08F888781F83220E078F4F7E6
+:106A600051FFBDE8704001F067B970B5754CE06842
+:106A700090F86510890707D590F863200123082155
+:106A8000583002F0F2FCE8B1E06890F88E00800720
+:106A900012D4606903F03EF9E16881F88F00606903
+:106AA00030F8052FA1F890204088A1F8920011F845
+:106AB0008E0F40F002000870E06890F88E10C90751
+:106AC00003D00FE00120607070BD90F86500800772
+:106AD00000D5FFDFE06810F8651F41F0020101708A
+:106AE00001F02AF9E068002590F86310062906D124
+:106AF00080F8635080F88650E078F4F703FFE06890
+:106B000090F87A110429DFD180F87A51E078F4F70F
+:106B1000F9FEE06890F863100029D5D180F886501E
+:106B200070BD70B5474C01230021E06890F86420E7
+:106B3000583002F09AFC012578B9E06890F864209A
+:106B4000122A0AD001230521583002F08EFC10B120
+:106B50000820607070BD657070BDE06890F88C00B2
+:106B600008B901F0E9F8E1686069E03103F0B4F8D0
+:106B7000E1686069B83103F0B9F8E06890F8AA01FB
+:106B800000B1FFDFE1680888A1F8AC0101F5D77119
+:106B9000606903F090F8E168606901F5DB7103F06A
+:106BA00092F8E06880F8AA51142180F86410E07827
+:106BB000BDE87040F4F7A6BE70B5224C0123002159
+:106BC000E06890F86420583002F04FFC0125A8B12D
+:106BD000606903F03CF898B16069E168B0F80D00B5
+:106BE000A1F87C01B1F8581001F047F858B1E068FD
+:106BF000282180F8731080F8725070BD657070BDE8
+:106C0000BDE87040E8E46069E168027981F87E21BE
+:106C1000B0F80520A1F8802103F00CF8E168A1F894
+:106C20008201606903F009F8E168A1F884016069F4
+:106C300003F00AF8E168A1F886010D2081F86400EC
+:106C400070BD0000F00000207CB5F84C2079C00732
+:106C500033D0606901230521C578E06890F864208D
+:106C6000583002F002FC68B1022D0BD00A2D09D079
+:106C70000B2D07D0032D05D0062D03D0607840F0F2
+:106C8000080060706078002817D160690226C57816
+:106C90001DB1012D01D0162D18D1E06890F86300C8
+:106CA00002F0D6FB90B1E16891F863001F280DD087
+:106CB000202803D0162D1AD066707CBD252081F8BF
+:106CC0006300162D70D02A20FFF799FC192D6CD285
+:106CD000DFE805F0262310359292388F4992292C4F
+:106CE00046929292928C6F6C8083869289002020CB
+:106CF00060707CBDE0680123194690F8662058302A
+:106D000002F0B3FB20BB606902F0CEFFE16881F8BE
+:106D10006801072081F8660070E001F0CBF86DE0B3
+:106D2000FFF74AFF6AE001F0A5F867E0E06890F835
+:106D3000641011290BD1122180F864105EE0FFF776
+:106D4000F0FE5BE0E06890F86400172801D0667000
+:106D500054E000F0FAFFE1681B2081F864004DE088
+:106D6000FFF783FE4AE0E06890F86500C00703D0B3
+:106D7000607840F0010022E06946606902F0D1FFCE
+:106D80009DF8000000F02501E06800F8941F9DF8D0
+:106D9000011001F04101417000F0CEFFE06810F8F1
+:106DA000651F41F0010113E01AE025E0FFF76BFCDD
+:106DB00024E0E06890F86500400702D5012060708B
+:106DC0001CE000F0B9FFE06810F8651F41F0040115
+:106DD000017013E0FFF7E2FD10E001F017F80DE09D
+:106DE000FFF735FD0AE0FFF7A1FC07E000F0E5FF43
+:106DF00004E0FFF75EFC01E0FFF7EEFBE168F1E97C
+:106E00002802401C42F10002C1E900027CBD70B5BD
+:106E1000864C207900073FD5607800283CD1E06897
+:106E200090F8C300FF2800D1FFDFE068FF2180F861
+:106E3000C31090F86410192907D1002580F88B50F1
+:106E400000F083FFE06880F86450E06890F8631019
+:106E50001F2918D190F8640002F0FAFA78B1E068BE
+:106E60002521012380F8631090F864200B2158300D
+:106E700002F0FBFA38B92A20FFF7C1FB03E0E16812
+:106E8000202081F86300E06890F86610082903D19B
+:106E90000221217080F8C310D2E66449C96891F8D4
+:106EA0007E210AB991F8512081F8512091F87F2173
+:106EB0000AB991F8522081F85220002802D000200F
+:106EC000FFF79DBB704770B5584C06460D46E0680D
+:106ED00090F8C300FF2800D0FFDFE268002082F8AE
+:106EE000C36015B1A2F88800AAE622F8820F01203B
+:106EF0001071A5E610B54D4C01230021E06890F813
+:106F00006320583002F0B1FA00284AD0E06890F8C7
+:106F1000881111B190F8891129B390F892110029C4
+:106F20003FD090F8931100293BD190F864200123C1
+:106F30000B21583002F099FA002832D1E06890F81D
+:106F4000941190F85100FFF739FA70B3E06890F8A7
+:106F5000951190F85200FFF731FA30B3BDE81040B8
+:106F60000020FFF74CBBB0F88A1120F8401FB0F8A2
+:106F70004C114180B0F84E118180B0F85011C180A1
+:106F8000002180F8481190F8250080060AD500F00D
+:106F9000F5FFE06810F8651F21F0200141F01001B5
+:106FA000017010BD0021142016E0FFE7E068012306
+:106FB000032190F86420583002F057FA0028F0D1ED
+:106FC000E0680123022190F86420583002F04DFA65
+:106FD0000028E6D100211620BDE8104073E710B567
+:106FE00058BB124CE06890F86510CA0702D0012126
+:106FF000092018E08A070AD501210C20FFF763FF5A
+:10700000E06810F88E1F41F0010101702CE04A0782
+:1070100002D50121132006E00A0709D510F8C11F87
+:10702000C17001210720FFF74EFF1DE0F000002096
+:10703000C90602D590F8891109B1002010BD90F859
+:10704000881179B1B0F88A1120F8401FB0F84C11BE
+:107050004180B0F84E118180B0F85011C1800021FC
+:1070600080F8481100F08AFF012010BD70B5F74C80
+:10707000E06890F8C310FF296FD1617800296CD1C6
+:1070800090F8662001231946583002F0EEF90028E6
+:1070900063D1E06890F8661149B10021A0F8801032
+:1070A00090F8671180F8C4100021022041E090F8A8
+:1070B000642001230421583002F0D7F90546FFF778
+:1070C0008EFF002849D1284600F063FF002844D1F4
+:1070D000E0680123002190F86320583002F0C5F9E0
+:1070E00078B1E0680123042190F86420583002F060
+:1070F000BCF930B9E06890F87A0010B10021122094
+:1071000017E0E06890F863200A2A0DD0002D24D102
+:1071100001230021583002F0A8F988B1E06890F806
+:107120007A1104290CD107E010F8C21F81700021E8
+:107130000720BDE87040C6E690F88E00800702D0B8
+:10714000BDE87040D6E600210C20FFF7BCFEE068E9
+:1071500010F88E1F41F00101017071E53EB5054642
+:107160006846FDF728FA00B9FFDF2221009807F0F2
+:107170002BFC0321009802F022FD0098017821F0F9
+:1071800010010170294602F049FDB04CAD1E162DCC
+:107190006FD2DFE805F00B9352949411935D9394B2
+:1071A000162C939393239494306F4988E068009948
+:1071B00090F8C400087182E0E168009891F8C4106A
+:1071C00017E0A26800981178017191884171090A4D
+:1071D00081715188C171090A017270E00321009820
+:1071E00002F012FE0621009802F012FE67E00098FD
+:1071F0000621017163E0E068B0F84410009802F0E5
+:1072000095FDE068B0F84610009802F093FDE06844
+:10721000B0F84010009802F091FDE068B0F842101C
+:10722000009802F08FFD4AE00098E16891F89421FF
+:10723000027191F89511417141E0E1680098E831DF
+:1072400002F058FDE1680098BC3102F05DFD36E0C7
+:107250007F49D1E90001CDE90101E06801A990F879
+:10726000940000F025008DF80400009802F088FDDD
+:1072700025E023E0E068B0F84010009802F05EFDE1
+:10728000E068B0F84210009802F05CFDE068B0F8E9
+:107290004410009802F04AFDE068B0F846100098EB
+:1072A00002F048FD0BE0E16891F892010028009897
+:1072B000BCD111F8512F02714978BCE7FFDFFDF70F
+:1072C0008FF9002800D1FFDF3EBD604810B5C068CF
+:1072D00090F8691041B990F86420012306215830D4
+:1072E00002F0C3F8002800D0012010BD70B5574D42
+:1072F000E86890F8671039B1012905D0022906D055
+:10730000032904D0FFDF9BE4B0F8CC1037E090F8FD
+:107310006610082936D0B0F87C10B0F87E20002422
+:107320008B1C9A4206D3511A891E0C04240C01D0DE
+:10733000641EA4B290F87A1039B190F8632001234A
+:107340000921583002F091F840B3FFF7BEFF78B141
+:10735000E9680020B1F87620B1F874108B1C9A42CD
+:1073600003D3501A801E00D0401EA04200D284B227
+:107370000CB1641EA4B2E868B0F8CC102144A0F8A7
+:10738000C8105DE4B0F87C100329BDD330F8581F55
+:10739000C28C1144491CA0F8701051E40024EAE7A3
+:1073A00070B50C4605464FF4F871204607F02EFBE9
+:1073B000258045E4F8F7F5BC2DE9F0410D46074678
+:1073C0000721F8F7E5FB04003ED094F8960100266B
+:1073D000B8B16E70082028700DE0268484F896619C
+:1073E000D4F89801C5F80200D4F89C01C5F806004D
+:1073F000B4F8A001688194F896010028EDD1AE7030
+:10740000C7E094F8A201B0B394F8A2010C2813D0FD
+:107410000D2801D0FFDFBCE02088F8F7EBFC074621
+:10742000F8F797F978B96E700D20287094F8A401D8
+:10743000A8702088A88018E02088F8F7DBFC0746B1
+:10744000F8F787F930B10020BDE8F081F0000020A6
+:1074500044EF01006E700C20287094F8A401A8700D
+:107460002088A88094F8A801A87184F8A261384601
+:10747000F8F769F98DE0FFE794F8DA0130B16E7042
+:107480000F20287084F8DA616F8082E094F8AA01F6
+:1074900080B16E700920287020886880D4F8AE1101
+:1074A0006960D4F8B211A960B4F8B601A88184F873
+:1074B000AA616EE094F8B80140B16E701720287090
+:1074C000B4F8BA01688084F8B86162E094F8D40135
+:1074D00078B16E701820287006E000BF84F8D4617F
+:1074E000D4F8D601C5F8020094F8D4010028F5D1EB
+:1074F0004FE094F8BC01A8B16E70142028700CE025
+:1075000084F8BC61D4F8BE01C5F80200D4F8C20109
+:10751000C5F80600B4F8C601688194F8BC010028DB
+:10752000EED136E094F8C80180B16E701A20287050
+:1075300084F8C861D4F8CA01C5F80200D4F8CE01B5
+:10754000C5F80600B4F8D201688122E094F8DC01A5
+:1075500040B11B20287084F8DC61D4F8DE01C5F846
+:10756000020016E094F8E20100283FF46DAF6E705F
+:107570001520287009E000BF84F8E261D4F8E40126
+:10758000C5F80200B4F8E801E88094F8E2010028A8
+:10759000F2D1012058E7FE4A9060D1707047002177
+:1075A00080F8631080F8641080F8671090F8D610A7
+:1075B00009B1022100E00321FEF7D3BC2DE9F0411F
+:1075C000F34C0546E06809B1002104E0B0F8DE1094
+:1075D000B0F8CE201144A0F8DE1090F8661139B949
+:1075E00090F8662001231946583001F03EFF30B173
+:1075F000E06830F8801FB0F84E2011440180E06848
+:1076000090F8863033B1B0F88210B0F8CE20114433
+:10761000A0F8821090F98A70002F06DDB0F888106B
+:10762000B0F8CE201144A0F8881001213D2615B1F4
+:1076300080F8736013E02278022A0AD0012A11D060
+:1076400062782AB380F8721012F0140F0DD01E2148
+:1076500013E090F8C420062A3CD016223AE080F8C5
+:10766000721044E090F8682134E0110702D580F8E8
+:1076700073603CE0910603D5232180F8731036E057
+:10768000900700D1FFDFE1682A2081F873002AE02B
+:107690002BB1B0F88220B0F884309A4210D2002F7B
+:1076A00005DDB0F88820B0F884309A4208D2B0F8EE
+:1076B0008030B0F87E20934204D390F866310BB14D
+:1076C000222207E090F867303BB1B0F87C3093425B
+:1076D00009D3082280F87320C1E7B0F87C20062A7D
+:1076E00001D33E22F6E7E06890F8721019B1E06825
+:1076F000BDE8F04153E7BDE8F0410021FEF731BCA1
+:107700002DE9F047A24C81460D46E0680088F8F765
+:1077100083FB060000D1FFDF60782843607020798A
+:107720004FF000058006E06804D5A0F87C5080F892
+:10773000DC5003E030F87C1F491C0180FFF7C5FDD9
+:10774000012740B3A088000506D5E06890F86910CD
+:1077500011B1A0F874501EE0E068B0F87410491C34
+:1077600089B2A0F87410B0F876208A4201D3531A77
+:1077700000E00023B4F806C00CF1050C634501D805
+:1077800080F87A70914206D3A0F8745080F8DA71CC
+:10779000E078F4F7B7F820794FF0020810F0600FA6
+:1077A0000ED0E06890F8671011B1032908D102E00B
+:1077B00080F8677001E080F867800121FEF7D1FB57
+:1077C000E06890F86710012904D1A188C90501D5A6
+:1077D00080F86780B9F1000F78D1A188890502D5BA
+:1077E000A0F8F05003E030F8F01F491C018000F0D1
+:1077F0008CFBFFF73BFC00F05FFE0028E06802D046
+:10780000A0F8D05003E030F8D01F491C018000F0F0
+:1078100056FE38B1E16891F8DC00022807D8401C18
+:1078200081F8DC00E06890F8DC00022804D9E06808
+:1078300020F8D05F45800573E0680123002190F8AF
+:107840006420583001F011FE20B9E06890F864001F
+:107850000C2859D1E0680123002190F863205830AA
+:1078600001F003FE98B3E0680123002190F8662040
+:10787000583001F0FAFD50B3E06890F86710022923
+:1078800042D190F8DC0010BB3046F7F732FDF0B182
+:10789000E16891F8C300FF2836D1B1F8CA00012889
+:1078A00032D981F8D570B1F87E00B1F87C20831E02
+:1078B0009A4201DB012002E0801A401E80B2B1F83A
+:1078C000D020E3889A4203D3012204E028E01BE0A1
+:1078D0009A1A521C92B2904200D91046012801D146
+:1078E00081F8D55091F8612192B1B1F8D220B1F868
+:1078F00062118A4201D3012102E0891A491C89B22E
+:10790000884205D9084603E0E168012081F8D55096
+:10791000E168B1F858201044A1F8CC00FFF7E6FC6C
+:10792000A088C0F340214846FFF748FEE06880F891
+:10793000D650BDE8F047FCF776BE154902464878B8
+:107940008B7818430DD10846C06842B10979090700
+:1079500003D590F86600082803D001207047FEF791
+:1079600007BA0020704770B5094C05460E46A0883E
+:107970002843A080A80703D5E80700D0FFDF2661D1
+:10798000EA074FF000014FF001001DD0666101E0F1
+:10799000F0000020F278062A02D00B2A14D10AE067
+:1079A000E26892F86430172B0ED10023C2E9263327
+:1079B00082F8680008E0E26892F86430112B03D185
+:1079C00082F8681082F88C00AA0718D52269D2784C
+:1079D000052A02D00B2A12D10AE0E16891F864204E
+:1079E000152A0CD10022E1E9282201F8370C06E023
+:1079F000E06890F86420102A01D180F86910280608
+:107A000001D50820A0707EE42DE9F84FFB4C00253D
+:107A10004FF00108A5806570A5704146257061F39F
+:107A20000702E0609246814680F8D6800088F8F729
+:107A3000F3F9070000D1FFDFE0680088FCF7B8FD2C
+:107A4000E0680088FCF7DDFDE068B0F8CA1071B1AD
+:107A500090F8C310FF290FD190F8661191B190F8FA
+:107A6000662001231946583001F0FFFC80B1E06820
+:107A700090F8C300FF2805D0E06890F8C30000BF6D
+:107A8000FFF76CFBE06890F8D71089B1E58018E04B
+:107A9000E068A0F8805090F8671180F8C4100021C9
+:107AA0000220FFF710FAE06880F8D5500220E7E7DF
+:107AB00090F8961119B9018C8288914200D881887A
+:107AC000E180B0F8CE10491E8EB2B0F8D01031442B
+:107AD000A0F8D01090F8D41021B1A0F8D25080F8BE
+:107AE000D45004E0B0F8D2103144A0F8D21030F8ED
+:107AF0007C1F31440180FFF7E8FB20B1E06830F8DB
+:107B0000741F31440180E068B0F8CA10012902D81E
+:107B1000491CA0F8CA100EB180F8DC5090F8D510BE
+:107B2000A1B1B0F8D000E18888420FD23846F7F70B
+:107B3000E0FB58B1E06890F8611139B1B0F8D210AB
+:107B4000B0F86201814201D300F0BCFCE06880F82B
+:107B5000D55090F864100B2901D00C2916D1B0F83B
+:107B60005820B0F87C31D21A12B2002A0EDBD0F8BD
+:107B70007E11816090F882110173022101F000FBF7
+:107B8000E06880F8645080F8968024E0242910D1C1
+:107B9000B0F85810B0F87C21891A09B2002908DB26
+:107BA00090F89201FFF779F9E06800F8645FC57515
+:107BB00011E090F8631024290DD1B0F85810B0F8F6
+:107BC0007C01081A00B2002805DB0120FFF765F9E7
+:107BD000E06880F86350E0680146B0F8CE20583085
+:107BE00001F089FBE06890F8611109B1A0F8D2506A
+:107BF00083480090834B844A4946504600F0A9FBD5
+:107C0000E0680123052190F86420583001F02DFC34
+:107C1000002803D0BDE8F84F00F03DBABDE8F88F6A
+:107C200000F00CBC10B50446B0F882214388B0F8CF
+:107C30008411B0F886019A4205D1A388994202D1F5
+:107C4000E38898420FD02388A4F89A31A4F89C21A5
+:107C5000A4F89E11A4F8A001012084F896016748B9
+:107C6000C078F3F74FFE0121204601F089FA002089
+:107C700004F8640F0320E07010BD401A00B247F60C
+:107C8000FE71884201DC002801DC012070470020E1
+:107C9000704710B5012808D0022808D0042808D061
+:107CA000082806D0FFDF204610BD0124FBE7022490
+:107CB000F9E70324F7E72DE9F0478946044602F087
+:107CC0007FF88046204602F07FF84C4D0446E86875
+:107CD00090F8921121B190F8947190F8956101E0BB
+:107CE00000273E46204601F0A3FCA0B1EA6892F8C6
+:107CF000511081420FD03C420AD0B9F1000F0AD195
+:107D0000012808D1022906D192F85000204202D160
+:107D10000020BDE8F087404601F08AFC50B14046A3
+:107D200001F086FCE96891F85210884202D018EA06
+:107D30000600EED00120ECE730480021C06820F8B2
+:107D4000881F8178491C817070472C4800B5C16834
+:107D500011F88A0F401E40B20870002800DAFFDFD9
+:107D600000BD10B5254CE06890F87A11042916D1B1
+:107D700090F8632001230021583001F076FB00B910
+:107D8000FFDFE06890F88E10890703D4062180F8A1
+:107D9000631004E0002180F8861080F87A11E06812
+:107DA00090F86500800707D5FFF7CFFFE06810F86F
+:107DB000651F21F00201017010BD10B50F4CE06885
+:107DC00010F8941F41F004010170606902F01EF880
+:107DD000162806D1E06890F86300202802D02528F4
+:107DE00005D010BD606902F015F8FEF708FCE168E7
+:107DF000002081F8630081F8860010BDF0000020AB
+:107E0000017701003B7901006779010070B5994C59
+:107E100001230A21E06890F86320583001F025FB27
+:107E200018B3606901F09AFFA8B1E568606901F0D4
+:107E300091FF2887E568606901F088FF6887E56839
+:107E4000606901F089FFA887E568606901F080FF3B
+:107E5000E887FEF75CFDE168002081F8860081F884
+:107E60006300BDE87040FEF7EBBB607840F00100B6
+:107E70006070C8E510B57F4C01230021E06890F8E0
+:107E80006420583001F0F1FA30B1FFF755FFE16896
+:107E9000102081F86400B0E7E0680123052190F824
+:107EA0006420583001F0E1FA08B1082000E0012018
+:107EB0006070A2E770B56F4C01230021E06890F874
+:107EC0006420583001F0D1FA012588B1606901F0D1
+:107ED000E8FEE168A1F87C01B1F85810FFF7CDFE8B
+:107EE00040B1E068282180F8731080F872508AE56C
+:107EF000657088E5E168606901F5BF7101F0CCFE4D
+:107F0000E1680B2081F864007DE510B5FEF77FFF86
+:107F1000FEF79AFE574C2079400708D5607830B9B3
+:107F2000E06890F86600072801D101202070FEF774
+:107F30008EFA2079C00609D5607838B9E06890F8E3
+:107F400064100B2902D10C2180F86410A07800077E
+:107F50000ED5E0680123052190F86420583001F027
+:107F600084FA30B108206070E168002081F8A20135
+:107F700043E7BDE81040002000F0F4BA10B5FEF76A
+:107F8000C6FCFEF75DFB0121BDE810401520FEF7A1
+:107F90009ABF10B5374CE16891F8642040B3102ABD
+:107FA00006D0142A07D0152A19D01B2A2BD119E084
+:107FB00001210B2018E0FAF777FF0C2816D3E068B0
+:107FC0000821E830FAF774FF28B1E0680421BC30DA
+:107FD000FAF76EFF00B9FFDF0121042004E000F092
+:107FE00017F803E001210620FEF76DFF012004E7EA
+:107FF000212A08D191F87B0038B991F8920110B18B
+:1080000091F8930108B10020F7E601211720EBE772
+:1080100070B5184C0025E06890F8691101290AD064
+:10802000022925D190F88C10A9B1062180F8C4103E
+:108030000121022017E090F8A211002918D100F1C7
+:10804000A80300F1E001002200F5B57001F0BAF9D3
+:108050000121052007E090F89400400701D5112088
+:1080600000E00D200121FEF72EFFE06880F8695145
+:10807000C9E40000F0000020F8480078002800D093
+:108080000C20704710B50446FFF7F6FF00B1FFDF84
+:10809000F248447210BDF14901200872704770B572
+:1080A000054600F02CFC044600F025FC65B1E28E8C
+:1080B000618E94F85230407C00F00EFC94F852101F
+:1080C000BDE87040FBF74FBCFF2094F85110F7E774
+:1080D0002DE9F041074600F012FCE04E0546E0486D
+:1080E000706200F008FC04460120FFF7D8FF607CB6
+:1080F00068B304F15001DB4891E80E1000F1080864
+:1081000088E80E10216EC0F82110616EC0F82510AD
+:10811000FE38FBF71FFF06F13400007800F0C0FBCB
+:1081200080F00101CF4808300176D4E91212C0E98D
+:108130000412A0F58372716AFBF713FB95F85200E5
+:1081400000F0C0FB01460120FBF719FB04E0706A58
+:10815000FBF700FFFBF737FB4FB9012295F85230D0
+:1081600096211046FBF720FE9620FBF718FF95F8A6
+:108170002C00012801D1FBF774FF02203070BDE80C
+:10818000F0812DE9FC47824600F0B5FB044600F083
+:10819000B6FB0546B14F6079B04E20374FF001096C
+:1081A00058B3012863D0022865D0032872D0FFDFBE
+:1081B000306AB0460826027822F008020270A379DD
+:1081C00006EAC3031A4322F004020270E37904268C
+:1081D00006EA83031A4322F0100202706779D8F886
+:1081E0002C00F7F796F80646FCF730FA022F58D025
+:1081F000012F56D0032F57D059E000F089FB0146DC
+:10820000A88E00F052FB298E814200D20846ADF8BC
+:108210000400A5F848003846FCF7F6F930B14FF4F1
+:108220008060316A00F06EFB03201EE06A4601A9FF
+:10823000F06A00F033FB306210B194F8331029B1CA
+:108240003846FCF7B2F984F80590B1E79DF80010C4
+:1082500029B9002101808170012101F0B0FCBDF835
+:108260000410306A01F0D8FD02206071A0E73846A2
+:10827000FCF79BF99CE7B5F84800ADF804006A46A6
+:1082800001A9F06A00F00AFB3062002890D1FFDFFC
+:108290008EE7FFE73846FCF7B7F9002888D1FFDF03
+:1082A00086E7B04301D002E00EB1012100E00021D9
+:1082B000D8F820004646027842EA01110170217C7C
+:1082C00071B3617901292BD004F1500165488EC941
+:1082D00000F1080888E88E00216EC0F82110616E58
+:1082E000C0F82510FE38FBF735FE5C4834300078C6
+:1082F00000F0D6FA01465B4808300176D4E9101246
+:10830000C0E90412A0F58371326AFBF72AFA95F8E6
+:10831000510000F0D7FA01460020FBF730FA03E0E5
+:10832000FBF718FEFBF74FFABAF1000F06D195F8EC
+:108330005130012296210020FBF736FD86F805908A
+:10834000316A0A88F2818978317486F80090BDE834
+:10835000FC872DE9F047414C8046089F20781D4658
+:108360001646894610B90EB105B107B9FFDFE761BE
+:10837000C4E905650020C4E90D892072E07120710F
+:10838000E0706071A071A070A08100F0B4FA0646A0
+:1083900000F0B5FA05460088F7F73EFDE062288850
+:1083A000F7F728FD2063FBF7FBFA05F11200FBF756
+:1083B000B9FD05F10E00FBF797FB284C343420780B
+:1083C00000F06EFA08B1032000E00120FBF7BFFDCA
+:1083D000707EFBF793FBFBF7B4FD207808B3EA8EC1
+:1083E000698E95F85230707C00F076FA95F852500C
+:1083F0002946FBF7B8FA2078B8B1606890F86001B8
+:1084000008B1FBF724FB2A4600210120FBF778FC8A
+:108410006068D0F8D800FBF7A1FDBDE8F047012067
+:1084200056E6FF2095F85150E2E700212A4608461B
+:10843000FBF766FCBDE8F0470120A2E6074800B55F
+:10844000343001783438007819B1022800D0FFDFC9
+:1084500000BD0128FCD0FFDF00BD000008010020A6
+:10846000F80B0020F80D002010B500F048FA044683
+:10847000FBF7C6FDFBF7B7FDFBF726FDFBF758FD45
+:10848000FBF7A1F994F82C00012801D1FBF7DFFDDF
+:10849000FE4CA08900F076FAE269E179E078904735
+:1084A0000020207010BDF94810B50078022800D0D7
+:1084B000FFDFBDE81040D7E7F44840797047F34844
+:1084C00000797047F1490120887170472DE9F0412A
+:1084D000EE4C054639B9012D05D12079401CC0B2BA
+:1084E000207101282CD8A1692846884740B3A0797B
+:1084F000E74E30B1012D04D1707810B93078C00644
+:108500001ED5E079E0B9E14F3437387800F0C8F98A
+:1085100008B1012D04D0387800F0C2F9284311D1F8
+:10852000DA480E300078C10602D43178C90607D582
+:10853000A17829B9A16A29B9618919B1C00601D404
+:1085400001201CE600201AE610B5D04CA06A00B944
+:10855000FFDF6289D4E90910D21C06F0B6F9A06ADF
+:10856000606210BD2DE9F047064600F0C4F9C74D22
+:108570000446686A47780EB1012E03D1296B05F0D5
+:10858000C3FE687068784FF000084FF0010940B1F1
+:10859000012818D0022831D0032846D0FFDFBDE8DB
+:1085A000F087012E31D0FFF7CFFF39460122286B2B
+:1085B000F6F720FF27E000BF84F8078030E000BF17
+:1085C00084F807902CE0012E08D0FFF7BDFF394654
+:1085D0000022286BF6F70EFF022EE0D0D4E912013C
+:1085E000401C41F10001C4E91201E079012802D0E8
+:1085F00084F80790D3E784F80780D0E7012E04D0F1
+:10860000286BF7F77BF8022EC9D0D4E91201401C81
+:1086100041F10001C4E91201E0790128D0D1CBE792
+:10862000687ABDE8F047F3F76DB9012EB7D0286B33
+:10863000F7F764F8F4E72DE9F041074600F05BF93D
+:108640000446924800260125416A0A7802F0030296
+:10865000012A1FD0022A1DD0032A03D0C17941F07C
+:1086600004012EE00746084601F0C2FA68B1A57081
+:10867000B88940F40060B8810120796A00F042F9BD
+:1086800021E0E6717BE5E57179E5F87940F01000CD
+:10869000F87174E54978B1B1828942F4006282814F
+:1086A000826A002AEED0FB2908D8007A20B1BDE802
+:1086B000F041802000F066B93D7060E5C17941F07D
+:1086C0001001C1715BE5E0790128DCD1D9E770B513
+:1086D00000F011F96D4D04462878012800D0FFDF25
+:1086E000A078012650B10020A0700146042000F0BF
+:1086F00009F966483430007800B12671286A00789C
+:10870000C043800706D1E07820B9E6700220296ACC
+:1087100000F0F8F801210020FFF7D8FE10B1BDE805
+:108720007040A1E6BDE870400020D1E42DE9F84397
+:10873000814600F0E0F8554C002605468DF80060B3
+:108740002078022800D0FFDFA08940F40070A081CB
+:108750000020FFF7A4FC687CB9F1000F5DD0FBF7A7
+:1087600055F8FBF745F8012760B9687C50B1606A9D
+:10877000417839B10078E979C0F3C000884201D16D
+:10878000E7705DE0606A4178618121B1206BF6F7A6
+:10879000EBFDA06200E0A662A08940F02000A0816D
+:1087A000267100F0A8F8804600F0A9F8064690F877
+:1087B0002C00012816D1FBF74AFC4146304600F058
+:1087C0001FFE78B1314834300178406811B300F5AC
+:1087D000EA703188418098F8081001710770607A5A
+:1087E000F3F790F8606AA9790078C0F380008842B6
+:1087F00005D000F0CCF8A08940F48070A081606AB8
+:10880000E9790078C0F3C00088420DD16846FFF7CF
+:1088100012FF09E000F58670DBE708B1FBF723F8EB
+:10882000A08940F04000A08149460120FFF74EFE9C
+:1088300000289DF8000007D010B10020FFF792FE3D
+:10884000FFF712FEBDE8F88310B10120FFF78AFEA2
+:108850000020FFF796FC9DF800000028F2D00220CF
+:10886000FFF780FEEEE770B50C46054600F047F8CE
+:10887000064990F8512034312846097800292146CC
+:1088800003D0BDE87040FDF7B0BB03E00801002055
+:10889000F80B0020BDE8704002F0FBBFF6F774BC97
+:1088A00008B10020704701207047022905D06FF001
+:1088B0000D0101EBD00080B270476FF00E0101EBAB
+:1088C0009000F8E700B5012802D0022802D0FFDFAF
+:1088D0000020C1E50120BFE570B50C4605461946EC
+:1088E0001046FFF7E2FF844200D22046002D01D05F
+:1088F000001D80B270BD56484068583070475448DB
+:1089000040687047524A0123343A937052691047C5
+:1089100010B5FFF7F4FF0446FFF7EDFF0146C27AFA
+:108920004B48242A09D0097B242906D01F2A0DD0C0
+:10893000202A0BD0222911D021E00178406811B102
+:1089400090F87E1115E090F8E81012E0222905D089
+:108950000178A1B1406890F8940107E0017871B105
+:10896000416891F8940191F85010084000F04FF8D8
+:10897000014694F85100BDE8104000F052B894F858
+:10898000510010BD324A0021343A5269104770B587
+:10899000FFF7B1FF04464079002835D0022810D1F6
+:1089A0002B4D343DE86AF6F71BFC00B9FFDFD4E934
+:1089B0001001401C41F10001C4E91001687AF2F78E
+:1089C000A1FF234800256571007830B1207920B1DE
+:1089D000257100211020FFF795FFE07878B1E57050
+:1089E000FBF721FE00B9FFDF00210820FFF78AFF17
+:1089F000D4E91001401C41F10001C4E91001A07943
+:108A0000012802D00120A07170BDA57170BDC10701
+:108A100001D001207047800701D502207047002057
+:108A2000704700B500290CD008280BD0042809D0C5
+:108A3000082907D0042905D0012806D0012904D02F
+:108A4000022009E5FFDF082006E5012004E500001B
+:108A50003C0100202DE9F0410F4606460024FB4D65
+:108A60000FE000BF05EBC40090F84311B14206D1FE
+:108A70000622394600F5A27005F0FBFE38B1641CF1
+:108A8000E4B22878A042EDD81020BDE8F08120465D
+:108A9000FBE770B50546ED480478621C027000EBF8
+:108AA000C4060868C6F844018888A6F84801102C56
+:108AB00000D3FFDF86F84351204670BD70B50546F0
+:108AC00000F060FA10281CD1E04C2078401EC0B2A3
+:108AD0002070A84215D004EBC00204EBC50102F5DA
+:108AE0008070D2F84321C1F84321D0F84700C1F883
+:108AF0004701207800F046FA102802D0204480F880
+:108B0000035170BD2DE9F047D04C0646A719A07857
+:108B1000401EC5B2A57097F80381AE422AD004EB7F
+:108B2000051A04EB06190AF1030109F103001022EA
+:108B300005F0CBFE0AF1830109F18300102205F054
+:108B4000C4FE601905EB450290F8031187F8031184
+:108B500006EB460104EB420204EB4101D2F80B3173
+:108B6000C1F80B31B2F80F21A1F80F2190F83B01A9
+:108B700087F83B0104EBC80090F84A01C00703D115
+:108B80004046BDE8F04799E7BDE8F08710B540F2F0
+:108B9000C311AE4805F018FFFF220821AC4805F0CC
+:108BA0000BFFAB4800210A3841704FF461714180DE
+:108BB00010BD70B50D460646FFF74CFFA34C1028BC
+:108BC00007D004EBC00191F84A11C90701D0012078
+:108BD00070BD617808290ED2102803D1294630468D
+:108BE000FFF757FF617804EBC000491C6170012159
+:108BF00080F84A11EBE7002070BD70B5934D2878DE
+:108C0000401E44B20BE000BF05EBC40090F84A01DF
+:108C1000C00702D0E0B200F0C6F9641E64B2002CB6
+:108C2000F2DA70BD2DE9F047984691460C460746AA
+:108C3000FFF710FF0546102805D000F0A3F9102813
+:108C400001D01220A0E7814EB07808281ED2102D46
+:108C500004D121463846FFF71CFF0546B4781022A0
+:108C6000601CB07006EB0417F81C494600F09DFB31
+:108C700007F183001022414600F097FB30190021D4
+:108C800080F8035180F83B1108467DE707207BE719
+:108C90006E4810B58078401E44B204E0E0B2FFF7A1
+:108CA00031FF641E64B2002CF8DA10BD68490A393D
+:108CB0004870704766480A384078704740B14AF2B9
+:108CC000B811884204D862490A39488001207047A7
+:108CD000002070475E480A384088704710B5FFF79B
+:108CE000B9FE102803D000F04DF9102800D108205B
+:108CF00010BD56498A78824203D901EB00108330B7
+:108D000070470020704751498A78824203D901EBAD
+:108D10000010C01C7047002070474C4B10B59C7869
+:108D200084420FD9184490F8030103EBC00090F877
+:108D300043310B70D0F844111160B0F848019080B5
+:108D4000012010BD002010BD404A114491F80321BC
+:108D50003F490A390A7002684A6080880881704772
+:108D600010B5FAF7C2FC18B1BDE81040FAF7CDBC57
+:108D7000FF2010BD35498A78824209D9084490F80D
+:108D8000030101EBC00090F84A0100F001007047B8
+:108D9000002070472DE9F04700252F462B4E2AE092
+:108DA00006EBC70404F5A271884694F84301FFF767
+:108DB00095FF8146FFF7A7FF94F84A11C90718D01D
+:108DC00060B1B9F1080F05D206EB090191F83B112A
+:108DD000012903D0102100F0D9FA50B11C492846CE
+:108DE00001F805906D1C94F843214146EDB2FAF765
+:108DF00047FE7F1CFFB23078B842D1D8C4E62DE9D7
+:108E0000F04100252C46114E1CE03319204693F802
+:108E10000371FFF778FF93F83B11012903D010216C
+:108E200000F0B4FA60B10A4806EBC7014455284681
+:108E300091F843216D1CEDB201F5A271FAF720FE05
+:108E4000641CE4B2B078A042DFD81EE6280E0020F1
+:108E50004E01002010B5FAF73FFE20B1FAF740FEB0
+:108E60005649085C10BD082010BD0246534810B595
+:108E70000A38407840B15248817829B1C01CD21CD0
+:108E8000FAF7DFFB012010BD002010BD4C4A01EBBA
+:108E9000410102EB41010268C1F80B218088A1F871
+:108EA0000F0170472DE9F04180460024444D19E040
+:108EB0002046FFF71EFF060012D0102100F066FAD0
+:108EC00070B904EB440005EB400707F20B1742466C
+:108ED00039463046FBF73BFC38462146FFF7D6FFC4
+:108EE000641CE4B2A878A042E2D8CEE50146102284
+:108EF000344800F05ABA3348704770B5304D0446D4
+:108F0000A878A04206D905EB04101021833000F0A8
+:108F10003DFA08B1002070BD04EB440005EB4000B1
+:108F200000F20B1070BD26498A78824203D90844AA
+:108F300090F83B0108B100207047012070472DE9EF
+:108F4000F0410E46074615460621304600F01EFA4F
+:108F50001B4C58B1002004E02118401C81F83B5103
+:108F6000C0B2A1788142F7D801208EE5314638465B
+:108F7000FFF7B4FE082803D0204480F83B51F3E704
+:108F8000002082E50E4910B5034600208A7806E0ED
+:108F90000C1894F803419C4204D0401CC0B2824299
+:108FA000F6D8102010BD06494A78521E4A7001EBCF
+:108FB000C001002281F84A2180E500004E01002016
+:108FC000280E0020EB0F002000F00101400800F007
+:108FD00001021144400800F001021144400800F071
+:108FE00001021144400800F001021144400800F061
+:108FF00001021144400800F00102114401EB50004D
+:10900000704710B50446702105F000FD0020A071E6
+:10901000E071E0722073A073E07360712076607677
+:10902000212084F83C00412084F83D00FF2084F892
+:109030006B0010BD002180F82C100184012280F803
+:1090400051201B2180F85220018741874FF4A471E1
+:10905000C18781871B2303864386C1868186A0F84A
+:109060004030A0F84430A0F84610A0F84210A0F814
+:109070004A30A0F84C30A0F848304273704710B521
+:1090800000248484048DDB004C43B3FBF2F394FB97
+:10909000F2F45B1C04859BB203FB02F4C384B4F5B9
+:1090A000C84F01DD5B1EC3844FF4FA43B3FBF2F3F8
+:1090B0005B1C8385038C02EBC3035B1EB3FBF2F3E3
+:1090C000C383838B4B43B3FBF2F1818310BD70B537
+:1090D0000546087B0E4600F01F0008730020E87567
+:1090E00004463019007AFFF76FFF2919641C887451
+:1090F000E97DE4B20844E875052CF2D3C0B2252816
+:1091000000D9FFDF70BD00238383028401EBC2021C
+:10911000521EB2FBF1F1C1837047F0B56FF01F0230
+:10912000010C02EA90261F25A1F5AA4054380AD066
+:10913000401E08D0A1F52850AA3804D0B0F5004050
+:1091400001D0012000E00020002213464FEA020473
+:1091500082EA0107FF431F437F1C0FD006F001077F
+:10916000520842EAC73205F001075B0876086D082D
+:10917000641C43EAC733162CEAD3F0BD0020F0BDCF
+:1091800070B50025044600F15806032909D0D1B373
+:1091900001295DD0022935D101463046BDE8704035
+:1091A00095E73046FFF72DFF2046FFF743FF4FF4CA
+:1091B00048606080A4F8C850A4F8CA50A4F8CC5005
+:1091C000A4F8CE50A4F8D050A4F8D25084F8D550CA
+:1091D00084F8D750A4F8DE5084F8DC50A4F8F0509E
+:1091E000A4F8F25084F8885184F8895184F8925197
+:1091F00084F8935184F8615184F8665184F8695178
+:1092000084F87A5170BDFFE7A4F8DE5084F8D65098
+:109210006188FE480A460844B0FBF1F0A4F87600E5
+:109220004BF68030A4F87800E3883046FFF727FF3C
+:1092300021463046FFF74BFFD4F80E00FFF76DFFD5
+:1092400010B184F86051DDE7012084F86001D9E7AE
+:10925000A4F8DE504188B4F88631B4F88221304653
+:10926000BDE870400BE770B5044600F158050329CE
+:1092700009D029B3012935D00229C3D10146284696
+:10928000BDE8704023E72846FFF7BBFE2046FFF706
+:10929000D1FE0020A4F8D000202184F8D21084F858
+:1092A000C800C4F8CC0084F8FC0084F8FD0084F801
+:1092B000060184F8070184F8EC0084F8F800A1E7BF
+:1092C0006188D2480A460844B0FBF1F0A4F8760061
+:1092D0004BF68030A4F87800E3882846FFF7CFFEED
+:1092E0002146CCE7D4F8F0006188C389428928463A
+:1092F000BDE87040C3E6C37D0BB1252B01D9122018
+:1093000070472AB14B7B2BB1012B05D01F20704732
+:109310000020704700F09FBA00F045BABC4A0168CF
+:1093200012681140BA4A121D126811430160704759
+:1093300070B50025B749B64C01220B785B1CDBB237
+:109340000B70202B00D10D700E78236802FA06F600
+:109350003342F2D0097803688A405340036051E7F2
+:1093600070B50646007940090ED100252C46305DC7
+:10937000FFF72AFE641C2844E4B2C5B2052CF6D3DC
+:10938000012D01D901203DE700203BE710B5002366
+:109390001A4603E0845C2343521CD2B28A42F9D3BA
+:1093A0000BB1002010BD012010BD30B5134606E002
+:1093B000CC18D51A14F8014C5B1E4455DBB2002BB7
+:1093C000F6D130BD70B50E468CB0144601461D4630
+:1093D00010226846FFF7E9FF1022314604A8FFF784
+:1093E000E4FF684604F014FA08A94FF0100228467A
+:1093F0001CB1FFF7DAFF0CB004E705F066FAFAE7F4
+:1094000038B505460C466846FAF736FE00281ED0E9
+:109410009DF90000207294F909100022411A00D52C
+:10942000494295F82D308B4210DCFF2B0ED0A17AEB
+:10943000491CC9B2A17295F82E30994202D8617ABE
+:109440007F2903D160720020A0720122104638BD2E
+:109450000C2806D00B2804D00D2802D01F3806286F
+:1094600001D8012070470020704730B5A2F10F04E9
+:109470000C2952D2DFE801F006080D1215182C3421
+:10948000394B404782B348E0072A48D0082A46D0E3
+:1094900043E00C2A43D00B2A41D03EE00D2A3ED0B7
+:1094A0003BE00C2C3BD938E01BB1103A0B2A36D9E3
+:1094B00033E0122A33D0112A31D090F8340020B191
+:1094C000122A2AD31A2A2AD927E0162AFAD224E005
+:1094D000032C24D990F83400F8B11B2A1FD91CE0C2
+:1094E000DBB9042A1BD018E019E013B1062A16D004
+:1094F00013E0012A13D010E01C2A10D01D2A0ED030
+:109500001E2A0CD009E01F3A062A08D905E013B13B
+:109510000E2A04D001E0052A01D0002030BD012030
+:1095200030BD2DE9F0410C46054640F233778668A0
+:1095300006E000BFF8F75CFC3946F8F762F9A8606E
+:109540002846F8F722FE0028F4D094B13046A968E6
+:10955000F9F75CF900280CDD2044401EB0FBF4F75D
+:1095600007FB04F13046F8F74CF9A8603846BDE82F
+:10957000F0810020FBE770B5044690420AD2101B30
+:10958000642800D2642025188D4204D8F9F771F9B7
+:1095900008B1284636E6204634E670B505460C4646
+:1095A000088E91F8511000F0E0F8A18E814200D2AF
+:1095B00008460646608E94F8521000F0D6F8E18E08
+:1095C000814200D20846024635B100233146BDE84B
+:1095D0007040012000F07FB90123F7E770B5044621
+:1095E000008913460D460246A188012000F073F958
+:1095F000696A81421BD2401A401CA1884008091A9E
+:109600008AB2A2802189081A208105E0FFDB0500CB
+:109610004CEF01005601002015F8511F104600F0D4
+:10962000ADF860806978208900F0A8F8E080E9E56D
+:10963000C10701D001207047810701D50220704782
+:10964000400701D508207047002070472DE9F04100
+:109650000546164688460124084600F0B1FB074639
+:10966000404600F0B1FB0346FFF7E2FF02463846F2
+:10967000FFF7DEFF52EA000100D10024990700D174
+:109680000022B90700D1002095F85110914200D175
+:109690000022327095F85210814200D10020707083
+:1096A00072B968B9404600F095FBB5F85810401AF9
+:1096B00000B247F6FE71884201DC002800DC00247D
+:1096C000204654E7012802D0022800D0002070472D
+:1096D000F8B5CFB20646C1F307242146384600F05C
+:1096E0000AF9F5B2C6F3072620B93146284600F03C
+:1096F00002F940B1274035403D40444665F3070438
+:1097000065F30F2406E02540444665F307043E4018
+:1097100066F30F24E0B200F03EF88DF80000C4F3C9
+:10972000072000F038F88DF80100BDF80000F8BD02
+:1097300030B52A242325162A05D10C2807D00D2858
+:1097400005D01F2805D071B1162A0CD104E01C7079
+:1097500000E01D70012030BD08780128F7D00028F6
+:10976000F5D01628F5D0002030BD022903D0C00066
+:10977000703080B2704780003C30FAE7022905D093
+:109780006FF00D0101EBD00080B270476FF00E0159
+:1097900001EB9000F8E7810701D502207047C00770
+:1097A000FCD001207047F0B50C7C8B7BCD7B5C40FE
+:1097B0004B7C02886B4044EA0323C67D5A40002458
+:1097C000D5B2120A95FAA5F592FAA2F22D0E120E52
+:1097D00045EA022202EB0212641C1A44E4B292B27D
+:1097E000032CEDD35A402523B2FBF3F403FB1423DF
+:1097F00001EBD30503762F7A03F00704012505FA60
+:1098000004F4274201D043761BE05643320C521C2D
+:10981000D2B20023C418A47C944214D30024CE18DE
+:1098200096F8086005FA04F73E4201D0521ED2B203
+:1098300022B1641CE4B2082CF4D306E004EBC301AB
+:1098400041760020F0BD121BD2B25B1CDBB2052BAF
+:10985000E0D31F20F0BDF0B5037E0C7E012504FB94
+:1098600002322523B2FBF3F403FB142201EBD204F2
+:10987000027602F00703247A05FA03F31C4201D0B2
+:1098800042761EE0C37DB2FBF3F403FB1422521CAC
+:10989000D2B20023C418A47C944214D30024CE185E
+:1098A00096F8086005FA04F73E4201D0521ED2B283
+:1098B00022B1641CE4B2082CF4D306E004EBC3012B
+:1098C00041760020F0BD121BD2B25B1CDBB2052B2F
+:1098D000E0D31F20F0BD00280CD0114441434D229D
+:1098E00010FB02F001EB80009C380BB1042100E07A
+:1098F000002108447047012804D0022805D004281C
+:1099000006D007E0012907D004E0022904D001E0D5
+:10991000042901D00020704701207047282105F05C
+:1099200053B830B50546007801F00F0220F00F0063
+:109930001043287007290BD2DFE801F00406040663
+:1099400004080400062405E00C2403E0222401E0BE
+:109950000024FFDF687820F03F002043687030BDAE
+:10996000007800F00F0070470A6840F8032F8988DC
+:109970008180704750F8032F0A6080888880704784
+:109980000A6840F8092F89888180704750F8092FAC
+:109990000A608088888070470278402322F0400265
+:1099A00003EA81110A43027070470078C0F3801007
+:1099B0007047027822F0800242EAC11202707047BA
+:1099C0000078C0097047D0F80320C1F80920B0F82A
+:1099D0000720A1F80D200A7822F080020A70007892
+:1099E000800942EAC0100870704770B515460E46EF
+:1099F00004461F2A00D9FFDF2A46314604F1090038
+:109A000004F063FF6078AD1D20F03F0005F03F01DA
+:109A10000843607070BD70B5054640780E4600F092
+:109A20003F04062C00D2FFDFA41FE4B21F2C00D994
+:109A30001F24224605F10901304604F046FF204666
+:109A400070BD70B515460E4604461F2A00D9FFDFCB
+:109A50002A46314604F1090004F037FF6078AD1D55
+:109A600020F03F0005F03F010843607070BD70B505
+:109A7000044640780E4600F03F05062D00D2FFDF79
+:109A8000AD1FEDB21F2D00D9FFDF2A4604F10901F9
+:109A9000304604F01AFF284670BD0968C0F80F1060
+:109AA00070470A88A0F8132089784175704710F82C
+:109AB000242F01F01F0122F01F020A430270704799
+:109AC000072900D9072110F8242F22F0E00242EAEA
+:109AD0004112027070470A6840F81F2F097901711E
+:109AE00070474178007801F03F0110F00F0005D079
+:109AF000012807D0022801D0062805D1891F1F2977
+:109B000004D901E00C2901D00020704701207047E2
+:109B10004178007801F03F0100F00F00042805D1E2
+:109B2000062903D3252901D801207047002070475A
+:109B300030B5017801F00F01032922D0052925D184
+:109B40004578B0F81910B0F81B40B0F81730827D96
+:109B500005F03F05222D19D1062917D34FF448658A
+:109B6000A94213D8B4F5FA7F10D27AB1082A0DD8D9
+:109B70008A420BD28B4209D8B0F81D00A84207D9FF
+:109B800004E0407800F03F000C2801D0002030BDF8
+:109B9000012030BD00B5027801F0030322F003027A
+:109BA0001A43027000224270012904D0022902D017
+:109BB000032901D0FFDF00BD0121417000BD00B5C8
+:109BC000027801F0030322F003021A43027000221C
+:109BD0004270012904D0022902D0032901D0FFDFFD
+:109BE00000BD0121417000BD007800F00300704706
+:109BF000417889B1C0780E2805D00F2803D01028ED
+:109C000001D0192802D3FB2904D905E0864A105C4B
+:109C1000884201D1012070470020704730B50546C9
+:109C2000C170192902D28048445C01E00024FFDFA2
+:109C30006C7030BDB0F807007047B0F8090070478D
+:109C4000C172090A01737047B0F80B00704770B514
+:109C5000B0F80720B0F80940B0F805300179951F39
+:109C600040F67A46B54210D8B4F5FA7F0DD261B10C
+:109C700008290AD8914208D2934206D8B0F80B00BE
+:109C8000B0F5486F01D8012070BD002070BD0A6892
+:109C9000426009790172704742680A60007A08716F
+:109CA0007047B0F809007047007970470A68426051
+:109CB00049688160704742680A6080684860704700
+:109CC0000988818170478089088070470A6840F858
+:109CD0000E2F49684160704750F80E2F0A604068A7
+:109CE000486070470968C0F816107047D0F8160031
+:109CF000086070470A68426049688160704742683E
+:109D00000A608068486070470968C1607047C06831
+:109D100008607047007970470A684260496881604E
+:109D2000704742680A608068486070470171090A9C
+:109D3000417170478171090AC17170470172090A46
+:109D4000417270478172090AC172704780887047FA
+:109D5000C0887047008970474089704701891B2976
+:109D60000CD341894FF4A472914207D381881B29F7
+:109D700004D3C088904201D301207047002070476F
+:109D80000A68426049688160704742680A6080687A
+:109D9000486070470179490704D04079400701D0F5
+:109DA00001207047002070470179490704D04079AD
+:109DB000400701D0012070470020704701717047B3
+:109DC0000079704741717047407970478171090A85
+:109DD000C1717047C08870470CB514A2D2E9001257
+:109DE000CDE900120179407901F0070269461DF8BA
+:109DF0000220012A04D800F00700085C012801D9DC
+:109E000000200CBD01200CBD017170470079704726
+:109E1000417170474079704730B50C460546FB29C3
+:109E200000D9FFDF6C7030BD54EF0100000101026A
+:109E3000010202032DE9F041FF4E04460020717833
+:109E4000DFF8F8830127054611B1012905D009E0A3
+:109E500098F8531031B1777003E098F8281009B1E1
+:109E60007570012071782B2211FB02F1414491F8A9
+:109E70002820024311D02A22A01C293104F025FDFC
+:109E8000657004202070A77070782B2110FB01F101
+:109E900001EB080080F8285040E098F87E0060B19F
+:109EA000E64911227F31A01C04F00FFD65701220DD
+:109EB0002070A77088F87E5030E098F822000128C2
+:109EC00006D098F8000001280CD00020BDE8F081F1
+:109ED000657006202070D8F82400C4F8020088F8C5
+:109EE00022501BE0657013202070202208F102012F
+:109EF000A01C04F0EAFCA57188F80050B8F8040032
+:109F0000A8F82400D8F89C00417B88F8261088F82F
+:109F100022700088F5F76EFFF5F715FC0120D5E7F4
+:109F2000C648017809B1808870474FF6FF707047C6
+:109F300070B50446C14890F8AE10002919D090F8C9
+:109F4000AC10002915D0BD4990F8910092310D4612
+:109F500000F05FFE38B1FEF7CEFF22462946BDE88D
+:109F60007040FAF7F4BB21462846BDE87040FAF786
+:109F700021BC70BD70B50646B0482B2290F8AF00EA
+:109F800011FB02F1AD4A8D1805F12C0418B1F9F757
+:109F90009AFB01280AD03046FFF707FD85F82B0011
+:109FA00021463046BDE87040FFF7E4BCF9F7ADFB51
+:109FB000224605F12B01FEF7B0FE00B9FFDF15F8D0
+:109FC0002B0F40F00200287070BD70B59B4C064608
+:109FD00094F82800002832D13046FFF7C1FC014632
+:109FE00000200125072916D2DFE801F00B0408152F
+:109FF00015150A0084F82A5001210DE0032000E025
+:10A0000002208E4984F82A0033313046FFF703FDE1
+:10A0100084F8320004E0002184F8320000290ED0D8
+:10A0200000213046FFF7A6FF8448523000F011FEB1
+:10A0300084F82850BDE87040032001F0F0BB70BDEB
+:10A0400010B5002001F019FB98B1F9F77AFF012251
+:10A0500000211046F9F7FAFD7848BC30F9F77AFF8D
+:10A06000764CD4F8B400F9F779FF00F0DDFD40B983
+:10A0700003E0BDE8104000F04EBE94F8A0000228B6
+:10A0800003D101210020FAF7B2F8F9F7EAFF94F8BA
+:10A09000AF0018B1F9F7E8FAF9F7BFFF032084F829
+:10A0A000B20010BD70B5654C054694F89110FFF7ED
+:10A0B00073FC04F192012846FFF756FC94F8AD00BA
+:10A0C000002818D000F0B0FD28B194F89B0010B122
+:10A0D00094F8A30001E094F8B000FEF70EFF04002E
+:10A0E00009D001212846FFF757FC21462846BDE844
+:10A0F0007040FFF739BC70BD10B5012001F0BDFA0A
+:10A10000B0B14E49E431A1F12800FFF75CFC4B48A7
+:10A11000E430FFF7C7FF4948E430F9F71BFF01219E
+:10A120000846FAF764F84549052081F8B20010BDE9
+:10A13000BDE8104000F0EFBD10B5022001F09DFA1F
+:10A1400098B3012001F06BFB3C49E431A1F12800F8
+:10A15000FFF739FC394C3948202354F89C1FE43070
+:10A160004A7B017803EA421221F020011143334A6D
+:10A1700001702068BC321278417BC2F3401211405A
+:10A1800041732E48E430FFF78DFF2C492068E431FD
+:10A19000C08AC875000A087608462168497D81751D
+:10A1A000F9F7D8FE0620A07510BDFFE7BDE8104006
+:10A1B00000F0B1BD70B50D460446FFF7AFFB032DAF
+:10A1C00038D0052D41D105212046FFF7AAFB1B4DB4
+:10A1D000204655F89C1F0E31FFF75FFC296820468A
+:10A1E0001231FFF75EFC2868407DA0752868C08AA0
+:10A1F000E075000A2076286840886076000AA0761C
+:10A2000028688088E076000A20772868C088607710
+:10A21000000AA077296820460831FFF75CFC28680F
+:10A22000017E2046FFF743FCE97D2046BDE87040F3
+:10A23000FFF746BC032103E058010020FC0F00207B
+:10A240002046BDE87040FFF76CBB70BDF64910B505
+:10A25000B1F8BA2058B1FF2A12D24FF6FF7000EAC7
+:10A260004200A1F8BA00FF280AD9FF2006E0012A1F
+:10A2700006D95008A1F8BA0002D10120A1F8BA000D
+:10A28000EA484268012A00D00AB90D224260D2434E
+:10A29000C2EBC20303EB021211F8B93FDB4303EB3D
+:10A2A0008304C4EB83131A444260900CB1F801207C
+:10A2B000B0FBF2F302FB1300087075E770B5DA4CDF
+:10A2C00094F8B200022805D094F8B200012801D019
+:10A2D0000C2070BD002005462B2101FB004181F8B8
+:10A2E0002850401CC0B20228F6D3257084F82250B2
+:10A2F00094F8AF0028B1F9F79EFEF9F7C9F984F890
+:10A30000AF5084F8AE50012004F89B0FC648657129
+:10A31000A57540F2011120F8981F8170002070BDD2
+:10A32000C14810B5002100F8B21F01210170FFF7EC
+:10A33000C5FF002800D0FFDF36E72DE9F041BA4C19
+:10A3400007460C2594F8B200012805D094F8B20015
+:10A35000022801D00C20B9E5F9F722FBF9F7FCFA45
+:10A3600094F8980028B994F8990010B994F89A00D4
+:10A37000F0B300F059FC08B1052104E094F8A00006
+:10A38000022804D10321A848E430FFF713FF94F812
+:10A39000AC0010B994F8AD0038B3F7F729FD0546C5
+:10A3A000D4F8A8002946A434F8F730FAA04990FB65
+:10A3B000F1F601FB160041422846F7F722FA6060E9
+:10A3C000206830442060FEF785FC54F8A4198842C8
+:10A3D0000BD80020C4E9290594F8AD0010B1012084
+:10A3E000FEF760FD0120FFF7A3FD94F8911000E057
+:10A3F00009E08D489230F9F733FB94F8B20000255C
+:10A40000012805D006E094F8B200022814D001E03B
+:10A4100000F06EFC94F89B0090B1FEF7F0FC8248CF
+:10A42000BC30FEF722FD84F8AF008248C4F8B47057
+:10A43000F9F778FD284649E5012084F8B20089E75C
+:10A44000FEF7A8FCEBE770B5774C94F8B200022851
+:10A4500001D00C2070BD012084F8B900A4F8BA0026
+:10A460000220F9F774FD7348801DF9F73DFB0020C9
+:10A47000032304F1980100BF94F8B120521CB2FBF1
+:10A48000F3F503FB152284F8B120525C012A07D0B2
+:10A49000401CC0B20328EFD3FFF7D2FD002070BDEF
+:10A4A000644994F8B100C91C085CF9F727FBF9F777
+:10A4B00053FAF1E72DE9F0415B4C054616460F468D
+:10A4C00094F8900000F094FB50B14DB9384600F07C
+:10A4D00088FB3146FEF702FC082801D00120F5E494
+:10A4E00094F8900000F07DFBBDE8F041FAF7F5B874
+:10A4F0004D4810B590F8900000F073FBBDE8104097
+:10A50000FAF7EBB8484981F890007047464981F85E
+:10A51000AE00704770B5444C14F8900F00F061FB2A
+:10A520004149607092310D46FAF7C1F8207800F089
+:10A530005FFB607760782946903C00F061FB28B9AA
+:10A5400094F89100294600F064FB00B1012084F8E2
+:10A55000AC0018B994F8AD0000280ED0002044F8E3
+:10A56000A40FF7F745FC6060607A10B10020FEF799
+:10A5700099FCBDE870400020DAE470BD38B10228D3
+:10A5800005D00022284901F89B2F887170470122CD
+:10A59000F8E770B5244C15460E46002816D04FF04B
+:10A5A000000100BF84F89B1084F8A2004FF008005F
+:10A5B00084F8A30013D1304600F013FB2946FEF7C0
+:10A5C0008DFB84F8A300082803D008E04FF00101B8
+:10A5D000E8E7304600F00CFB08B1122070BD002007
+:10A5E00070BD114A032801D1C2F89C1082F8A00066
+:10A5F0000020704710B500F017FB0B4920B191F80F
+:10A60000A20001280DD00BE091F8A000012801D094
+:10A61000022805D191F8A100012803D0032801D018
+:10A620000020C1E50120BFE5FC0F002058010020FB
+:10A6300040420F006DEF010010B500F061FBFB4CD4
+:10A6400094F8AF0030B1F9F7F6FCF9F721F80020E3
+:10A6500084F8AF0000F04CFB0020A5E5F34981F839
+:10A66000B300704700F057BB2DE9F05FEF4CFF21BE
+:10A67000002684F8B010002873D004F1BC00FFF766
+:10A6800030FA28B904F1BC00FFF742FA0028F3D0F1
+:10A6900094F8B200E54DE64FBC3505287ED2DFE8E0
+:10A6A00000F07D7D7D03FD00E048BC30FFF758F9E8
+:10A6B000B87094F89B0010B9F9F70EFA08B10126AA
+:10A6C00000E0002694F8AF0070B1FEF749FB84F873
+:10A6D000B0000146FF280BD0E81CFEF735FB94F8CC
+:10A6E000B000FEF747FB064394F8B000FF2811D1F5
+:10A6F000FEF7B0FB84F8B00094F89B1051B1082825
+:10A7000008D12878E91CC0F38010FEF7E7FA082882
+:10A7100000D00026B878072872D2DFE800F0237E48
+:10A7200004717171130000F00BFB46B194F8A000A6
+:10A73000012801D0022802D1F9F7C6FB0CE0F9F795
+:10A74000C3FB82E100F0FCFA002EF8D094F8A000E0
+:10A75000022838D00128F2D1B448BC30FFF735FCCC
+:10A7600073E178E100F0ECFA002EE8D094F8A00054
+:10A77000022828D00128EFD000F056FA88B3D4F888
+:10A780009C10E8788A7E904224D12879CA7E904233
+:10A7900020D168790A7F90421CD100E059E1A87964
+:10A7A0004A7F904216D1E8798A7F904212D1287A66
+:10A7B000CA7F90420ED128784A7EC0F38010904222
+:10A7C00008D1012007E09948BC30FFF7FEFBBDE847
+:10A7D000F05F91E4002094F8A220012A02D080B119
+:10A7E000ADE017E0002814D190481A31BC30FFF7D3
+:10A7F000C1F88E48BC30FFF7D8F8D4F89C109DE023
+:10A8000033E194F8A300082899D094F8B01081425D
+:10A8100095D194E0FFDFBDE8F09F00F091FA94F845
+:10A82000AD00A0B10020804680492878C5310027BE
+:10A83000AA46C0098B4600F0ECF9054600F0F4F991
+:10A8400038B194F89B0020B194F8A30003E00120F4
+:10A85000E9E794F8B000FEF74CFA5FEA00090BD084
+:10A860001021FEF793FD08B14FF0010825B15946BC
+:10A870004846F9F73FFF074600F0D6F988B3D4F809
+:10A880009C109AF8032050468B7E9A421ED1027982
+:10A89000CB7E9A421AD142790B7F00E068E09A425F
+:10A8A00014D182794B7F9A4210D1C2798B7F9A4220
+:10A8B0000CD1027ACB7F9A4208D19AF80000497EE7
+:10A8C000C0F38010884201D1012500E0002594F8F2
+:10A8D000B000082806D094F8A310884202D10120C5
+:10A8E00001E030E0002081462FB9B8F1000F04D01C
+:10A8F000F9F7BEF808B1012000E000204EB194F84D
+:10A90000A210012903D021B955EA090101D0012182
+:10A9100000E0002108423FF412AF94F8A2000128A1
+:10A920000DD165B954F89C1F40481A31BC30FFF76F
+:10A9300021F83E48BC30FFF738F821684876BDE87A
+:10A94000F05FFFF7F9BBF9F7BFFA26B1F9F790F816
+:10A9500038437FF4F3AE94F8A100032801D0022815
+:10A9600073D1EDB3E7BB3148BC3000F07EF96CE049
+:10A970002E48BC30FEF7F4FFB8702C48E978E4307C
+:10A98000427A91421CD12979827A914218D169790F
+:10A99000C27A914214D1A979027B914210D1E9790E
+:10A9A000427B91420CD1297A827B914208D129784D
+:10A9B0000078C1F38011B1EBD01F01D1012500E077
+:10A9C0000025F9F781FAB878042834D195B300F05E
+:10A9D00034F994F8B80010B10020FFF737FC00E01C
+:10A9E00033E0012584F8B850104E94F85300BC367B
+:10A9F00058BB042084F8550001213046FFF7BAFA0D
+:10AA0000A6F15E013046FFF732F884F85D001F289A
+:10AA100002D91F2084F85D0004487D3000F019F948
+:10AA200084F85350042000F0FAFE0EE0FC0F0020E2
+:10AA300058010020FFE700F000F994F8B80010B9C1
+:10AA40000120FFF703FC84F8B860BDE8F05FFFF772
+:10AA5000F7BAFFDFDFE694F8B2000528FAD2DFE8A4
+:10AA600000F0030303040700D5E600F069F966E689
+:10AA700000F0E3F894F8B80010B90120FFF7E6FB06
+:10AA800084F8B8605BE62DE9F041B34C94F8B2006D
+:10AA900007287DD2DFE800F07F7F7F7F7F041100F1
+:10AAA000AD48BC30F9F756FAF9F7DBFA9620F9F71A
+:10AAB00076FA042084F8B2004DE400F021F900F0A9
+:10AAC00017F9207800B1FFDF0025A570D4F89C00AD
+:10AAD000A14F0188A180418861838188A183C088BA
+:10AAE000E08384F8205094F8AD00E437A7F16406C1
+:10AAF00030B13878F91CC0F3801000F08AF848B9FA
+:10AB000094F8AE0070B13878F91CC0F3801000F0F2
+:10AB100077F838B1D6F86700C4F80E00B6F86B00C5
+:10AB2000608202E0C4F80E50658294F8AF0018B15C
+:10AB3000F8F7C9FD012819D0D4F89C00417EE171D5
+:10AB4000D0F81A10A160C08BA081834845610583AD
+:10AB500001202070D4F89C000088F5F74BF9F4F739
+:10AB6000E3FDBDE8F041022000F059BEF8F7CDFD4D
+:10AB7000794AE11D0832FEF7D0F800B9FFDFE0792D
+:10AB800040F00200E07156F83F0F6061B08800E0CD
+:10AB900001E02083DCE7FFDF4DE410B56E4C94F854
+:10ABA000B200052819D2DFE800F0181818140300C5
+:10ABB00000F043F894F8B80010B90120FFF746FB05
+:10ABC000002084F8B800F9F77FF9BDE81040FFF7DE
+:10ABD00037BABDE8104000F09EB822E5012200F02F
+:10ABE00058BE18B1022801D00120704700207047DC
+:10ABF000022803D0032801D00020704701207047AD
+:10AC0000012802D14879800901D000207047012035
+:10AC10007047012806D148790121B1EB901F01D17D
+:10AC200001207047002070474B4890F8A00003288F
+:10AC300001D0002070470120704710B54748F9F750
+:10AC40001BFA10B945497F200870BDE81040F9F79C
+:10AC5000FEB930B5414C054620787F2800D1FFDF92
+:10AC6000207828707F20207030BD2DE9F0413A4CCB
+:10AC7000074694F87E00002839D1012684F88060C8
+:10AC800094F8AF0004F1820518B1F8F71CFD012813
+:10AC90001DD03846FEF789FE84F8810029463846E3
+:10ACA000FEF768FE3846FEF78BFE84F888002A49D6
+:10ACB000384689317E34FEF769FE27488F30FFF72A
+:10ACC000C8FF2670BDE8F041032000F0A8BDF8F7EA
+:10ACD0001CFD21492A468131FEF71FF800B9FFDF2C
+:10ACE00094F8810040F0020084F88100DAE7E3E69E
+:10ACF0001948012180F8B810022180F8B21070477D
+:10AD000010B5F9F77DF9F9F76EF9F9F7DDF8BDE857
+:10AD10001040F9F70DB910B5FFF7F2FF0E4C94F89B
+:10AD2000AF0030B1F9F787F9F8F7B2FC002084F8EA
+:10AD3000AF00FFF7DDFFBDE81040002000F06FBD61
+:10AD4000054810B590F8AF0018B1F9F774F9F8F7A5
+:10AD50009FFCBDE8104070E7FC0F00205801002068
+:10AD6000D0F8D81049B1D0E937231A448B691A4476
+:10AD70008A61D0E93512D16003E0FE4AD0F8D410E0
+:10AD80005161D0E9351009B1086170470028FCD045
+:10AD900000218161704770B505460C461046F9F7F1
+:10ADA0006DFB4FF47A71022C0CD0F34A4FF4C86358
+:10ADB0001A44104400F23F60B0FBF1F0284400F563
+:10ADC000C97070BDED4A0B46F2E72DE9FF4F06460C
+:10ADD0000C46488883B040F2E24148430190E08A43
+:10ADE000002500FB01FA94F8630017460D2822D0D5
+:10ADF0000C2820D024281ED094F8640024281AD0CF
+:10AE000000208346069818B10121204602F023FA5B
+:10AE100094F8512094F85200009094F8C81091468C
+:10AE20004FF47A7849B1012951D0022937D003294A
+:10AE30004DD0FFDF96E00120E3E707B9FFDFCD4FFC
+:10AE4000786800B9FFDF14F8510FF9F724FB454685
+:10AE500000F2E730B0FBF5F17868B8460F182078BB
+:10AE6000F9F719FB024614F85109022814D0C24818
+:10AE70004FF4C8610844104400F2E730B0FBF5F12C
+:10AE8000D8F81000411A01EB0A00C519012084F816
+:10AE9000C80005F2E64564E0B8482946EAE7DFF86D
+:10AEA000D482791ED8F80400084300D1FFDFB448EB
+:10AEB000016801EB0A0537B1D8F8040000F222302E
+:10AEC000A84200D9FFDF032084F8C80049E094F8C5
+:10AED0006310019D242903D094F86410242933D1F0
+:10AEE000B4F85810B4F8EA30C91A491C09B200295C
+:10AEF0002ADB94F8E81039B3894694F8E91001B1D7
+:10AF000008460090022A13D09B484FF4C8610844B9
+:10AF1000B9F1020F0FD098494FF4C862114488422A
+:10AF20000CD9401A00F5FA70B0FBF8F005440BE0BC
+:10AF300092484146EBE791494246EFE7081A00F58F
+:10AF4000FA70B0FBF8F02D1A5FB18A4F786810B92B
+:10AF5000788800B1FFDF786800F22230A84200D97B
+:10AF6000FFDF05B9FFDF2946D4F8CC00F6F749FC2E
+:10AF7000C4F8CC00B060002030704FF0010886F8B3
+:10AF80000480204602F0C3F9ABF10101084202D16E
+:10AF900086F8058005E094F8C80001282FD003202A
+:10AFA0007071606A4946009AFFF7F5FEF0600698F6
+:10AFB00030EA0B0020D029463046FEF7B2FA87B2BD
+:10AFC000204602F0A4F9B8420FD8074686F805805B
+:10AFD00005FB07F1D4F8CC00F6F713FCB060294666
+:10AFE0003046FEF79EFA384487B23946204602F0D2
+:10AFF00032F9B068C4F8CC0007B0BDE8F08F022089
+:10B00000CEE72DE9F04106460C46012000F05FFC3A
+:10B01000C5B20B2000F05BFCC0B2854200D0FFDF60
+:10B020000025082C7DD2DFE804F004525A5A56BDA0
+:10B03000BD7F304600F05AFC0621F4F7A9FD04005C
+:10B0400000D1FFDF304600F051FC2188884200D05B
+:10B05000FFDF94F8C80000B9FFDF204601F098FF39
+:10B06000444E21460020756075803561FEF795FAE3
+:10B0700000F19807606AB84216D994F85200F9F7BF
+:10B08000FDF994F8512001464FF47A70022A1BD042
+:10B09000394A4FF4C8631A44114401F23F61B1FBCD
+:10B0A000F0F1606A0844C51B21460020B560FEF738
+:10B0B00074FA618840F2E24251439830081AA0F2D3
+:10B0C0002230F060BDE8F0812C4A0346E3E7BDE89A
+:10B0D000F04101F0C5BFBDE8F041F9F711B96FF0DB
+:10B0E000040000F0F4FBC4B2192000F0F0FBC0B281
+:10B0F000844200D0FFDF304600F0F8FB0621F4F771
+:10B1000047FD040000D1FFDF304600F0EFFB21884F
+:10B11000884200D0FFDF2046BDE8F0410122002137
+:10B1200000E03FE000F0EBBB304600F0DFFB062123
+:10B13000F4F72EFD040000D1FFDF304600F0D6FB0F
+:10B140002188884200D0FFDF94F8C800042800D08E
+:10B15000FFDF84F8C85094F8D2504FF6FF76202DC8
+:10B1600000D3FFDF03483C3020F8156094F8D2008C
+:10B1700008E0000008110020A22402006836020046
+:10B1800064010020F6F715FE00B9FFDF202084F8E7
+:10B19000D2002046FFF7E4FDFE480078BDE8F0410C
+:10B1A000F0F7B0BBFFDF8DE72DE9F047FA4C06461C
+:10B1B000E08B6568401CE08320784FF00008A8B160
+:10B1C000042815D005282DD0FFDF29462069F6F781
+:10B1D00018FBB06086F8008001203071A06800F58F
+:10B1E000B370F0602078042824D028E0FFDFECE77B
+:10B1F0000029EAD02F46D4F8109000F001FC050099
+:10B200000ED0287800B9FFDF696968684A460844AB
+:10B21000394600F0E1FB0546B842D6D9FFDFD4E756
+:10B220004546D2E70029D0D0A06900F085FB40F662
+:10B23000B835CAE7E08B0A2801D2032000E00220DB
+:10B240007071E08B012806D930466168FEF769F914
+:10B25000E18B0844E083B0682061BDE8F0872DE908
+:10B26000FF4107460E46012000F031FBC4B20B201F
+:10B2700000F02DFBC0B2844200D0FFDF002501208A
+:10B28000C54C082E52D2DFE806F004172D2D2951A7
+:10B29000514560732073607800280BD1BE48183880
+:10B2A000456005612573A068C138FFF746F800289E
+:10B2B00000D0FFDFBDE8FF81617841B1207B08B994
+:10B2C000FFF7BAF96573BDE8FF41F6F79DBCA073BF
+:10B2D000FFF7B9F80028EDD0FFDFEBE7BDE8FF414D
+:10B2E000F9F70EB86FF0040000F0F1FAC4B21920BB
+:10B2F00000F0EDFAC0B2844200D0FFDF00216846C2
+:10B30000FFF752FF69463846F6F7BAFF0028D1D159
+:10B31000FFDFCFE72078052800D0FFDF207F00B9CE
+:10B32000FFDF2577BDE8FF4100F0FABAFFDFC1E794
+:10B330002DE9F041984C00262078042804D020788C
+:10B34000052801D00C20BDE601206070607B00253F
+:10B3500038B1EFF3108010F0010F72B605D001275D
+:10B3600004E0207DF7F79EF80CE00027607B38B101
+:10B37000A07B28B1FFF760F96573A573F6F744FC6D
+:10B3800007B962B6207DF7F7DAFA207F28B1257772
+:10B390002078052800D0FFDF0C26657000F0C0FA89
+:10B3A00030468FE67C4810B5007808B1FFF7C0FF43
+:10B3B00000F02FFB784900201839486110BD10B506
+:10B3C000744C58B1012807D0FFDFA06841F66A012C
+:10B3D000884200D3FFDF10BD40F6C410A060F4E740
+:10B3E0006C4910B508706C490020087048700877E7
+:10B3F000087348738873202288610A751839487069
+:10B40000654A4FF6FF71243222F81010401CC0B27A
+:10B410002028F9D30020FFF7D2FFBDE81040C1E794
+:10B4200070B50D465C4C40F27121484360600120CC
+:10B43000F9F724F84FF47A7100F2E730B0FBF1F03D
+:10B4400040F2712101FB0501A1606068A0F2F620C5
+:10B45000814200D9A06070BD2DE9FF414E4C0546E8
+:10B46000164620780F4610B10C2004B02AE695F855
+:10B47000522095F85110686A00F00DFBC5F8DC0009
+:10B48000A56195F8C80000B1FFDF31463846FFF7E7
+:10B49000C7FF4149002018390861052121706070FB
+:10B4A0002077E0833D48F6F72AFC2075202800D15C
+:10B4B000FFDFF6F79DFC206101216846FFF774FE6F
+:10B4C000207D6946F6F7DCFE00B9FFDF0020CCE7FF
+:10B4D000314810B5007808B1002010BD0620F4F7FF
+:10B4E000F1FA80F0010010BD1FB52B4C227812B18B
+:10B4F0000C2004B010BDFFF793FF00206070042102
+:10B500002170E0832548F6F7FAFB2075202800D14A
+:10B51000FFDF00F075FA10B1F6F76AFC05E0F6F708
+:10B5200067FC40F6B831F6F76CF9206101216846F6
+:10B53000FFF73AFE207D6946F6F7A2FE00B9FFDF6D
+:10B540000020D6E770B5144CA1690160FFF7F0FE4A
+:10B55000050002D1A069FFF703FC0020A061284686
+:10B5600070BD7FB50C4C2078052802D00C2004B0AB
+:10B5700070BDA06900B9FFDFA06990F8C80000B1F4
+:10B58000FFDFA06990F8D200202800D0FFDF044838
+:10B5900008E0000060010020201100205FB20100DF
+:10B5A00003B00100F6F7ABFBA1690546202881F83E
+:10B5B000D2000E8800D3FFDFFC4820F81560A06998
+:10B5C00090F8D200202800D1FFDF00230122684636
+:10B5D000A169FFF7FAFBA069694690F8D200F6F777
+:10B5E0004FFE00B9FFDF0020A061C0E7EF493C3902
+:10B5F0004870704710B540F2E24300FB03F40020AE
+:10B6000000F049FA844201D9201A10BD002010BD73
+:10B6100070B50D46064601460020FDF7BEFF044604
+:10B6200096F85200F8F72AFF96F8512001464FF499
+:10B630007A70022A14D0DE4A4FF4C8631A441144C7
+:10B6400001F23F61B1FBF0F1708840F2712250438A
+:10B65000C1EB4000A0F22230A54204D2214603E013
+:10B66000D44A0346EAE72946814204D2A54201D2E0
+:10B67000204600E02846706270BDCC4910B53C39C8
+:10B680004C68983458B101280CD002280DD0FFDF47
+:10B69000C64824388068A0420AD9012010BD04F5AC
+:10B6A000BC74F5E704F53174F2E704F5B074EFE724
+:10B6B000002010BD10B5BD4C3C3C607828B1D4E9E9
+:10B6C00002016268FDF757FFA060D4E901018842DA
+:10B6D00001D8207808B1002010BD012010BD10B5A0
+:10B6E0000446012903D1B1483C38007830B1042028
+:10B6F00084F8C800BDE81040F6F786BA00220121A0
+:10B70000204600F0FCF834F8580F401C2080F1E788
+:10B710002DE9F0410120F8F7B1FEA749A34C0844F8
+:10B720004FF47A71B0FBF1F0243CA4F118062169C2
+:10B73000726811440A1AA06940F2E24102F2DE6224
+:10B740004788C8304F437169814208D03946206A22
+:10B7500000F042F90546B84202D9FFDF00E00025BB
+:10B7600096488068854207D2A16940F271224888D4
+:10B77000424305EB420504E040F2E240B5FBF0F045
+:10B78000A169C882A06905214175C08A6FF41C7146
+:10B79000484305EB400040F635413061B0EB410FC6
+:10B7A00000D3FFDF8EE410B5052936D2DFE801F0C3
+:10B7B0000509030D3100002100E00121BDE8104022
+:10B7C0008DE7032180F8C81010BD0446408840F280
+:10B7D000E24148437949091D0860D4F8F000008926
+:10B7E000E082D4F8F00080796075D4F8F0004089E8
+:10B7F0006080D4F8F0008089A080D4F8F000C0897F
+:10B80000E0802046A16AFFF703FF022084F8C80009
+:10B8100010BD816ABDE81040FAE6FFDF10BD7FB5BC
+:10B82000624C0025243C052830D2DFE800F00312EA
+:10B830001528280000F035F96078D8B9002168464D
+:10B84000FFF7B2FC207D6946F6F71AFD90B9FFDFDD
+:10B8500010E0BDE87F405BE700F023F9012020778E
+:10B86000A0692169C0F8CC1080F8C850FFF779FEB4
+:10B8700000B1FFDFF6F7C8F96573A5737FBD4F48C8
+:10B88000007804B0BDE87040F0F73CB8FFDF7FBD42
+:10B89000704770B5454D04463C3D91B1012910D02B
+:10B8A000022901D0FFDF70BD6888401C6880104607
+:10B8B000F8F7F1FD4FF47A7100F2E730B0FBF1F0E8
+:10B8C000201A686070BD3948243800787047002815
+:10B8D00006DA00F00F0000F1E02090F8140D03E00C
+:10B8E00000F1E02090F800044009704710B50446CC
+:10B8F000202800D3FFDF2D4830F8140010BD1FB5FD
+:10B9000013460A46044601466846FFF75EFA94F875
+:10B91000D2006946F6F7B4FC002800D1FFDF1FBD56
+:10B9200070B5224C0025243C2570207DF6F741FAA5
+:10B9300000B9FFDF257570BD2DE9F041050000D18C
+:10B94000FFDF1A4A00243C3AD5F8DC602046631E2B
+:10B95000516908E08869B04203D3984201D2034696
+:10B960000C460846C9680029F4D104B904460021F0
+:10B97000C5F8D840C8351CB3E068E560E86000B1A0
+:10B9800005612E698846A96156B1B06930B16F6909
+:10B99000B84200D2FFDFB069C01BA861C6F81880AA
+:10B9A000024D243DACB1207870B90CE04411002068
+:10B9B000A224020068360200C92E020060010020A5
+:10B9C000E9605561DDE7FFDF61696068084428626E
+:10B9D000B9E4C5F82080B6E410B50C46014610461F
+:10B9E000F6F714FF002806DA211A491E91FBF4F13C
+:10B9F00001FB040010BD90FBF4F101FB140010BD2D
+:10BA00002C484169002001E00846C9680029FBD1A3
+:10BA100070472DE9FE43274D0120287000264FF680
+:10BA2000FF7420E00621F4F7B3F8070000D1FFDF30
+:10BA300097F8D200C837F6F782FF07F80A6BA146DD
+:10BA400017F8D289B8F1200F00D3FFDF194A3C3232
+:10BA500022F8189097F8D200F6F7ABF900B9FFDF9B
+:10BA6000202087F8D20069460620F4F71AF850B172
+:10BA7000FFDF08E0029830B190F8C81019B10088D3
+:10BA8000A042CFD104E06846F3F7E9FF0028F1D0E7
+:10BA90002E70BDE8FE8310B5FFF77DF900F5C87084
+:10BAA00010BD044900201831C88303480078EFF71F
+:10BAB00029BF00000811002060010020012806D0E5
+:10BAC000022807D0042808D0082808D105E0012959
+:10BAD00007D004E0022904D001E0042901D00020AD
+:10BAE000704701207047FE48806890F8861029B1A1
+:10BAF000B0F88210B0F88420914215D290F88A10E4
+:10BB000029B1B0F88810B0F8842091420CD2B0F876
+:10BB10008020B0F87E108A4206D290F86720B0F8F4
+:10BB20007C001AB1884203D3012070470628FBD25B
+:10BB3000002070472DE9F041E94D0746A86800F163
+:10BB4000580490F8EC0030B9A27B00230121204674
+:10BB5000FDF78BFC10B1208D401C208501263D2176
+:10BB6000AFB92878022808D001280AD06878C8B16F
+:10BB700010F0140F09D01E2039E0162037E0A67609
+:10BB80003EE0A86890F8EE0031E0020701D5E176CA
+:10BB9000F5E7810701D02A2029E0800600D4FFDFE5
+:10BBA000232024E094F82E0028B1608D411C61858B
+:10BBB000A18D884213D294F8320028B1208E411C06
+:10BBC0002186A18D88420AD2218DE08C814203D347
+:10BBD000AA6892F8EC2012B9A28D914201D32220DA
+:10BBE00005E0E17B29B1A18C814207D30820E076F2
+:10BBF000C5E7A08C062801D33E20F8E7A07EB0B1AF
+:10BC00000020E0722073E0730221A868FFF7CBFDEB
+:10BC1000A86890F8C310012904D1D0F8F41008786E
+:10BC2000401E0870E878BDE8F041EFF76BBEA868E9
+:10BC3000BDE8F0410021FFF7B6BDA9490C2889688D
+:10BC400081F8C30014D0132812D0182810D0002275
+:10BC500011280ED007280BD015280AD0012807D0AC
+:10BC6000002805D0022803D021F8822F0120087176
+:10BC70007047A1F88820704710B5994CA1680A88D0
+:10BC8000A1F8362181F8340191F8510001F077FBD9
+:10BC9000A16881F8380191F8520001F070FBA168A9
+:10BCA00081F83901012081F83201002081F8060174
+:10BCB000E078BDE81040EFF725BE10B5884C0421B0
+:10BCC000A068FFF770FDA06890F84E10012912D00F
+:10BCD00000F5867102884A81028E8A81828ECA812D
+:10BCE000428E0A82C08E488201200872E078BDE848
+:10BCF0001040EFF707BE022180F84E1010BD70B55E
+:10BD00007748806890F84E20448EC38E418FB0F8FB
+:10BD10004050022A23D0A94200D329460186C18F70
+:10BD2000B0F84220914200D311468186018FB0F8CD
+:10BD30004420914200D311464186818FB0F84620BD
+:10BD4000914200D31146C186418EA14200D90C46D2
+:10BD50004486C18E994200D90B46C38670BD028EBF
+:10BD6000914200D31146C68F828E964200D232464F
+:10BD7000A94200D329460186B0F842108A4200D376
+:10BD80000A468286002180F84E10CFE770B5544CE9
+:10BD900000231946A06890F863205830FDF765FB32
+:10BDA00000283DD0A06890F8F8100025C9B3A1691B
+:10BDB0000978B1BB90F86400FDF74AFB88BBA16825
+:10BDC000B1F858000A282DD905220831E06902F09F
+:10BDD00050FD10B3A068D0F8F410087858B10522CF
+:10BDE000491CE06902F045FD002819D1A068D0F88F
+:10BDF000F400007840B9A068E169D0F8F4000A685E
+:10BE0000C0F8012009794171A068D0F8F4000178E8
+:10BE1000491C01700120FFF710FFA06880F8F8505E
+:10BE200070BDFFE7A06890F8FC1011B190F8FD100C
+:10BE300009B390F806110029F2D090F807110029F3
+:10BE4000EED190F86400FDF703FB0028E8D1A0686C
+:10BE500090F8081190F85100FFF730FE48B3A06841
+:10BE600090F8091190F85200FFF728FE08B3BDE8DA
+:10BE70007040002000E7B0F8FE10A0F84010B0F8C5
+:10BE80000011A0F84210B0F80211A0F84410B0F868
+:10BE90000411A0F8461080F8FC5090F864001D28AA
+:10BEA00001D0142006E001F07CFAA06880F864500C
+:10BEB000B6E71620BDE87040BFE610B5F6F7F4FF10
+:10BEC0000C2817D3064C0821A068D0F8F0001E30CB
+:10BED000F6F7EEFF48B1A0680421B83002E0000098
+:10BEE0006C010020F6F7E4FF00B9FFDFBDE8104069
+:10BEF0000320A2E610BD10B5F94CA068D0F8F010F0
+:10BF00000A78002A1FD04988028891421BD190F8F4
+:10BF10006320002319465830FDF7A7FA002812D0F5
+:10BF2000A068D0F8F0100978022907D003290BD0B7
+:10BF3000042917D0052906D108200DE090F86400E7
+:10BF4000FDF786FA40B110BD90F8681039B190F84D
+:10BF5000690000B9FFDF0A20BDE810406DE6BDE8CA
+:10BF60001040AAE790F88E008007ECD10C20FFF774
+:10BF700064FEA068002120F8821F01210171017B6D
+:10BF800041F00101017310BD38B5D54CA268B2F87B
+:10BF90005120ADF80020FDF79BFB9DF80030C2B2A8
+:10BFA0000021934203D0A36883F8E82002E0A2684E
+:10BFB00082F8E8109DF80120C0F30720824203D0E8
+:10BFC000A16881F8E90038BDA06880F8E91038BDA3
+:10BFD00038B5C34DA86890F8C310FF2953D16978CC
+:10BFE000002950D190F86620002301215830FDF738
+:10BFF0003CFA002847D1A86890F8EC1009B102205B
+:10C00000ACE090F86320002319465830FDF72DFA74
+:10C0100028B1A86890F87A0008B112209EE0A868BC
+:10C02000002490F86320122A1DD004DC032A21D0BA
+:10C03000112A04D119E0182A1AD0232A24D0002367
+:10C0400004215830FDF711FA00281CD1A86890F897
+:10C05000641019296FD01EDC01292FD002293AD093
+:10C0600003291CD125E00B2078E0BDE8384024E707
+:10C07000062073E010F8C21F81700720FFF7DDFD76
+:10C08000A86880F8634038BD1820FFF7D6FDA8687F
+:10C09000A0F8824038BD1E2921D021293ED0FFF7CB
+:10C0A0002AFFA86890F8C300FF28F3D1BDE8384004
+:10C0B0006CE610F8C11FC170072053E00C20FFF799
+:10C0C000BCFDA86820F8884F817941F00101817199
+:10C0D00000F8244C38BD1320FFF7AFFD1AE090F8AC
+:10C0E000FD100029F6D190F8FC1089B1B0F8FE10CF
+:10C0F000A0F84010B0F80011A0F84210B0F80211FA
+:10C10000A0F84410B0F80411A0F8461080F8FC40E4
+:10C1100001F047F9A868A0F8884026E090F87B1065
+:10C1200051B100F8E84F44701820FFF786FDA86869
+:10C13000A0F8884038BD14E090F807110029F9D123
+:10C1400090F806110029F5D0B0F84F10ADF80010A6
+:10C150000099D0F80801FFF717FF1820BDE8384014
+:10C160006BE51120FFF769FDA86880F86440E1E7FE
+:10C170005B4A0129926819D0002302290FD00329B4
+:10C180001ED010B301282BD0032807D192F86300EA
+:10C19000132803D0162801D0182804D1704792F82C
+:10C1A000C3000028FAD0D2F8F00017E092F8C300DC
+:10C1B0000128F3D0D2F8F4100878401E08707047B8
+:10C1C00092F8C3000328EED17047D2F8F000B2F81D
+:10C1D00058108288891A09B20029F5DB037070476C
+:10C1E000B2F85800B2F8FA10401A00B20028F6DB94
+:10C1F000D2F8F4000178491E0170704770B504460A
+:10C2000090F8630000250C2810D00D282ED1D4F80A
+:10C21000F010B4F858008988401C884226D1D4F820
+:10C220003C012F4E017811B3FFDF42E0B4F8580013
+:10C23000B4F8FA10401C884218D1D4F8F400D0F8B1
+:10C240000110A1604079207302212046FDF70BF810
+:10C25000D4F8F400007800B9FFDF0121FF20FFF7D8
+:10C2600087FF84F86350012084F89600D8E5218880
+:10C27000C180D4F8F000D4F83C1140890881D4F88A
+:10C28000F000D4F83C1180894881D4F8F000D4F84B
+:10C290003C11C0898881D4F83C010571D4F83C1167
+:10C2A00008200870D4F83C1120884880F078EFF717
+:10C2B00029FB01212046FCF7D6FF03212046FFF78A
+:10C2C00072FAB068D0F8F0000078022800D0FFDFE2
+:10C2D0000221FF20FFF74CFF84F86350A0E5000027
+:10C2E0006C0100202DE9F041FF4C00260327D4F813
+:10C2F00008C0012590B12069C0788CF8C20005FA09
+:10C3000000F0C0F3C05000B9FFDFA06880F8637090
+:10C31000A0F8826080F88650BDE8F08100239CF888
+:10C32000642019460CF15800FDF79FF868B1607859
+:10C330000028F1D12069C178A06880F8C11000F808
+:10C34000647F868480F82650E6E76570E4E7F0B500
+:10C35000E54C002385B0A068194690F86420583059
+:10C36000FDF783F8012580B1A06890F863002328C9
+:10C370000ED024280CD06846F8F746F968B100982A
+:10C3800001A9C0788DF8040008E0657005B0F0BD23
+:10C39000607840F020006070F8E70021A06803ABEF
+:10C3A000162290F86300FDF7C3F9002670B1A0686B
+:10C3B0009DF80C20162100F8E42F4170192100F897
+:10C3C000801C00F85A5C20F85C6CDFE72069FDF700
+:10C3D000E1FC78B12169087900F00702A06880F8D3
+:10C3E0004F20497901F0070180F8501090F807318B
+:10C3F0000BBB03E00020FFF775FFC7E790F806319D
+:10C40000CBB900F151035F78974205D11A788A427F
+:10C4100002D180F87B500EE000F59771028821F878
+:10C42000022990F84F200A7190F8500048710D7061
+:10C43000E078EFF767FAA068212100F8641F80F820
+:10C4400026508684A2E770B5A74C00231946A06841
+:10C4500090F864205830FDF708F828B32069FDF7FC
+:10C460007DFC30B3A5682069FDF774FC2887A568BA
+:10C470002069FDF76BFC6887A5682069FDF76CFCF7
+:10C48000A887A5682069FDF763FCE887A0680125F7
+:10C4900090F863101C2910D090F84E10012912D08A
+:10C4A00090F8FD1079B90BE0607840F00100607001
+:10C4B000B6E4BDE87040002014E780F84E5002E07A
+:10C4C00090F8FC1019B11E2180F8641012E01D21B3
+:10C4D00080F8641000F586710288CA82028F0A8390
+:10C4E000428F4A83828F8A83C08FC8830D75E0781C
+:10C4F000EFF708FAA068002120F8881F85708FE404
+:10C5000010B5794C00230921A06890F863205830B9
+:10C51000FCF7ABFF48B16078002805D1A16801F8AD
+:10C520007A0F087301F8170C10BD0120607010BD60
+:10C530007CB56D4C00230721A06890F8632058302B
+:10C54000FCF793FF38B36078002826D1694620694C
+:10C55000FDF71BFC9DF80000002500F02501A068F8
+:10C5600080F894109DF8011001F0410180F89510B9
+:10C5700080F88650D0F8F01000884988814200D0B9
+:10C58000FFDFA068D0F8F0100D70D0F83C110A78E9
+:10C5900022B1FFDF16E0012060707CBD30F8C02BB7
+:10C5A000CA80C16F0D71C16F009A8A60019ACA601A
+:10C5B000C26F0721117030F8C01CC06F4180E07855
+:10C5C000EFF7A0F9A06880F863507CBD70B5464CC9
+:10C5D00000231946A06890F864205830FCF745FF06
+:10C5E000012540B9A0680023082190F86320583045
+:10C5F000FCF73BFF10B36078002820D1A06890F8CA
+:10C600008E00800712D42069FDF784FBA16881F8B1
+:10C610008F00206930F8052FA1F890204088A1F8FC
+:10C62000920011F88E0F40F002000870A0684FF0E1
+:10C63000000690F88E10C90702D010E0657037E44C
+:10C6400090F86420002319465830FCF70EFF00B91B
+:10C65000FFDFA06800F8645F80F826508684A06839
+:10C6600090F86310012906D180F8636080F8866035
+:10C67000E078EFF747F9A168D1F8F000098842881F
+:10C680008A42DCD101780429D9D10670E078EFF72D
+:10C6900039F9A06890F863100029D0D180F886603D
+:10C6A00006E470B5104DA86890F863101A2902D0FE
+:10C6B00002206870DAE569780029FBD1002480F84F
+:10C6C0008B4080F88640D0F8F0100088498881427D
+:10C6D00000D0FFDFA868D0F8F0100C70D0F83C1143
+:10C6E0000A781AB1FFDF27E06C01002090F88C2057
+:10C6F00072B180F88C400288CA80D0F83C110C716D
+:10C70000D0F83C210D2111700188D0F83C010DE0DA
+:10C7100030F8C02BCA80C16F0C71C26F0121117239
+:10C72000C26F0C21117030F8C01CC06F418000F046
+:10C73000AAFEE878EFF7E6F8A86880F8634095E588
+:10C7400070B5FC4CA16891F86320162A01D0132A19
+:10C7500002D191F88C2012B10220607086E56278D7
+:10C76000002AFBD181F8C000002581F88B5081F8A8
+:10C770008650D1F8F00009884088884200D0FFDF59
+:10C78000A068D0F8F0000078032800D0FFDF032174
+:10C79000FF20FFF7EDFCA068D0F83C110A780AB141
+:10C7A000FFDF13E030F8C02BCA80C26F017811712F
+:10C7B000C16F0D72C26F0C21117030F8C01CC06FB8
+:10C7C000418000F060FEE078EFF79CF8A06880F808
+:10C7D00063504BE570B5D74C09210023A06890F851
+:10C7E00063205830FCF741FE002518B1206900791C
+:10C7F00012281ED0A0680A21002390F86320583028
+:10C80000FCF733FE18B120690079142814D0206990
+:10C81000007916281BD1A06890F863101F2916D143
+:10C8200080F8635080F88650BDE870401A20FFF70A
+:10C8300023BABDE8704063E6A06880F86350A0F8B2
+:10C84000825080F88650BDE87040FFF736BA0DE59B
+:10C8500070B5B84C2079C00770D02069002305213D
+:10C86000C578A06890F863205830FCF7FEFD88B1C9
+:10C87000022D0FD00B2D0DD0042D0BD0052D09D07E
+:10C88000062D07D00D2D05D0112D03D0607840F076
+:10C89000080060706078002850D1206900250226C9
+:10C8A000C178891E162976D2DFE801F00B75323582
+:10C8B0004522754C7525494375757538524F686B1F
+:10C8C0006F72A0680023012190F866205830FCF7B1
+:10C8D000CCFDF8B92069FDF7E7F9A16881F8EE0011
+:10C8E000072081F8660081F88A5081F8865055E06B
+:10C8F000FFF770FF52E0A06890F863100F2901D095
+:10C9000066704BE080F86850122180F8631045E0B3
+:10C9100000F0E4FD42E000F0C0FD3FE0FDF776FAF4
+:10C9200003283BD12069FDF775FA00BFFFF708FF28
+:10C9300034E00079FAE7FFF7B4FE2FE036E0FFF7C6
+:10C9400045FE2BE0FFF7F4FD28E0FFF7D9FD25E0D9
+:10C95000A0680023194690F864205830FCF785FD44
+:10C96000012110B16078C8B901E0617016E0A068DB
+:10C9700020F8885F817000F8246C0FE0FFF763FDFA
+:10C980000CE000F04CFD09E005E0FFF7E0FC05E0FD
+:10C9900000F011FD02E00020FFF7A4FCA068F0E920
+:10C9A0002812491C42F10002C0E900125EE42DE9A0
+:10C9B000F041604C2079800741D5607800283ED155
+:10C9C000E06801270026C17820461929856805F10D
+:10C9D00058006FD2DFE801F04B3E0D6FC1C1801CE3
+:10C9E00034C1556287C1C1C1C1BE8B9598A2B0C187
+:10C9F000BA0095F8662000230121FCF736FD0028D7
+:10CA00001DD1A068082180F8661080F886608EE04D
+:10CA1000002395F864201946FCF727FD10B1A068A3
+:10CA200080F88A60A0680023194690F86320583087
+:10CA3000FCF71BFD002802D0A06880F886606BE43C
+:10CA4000002395F863201946FCF70FFD00B9FFDFBE
+:10CA5000042008E0002395F863201946FCF705FD43
+:10CA600000B9FFDF0C20A16881F8630054E40023C3
+:10CA700095F863201946FCF7F8FC00B9FFDF0D209C
+:10CA8000F1E7002395F863201946FCF7EEFC00B9A6
+:10CA9000FFDFA0680F2180F88B7008E095F8630035
+:10CAA000122800D0FFDFA068112180F88C7080F878
+:10CAB000631031E451E0002395F863201946FCF738
+:10CAC000D4FC20B9A06890F88C0000B9FFDFA06802
+:10CAD000132180F88B70EAE795F86300182800D0DE
+:10CAE000FFDF1A20BFE7BDE8F04100F076BD00236C
+:10CAF00095F863201946FCF7B8FC00B9FFDF052064
+:10CB0000B1E785F88A6007E4002395F863201946A9
+:10CB1000FCF7ABFC00B9FFDF1C20A4E7002395F86D
+:10CB200064201946FCF7A1FC00B9FFDFA06880F87B
+:10CB30008A6009E46C010020002395F863201946FF
+:10CB4000FCF793FC00B9FFDF1F208CE7BDE8F04144
+:10CB500000F00BBD85F86460D3E7FFDF6FE710B529
+:10CB6000FB4C6078002837D1207940070FD5A068AA
+:10CB700090F86300032800D1FFDFA06890F86610EA
+:10CB8000072904D101212170002180F86610FFF7E8
+:10CB90000EFF00F0C8FCFFF75BFEA078000716D57B
+:10CBA000A0680023052190F863205830FCF75DFC55
+:10CBB00050B108206070A068D0F83C1108780C28AB
+:10CBC00000D10020087002E00020FBF7CBFCA06839
+:10CBD000BDE81040FFF712BB10BD2DE9F041DC4C61
+:10CBE00007464FF0000560780843607020798106A1
+:10CBF0002046806802D5A0F87C5004E0B0F87C1094
+:10CC0000491CA0F87C1000F02BFD0126F8B1A0888B
+:10CC1000000506D5A06890F8691011B1A0F874500D
+:10CC200015E0A068B0F87410491CA0F8741000F06A
+:10CC300006FDA068B0F87410B0F87620914206D3D3
+:10CC4000A0F8745080F81261E078EEF75BFE20796E
+:10CC500010F0600F08D0A06890F8671021B980F834
+:10CC600067600121FEF79FFD1FB9FFF778FFFFF70F
+:10CC7000AFF93846FEF75EFFBDE8F041F7F7D3BCE9
+:10CC8000B3494A788B781A430DD1012809D0087925
+:10CC9000400704D5886890F86600072803D0012073
+:10CCA0007047FEF707BD00207047A949C278896820
+:10CCB000012A06D05AB1182A08D1B1F8EA10FDF7B6
+:10CCC00085B8B1F8FA104172090A81727047D1F83B
+:10CCD000F01089884173090A8173704770B59C4CC4
+:10CCE00005460E46A0882843A080A80703D5E8077C
+:10CCF00000D0FFDFE660E80700D02661A80719D55D
+:10CD0000F078062802D00B2814D10BE0A06890F828
+:10CD1000631018290ED10021E0E92811012100F843
+:10CD2000371C07E0A06890F86310122902D1002197
+:10CD300080F86910280601D50820A070680521D563
+:10CD4000A068B0F8581082881144891DF27889B221
+:10CD5000012A03D02AB1182A07D00FE0A0F8FA1050
+:10CD60000CE0D0F8F000818008E090F8E8201AB9D3
+:10CD700090F8E92002B90021A0F8EA103046BDE899
+:10CD8000704092E75BE43EB505466846F7F713FC52
+:10CD900000B9FFDF2221009801F016FE0321009860
+:10CDA000FCF70DFF0098017821F010010170294671
+:10CDB000FCF734FF664C192D7ED2DFE805F0201811
+:10CDC0000D3ACDCDCE1262CDCECE55CDCDCDCDBC92
+:10CDD000CECE6C87A0CDA900A168009891F8ED1087
+:10CDE00003E0A168009891F8C4100171B5E0A06853
+:10CDF000D0F8F4100098491CFCF749FFADE0A16899
+:10CE0000009851F8F02F927902710A6812894271E4
+:10CE1000120A82710A685289C271120A02720A6881
+:10CE200092894272120A82720968C989FCF708FF66
+:10CE300093E0A068D0F8F0100098091DFCF736FFC9
+:10CE4000A068D0F8F01000980C31FCF739FFA0680A
+:10CE5000D0F8F01000981E31FCF738FFA168009858
+:10CE6000B831FCF73FFF78E06269009811780171F2
+:10CE700091884171090A81715188C171090A017251
+:10CE80006BE03449D1E90001CDE9010101A9009825
+:10CE9000FCF742FF61E0A068B0F844100098FCF78E
+:10CEA00045FFA068B0F846100098FCF743FFA06863
+:10CEB000B0F84010009800E04EE0FCF73FFFA0689B
+:10CEC000B0F842100098FCF73DFF46E0A068B0F8CB
+:10CED00040100098FCF732FFA068B0F842100098AC
+:10CEE000FCF730FFA068B0F844100098FCF71EFF74
+:10CEF000A068B0F846100098FCF71CFF2DE0A16870
+:10CF0000009891F80821027191F80911417124E00B
+:10CF1000A06890F8E800FCF7D5FB01460098FCF704
+:10CF20004DFFA06890F8E900FCF7CCFB01460098A3
+:10CF3000FCF748FF11E0A06890F8E5100098FCF7B6
+:10CF400063FFA06890F8E4100098FCF761FF04E02C
+:10CF50006C01002078EF0100FFDFF7F741FB00B91B
+:10CF6000FFDF0098FFF7A1FE3EBDFA48806890F809
+:10CF7000E81009B990F8511080F8511090F8E910B4
+:10CF800009B990F8521080F852100020FEF774BED4
+:10CF9000F8B5F04E00250446B060B5807570B570E8
+:10CFA00035700088F7F704FBB0680088F7F729FBB5
+:10CFB000B4F8D000B168401C82B201F15800FCF70F
+:10CFC0009AF900B1FFDF94F86400242809D1B4F87D
+:10CFD0005810B4F8EA00081A00B2002801DB707893
+:10CFE00020B194F86300242808D015E0FFF7BDFFB6
+:10CFF00084F86450B16881F87B500DE0B4F85810A3
+:10D00000B4F8EA00081A00B2002805DB707818B9F5
+:10D01000FFF7ABFF84F86350A4F8D050FEF763FD30
+:10D0200000281CD1B06890F8C300FF2801D0FFF79A
+:10D03000AAFEC9480090C94BC94A21462846FBF7B9
+:10D0400088F9B0680023052190F863205830FCF778
+:10D050000CFA002803D0BDE8F840FBF71CB8F8BD77
+:10D0600010B5FEF740FD20B10020BDE8104001469C
+:10D07000B3E5BDE81040FBF7E1B970B50C460646D4
+:10D0800015464FF4A071204601F0C0FC268005B97A
+:10D09000FFDF286844F8F00F68686060A868E06403
+:10D0A00084E4F2F77EBE2DE9F0410D4607460621E5
+:10D0B000F2F76EFD040040D0D4F83C110026087849
+:10D0C00058B14A8821888A4207D108280FD00D28F4
+:10D0D0001BD00C2829D0072843D094F81201E0B3C4
+:10D0E0006E700F20287084F812616F80ADE06E7052
+:10D0F00008202870D4F83C014168C5F80210816806
+:10D10000C5F806108089688139E00846F2F772FE9A
+:10D110000746F2F71EFB78B96E700D202870D4F820
+:10D120003C014068C5F8020012E00846F2F762FED2
+:10D130000746F2F70EFB08B1002080E46E700C2069
+:10D140002870D4F83C014168C5F802100089E880D5
+:10D15000D4F83C010670384600E014E0F2F7F3FA28
+:10D1600073E06E7007202870D4F83C014168C5F860
+:10D1700002108168C5F80610C068C5F80A00D4F826
+:10D180003C01067061E094F81401A8B16E7014209F
+:10D1900028700CE084F81461D4F81601C5F8020078
+:10D1A000D4F81A01C5F80600B4F81E01688194F895
+:10D1B00014010028EED148E094F8200180B16E708F
+:10D1C0001A20287084F82061D4F82201C5F80200E2
+:10D1D000D4F82601C5F80600B4F82A01688134E0C5
+:10D1E00094F82C0148B16E701B20287084F82C61D3
+:10D1F000D4F82E01C5F8020027E094F80C0170B1B4
+:10D200006E701820287005E084F80C61D4F80E01C7
+:10D21000C5F8020094F80C010028F5D115E094F847
+:10D220003201002889D06E701520287009E000BFF7
+:10D2300084F83261D4F83401C5F80200B4F838013A
+:10D24000E88094F832010028F2D101200EE4414A2E
+:10D250005061D170704770B50D4604464FE000BF75
+:10D26000B4F8D000401CA4F8D000B4F87C00401CF6
+:10D27000A4F87C00204600F0F3F9B8B1B4F87400CB
+:10D28000401CA4F87400204600F0D9F9B4F87400EA
+:10D29000B4F87610884209D30020A4F87400012065
+:10D2A00084F812012B48C078EEF72CFB94F8860026
+:10D2B00020B1B4F88200401CA4F8820094F88A00DF
+:10D2C00020B1B4F88800401CA4F8880094F8EC0061
+:10D2D00040B994F866200023012104F15800FCF7BE
+:10D2E000C4F820B1B4F88000401CA4F880002046A7
+:10D2F000FEF784FFB4F85800401CA4F858006D1ED7
+:10D30000ADB2ADD23EE5134AC2E90601704770B531
+:10D310000446B0F87C0094F86710D1B1B4F87E10E0
+:10D320000D1A2D1F94F87A0040B194F86320002361
+:10D33000092104F15800FCF798F8B8B1B4F874600A
+:10D34000204600F08DF980B1B4F87600801B001FF4
+:10D350000CE007E06C010020DBCB010081CC010078
+:10D36000DDCC0100C0F10205DCE72846A84200DA66
+:10D370000546002D01DC002004E5A8B202E510B549
+:10D38000012808D0022808D0042808D0082806D090
+:10D39000FFDF204610BD0124FBE70224F9E7032448
+:10D3A000F7E710B5FEF7ABFCFEF787FCBDE81040D1
+:10D3B0001520FEF742BC70B5B14CA06890F8630030
+:10D3C0001F2804D0607840F001006070DAE4206922
+:10D3D000FCF7EAFCD8B1206901220179407901F01B
+:10D3E000070161F30705294600F0070060F30F21EC
+:10D3F000A06880F886200022A0F88220232280F8EE
+:10D400006320D0F80801BDE87040FEF7BDBD0120E3
+:10D41000FEF768FFBDE870401E20FEF72DBC70B51A
+:10D42000974C00230A21A06890F863205830FCF73D
+:10D430001CF818B32069FCF791FCA8B1A568206915
+:10D44000FCF788FC2887A5682069FCF77FFC6887C3
+:10D45000A5682069FCF780FCA887A5682069FCF70F
+:10D4600077FCE887FEF74BFCA168002081F8860076
+:10D4700081F86300BDE87040FEF71FBC607840F0A3
+:10D48000010060707EE47E4810B580680088F2F785
+:10D49000B1FCBDE81040F2F747B910B5784CA3686D
+:10D4A00093F86300162802D00220607010BD6078E7
+:10D4B0000028FBD1D3F8F000002200F11E010E304D
+:10D4C000A833FBF77FFFA0680021C0E926110121E6
+:10D4D00080F86810182180F8631010BD10B5684CF2
+:10D4E000A06890F86310132902D00220607010BD6C
+:10D4F00061780029FBD1D0F8F0100088498881427A
+:10D5000000D0FFDFA068D0F8F01020692631FCF7CA
+:10D51000F6FBA1682069BC31FCF7F9FBA168162075
+:10D5200081F8630010BD10B5554C207900071BD55C
+:10D530006078002818D1A068002190F8C300FEF799
+:10D5400017FEA06890F8C300FF2800D1FFDFA06895
+:10D55000FF2180F8C31090F86610082904D1022139
+:10D560002170002180F8661010BD70B5444D242153
+:10D570000024A86890F86420212A05D090F8632040
+:10D58000232A18D0FFDF8BE590F8E82012B990F835
+:10D59000E9202AB180F86410A86880F88A407FE505
+:10D5A00000F8644FC47590F8A2000028F4D0002061
+:10D5B000FEF762FBF0E790F8E82012B990F8E92056
+:10D5C0002AB180F86310A86880F8864068E580F882
+:10D5D00063400020FEF750FBF5E770B5284C0025AE
+:10D5E000A068D0F8F01003884A889A4219D10978C7
+:10D5F000042916D190F86320002319465830FBF710
+:10D6000034FF00B9FFDFA06890F88E10890703D4BB
+:10D61000012180F8631004E080F88650D0F8F00013
+:10D620000570A0680023194690F864205830FBF775
+:10D630001CFF002802D0A06880F88A5030E5B0F8BE
+:10D640007620B0F874108A4201D3511A00E000210C
+:10D650008288521D8A4202D3012180F87A107047D5
+:10D6600010B590F8691041B990F8632000230621A5
+:10D670005830FBF7FAFE002800D0012010BD000052
+:10D680006C0100202DE9F0410C4611490D68104A4B
+:10D69000104908321160A0F120012A2901D301208C
+:10D6A0000CE03E2810D040CC0B4F94E80E0007EB66
+:10D6B0008000241F50F8807C3046B8472060044822
+:10D6C000001D0560BDE8F0812046E3F789FDF5E720
+:10D6D000100502400100000180EF010010B5524822
+:10D6E00000F070FA00B1FFDF4F48401C00F06AFA0A
+:10D6F000002800D0FFDF10BD2DE9F14F4B4ED6F8CA
+:10D7000000B00127484800F065FADFF81C8128B90D
+:10D710005FF0000708F1010000F072FA444C0025A8
+:10D720004FF0030901206060C4F80051C4F80451AF
+:10D73000009931602060DFF8FCA018E0DAF8000002
+:10D74000C00614D50E2000F064F8EFF3108010F03E
+:10D75000010072B600D00120C4F80493D4F800117F
+:10D7600019B9D4F8041101B920BF00B962B6D4F8D0
+:10D77000000118B9D4F804010028DFD0D4F804015E
+:10D780000028CFD137B1C6F800B008F1010000F091
+:10D7900021FA11E008F1010000F01CFA0028B9D1CB
+:10D7A000C4F80893C4F80451C4F800510E2000F0E6
+:10D7B00030F81D4800F024FA0020BDE8F88F2DE96C
+:10D7C000F0438DB00D46064600240DF110090DF111
+:10D7D000200817E004EB4407102255F8271068468C
+:10D7E00001F073F805EB870710224846796801F0CD
+:10D7F0006CF86846FFF780FF10224146B86801F0D8
+:10D8000064F8641CB442E5DB0DB00020BDE8F08391
+:10D8100072E700F01F02012191404009800000F1F1
+:10D82000E020C0F8801270478C01002004E5004021
+:10D8300000E0004010ED00E0D7490020087070477C
+:10D8400070B5D64D01232B60D54B1C68002CFCD045
+:10D85000002407E00E6806601E68002EFCD0001D44
+:10D86000091D641C9442F5D3002028601868002824
+:10D87000FCD070BD70B5C84E0446CA4D3078022841
+:10D8800000D0FFDFAC4200D3FFDF7169C648012939
+:10D8900003D847F23052944201DD03224271491C01
+:10D8A0007161291BC160C0497078F4F7E9FC002858
+:10D8B00000D1FFDF70BD70B5B74C0D46617888426E
+:10D8C00000D0FFDFB74E082D4BD2DFE805F04A0449
+:10D8D0001E2D4A4A4A382078022800D0FFDF032054
+:10D8E0002070A078012801D020B108E0A06800F0E5
+:10D8F00043FD04E004F1080007C8FFF7A1FF05207D
+:10D900002070BDE87040F4F77FB9F4F771FA014672
+:10D910006068F4F77BFFB04202D2616902290BD341
+:10D920000320F5F726FA12E0F4F762FA0146606880
+:10D93000F4F76CFFB042F3D2BDE870409AE720786C
+:10D9400002280AD0052806D0FFDF04202070BDE899
+:10D95000704000F017B9022000E00320F5F709FA43
+:10D96000F3E7FFDF70BD70B50546F4F741FA8A4C66
+:10D9700060602078012800D0FFDF8B49012008700B
+:10D980000020087104208D6048718648C86002201C
+:10D9900020706078F4F774FC002800D1FFDF70BDC0
+:10D9A00010B57D4C207808B1112010BD7F48F4F7E8
+:10D9B000A6F96070202804D001202070002060614A
+:10D9C00010BD032010BD020B0121B0F5003F02D2B3
+:10D9D0009140774816E0B0F5802F04D2203A744881
+:10D9E0009140001D0EE0B0F5C02F04D2403A7048BF
+:10D9F0009140103006E0B0F5002F08D2603A6C4834
+:10DA0000914014300068084000D001207047002089
+:10DA100070472DE9F041144600EB84070E46054699
+:10DA20003F1F00F0BCFC4FF080510A69504306EBE9
+:10DA30008402121FB24201D2012200E000221CB176
+:10DA40000969B4EB910F02D90920BDE8F081594969
+:10DA50008D4216D3AF4214D3854205D2874203D2FA
+:10DA600045EA0600800701D01020EEE78E4208D379
+:10DA70003AB92846FFF7A7FF18B93846FFF7A3FFC2
+:10DA800008B10F20E1E74C484C490068884205D0B6
+:10DA9000224631462846FFF7D3FE10E0FFF780FF0D
+:10DAA0000028D2D13C4800218560C0E90364817020
+:10DAB0004FF4A97104FB01F01830FFF754FF002068
+:10DAC000C3E770B54FF08055044628693949B1FB6A
+:10DAD000F0F084420AD300F062FCA04201D810208A
+:10DAE00070BD28696043FFF76EFF08B10F2070BD5D
+:10DAF000314832490068884204D02869604300F008
+:10DB00003BFC0CE0FFF74CFF0028F0D129692248CC
+:10DB100061438160012181702948FFF724FF0020C3
+:10DB200070BD2449090BB1EB401F07D9404201EBFE
+:10DB30004011202903D34FF0FF307047002101200E
+:10DB40008840401E704770B505460C460020FFF720
+:10DB5000E8FF28420ED10120FFF7E3FF204209D160
+:10DB60000220FFF7DEFF104204D10320FFF7D9FFA8
+:10DB7000184201D00F2070BD21462846BDE87040F4
+:10DB800000F050BE10B5044C6078F4F712F900B9FB
+:10DB9000FFDF0020207010BD9001002004E501404F
+:10DBA00000E40140105C0C0084110020B7D8010093
+:10DBB0000006004000300200B0000020BEBAFECADD
+:10DBC0007C5E01000021017008467047014600207C
+:10DBD00008707047EFF3108101F0010172B602780E
+:10DBE000012A01D0012200E000220123037001B9C3
+:10DBF00062B60AB1002070474FF400507047E9E761
+:10DC0000EFF3108111F0010F72B64FF000020270B5
+:10DC100000D162B600207047F2E700004C49096865
+:10DC20000160002070474A490860002070470121C8
+:10DC30008A0720B1012804D042F20400704791679E
+:10DC400000E0D1670020704742490120086042F29D
+:10DC50000600704708B504233E4A1907103230B158
+:10DC6000C1F80433106840F0010010600BE0106848
+:10DC700020F001001060C1F808330020C1F808014D
+:10DC8000354800680090002008BD011F0B2909D805
+:10DC9000304910310A6822F01E0242EA4000086052
+:10DCA0000020704742F205007047000100F18040FB
+:10DCB000C0F8041900207047000100F18040C0F84E
+:10DCC000081900207047000100F18040D0F80009D9
+:10DCD000086000207047012801D9072070471F4ABB
+:10DCE00052F8200002680A430260002070470128B1
+:10DCF00001D907207047194A52F8200002688A4368
+:10DD0000026000207047012801D907207047134A9C
+:10DD100052F8200000680860002070470200104997
+:10DD20004FF0000003D0012A01D0072070470A609D
+:10DD300070474FF080410020C1F808014FF0E0200B
+:10DD4000802180F800140121C0F800117047000004
+:10DD500000040040000500400801004028F00100D8
+:10DD6000780500406249634B0A6863499A42096832
+:10DD700001D1C1F310010160002070475C495D4B87
+:10DD80000A685D49091D9A4201D1C0F3100008607C
+:10DD9000002070475649574B0A68574908319A4244
+:10DDA00001D1C0F3100008600020704730B5504B1F
+:10DDB000504D1C6842F20803AC4202D0142802D233
+:10DDC00003E0112801D3184630BDC3004B48184466
+:10DDD000C0F81015C0F81425002030BD4449454B4B
+:10DDE0000A6842F209019A4202D0062802D203E0F0
+:10DDF000042801D308467047404A012142F83010F8
+:10DE0000002070473A493B4B0A6842F209019A42A6
+:10DE100002D0062802D203E0042801D30846704746
+:10DE2000364A012102EBC00041600020704770B506
+:10DE30002F4A304E314C156842F2090304EB800240
+:10DE4000B54204D0062804D2C2F8001807E004281E
+:10DE500001D3184670BDC1F31000C2F800080020BD
+:10DE600070BD70B5224A234E244C156842F2090356
+:10DE700004EB8002B54204D0062804D2D2F8000890
+:10DE800007E0042801D3184670BDD2F80008C0F39B
+:10DE900010000860002070BD174910B508311848FF
+:10DEA00008601120154A002102EBC003C3F81015C9
+:10DEB000C3F81415401C1428F6D3002006E00428EB
+:10DEC00004D302EB8003C3F8001807E002EB8003E1
+:10DED000D3F80048C4F31004C3F80048401C0628D7
+:10DEE000EDD310BD044906480831086070470000B2
+:10DEF000B0000020BEBAFECA00F5014000F00140AB
+:10DF00000000FEFF7D4B1B6803B19847BFF34F8FA6
+:10DF10007B4801687B4A01F4E06111430160BFF373
+:10DF20004F8FFEE710B5EFF3108010F0010F72B6BF
+:10DF300001D0012400E0002400F0D6F850B1E3F74E
+:10DF4000E9F9F3F722FDF4F7B7FEEDF72CFC6E4983
+:10DF50000020086004B962B6002010BD70B50C4600
+:10DF60000646EFF3108010F0010F72B601D00125C4
+:10DF700000E0002500F0B8F818B105B962B6082035
+:10DF800070BDE3F743F9E3F7C9F9024600204309FE
+:10DF90009B0003F1E02300F01F01D3F80031CB40D8
+:10DFA000D9071BD0202803D222FA00F1C90722D1B9
+:10DFB00041B2002906DA01F00F0101F1E02191F8E8
+:10DFC000141D03E001F1E02191F80014490908292A
+:10DFD00011D281B101290ED004290CD0401C642833
+:10DFE000D5D3EDF7B7FB4849484808602046F5F718
+:10DFF000A3FA60B904E005B962B641F2010070BD50
+:10E000003E4804602EB13046F5F7E3FA18B110240B
+:10E0100029E03F4E16E03078022802D94FF48054B0
+:10E0200021E007240028707801D0E0B908E0D0B1E1
+:10E03000202818D8B078212815D8012813D001E05D
+:10E04000B07880B93349802081F8140DE3F766F980
+:10E050003146F4F717FEF3F757FC00F0D3F93046DA
+:10E06000E3F72AF9044605B962B61CB1FFF75AFF77
+:10E07000204670BD002070BD10B5044600F034F895
+:10E0800000B101202070002010BD2349086000204D
+:10E09000704770B50C4621490D682049204E083163
+:10E0A0000E60102807D011280CD012280FD013288A
+:10E0B00011D0012013E0D4E90001FFF74FFF3546EE
+:10E0C00020600DE0FFF72EFF0025206008E02068AB
+:10E0D000FFF7D2FF03E010492068086000202060AD
+:10E0E0000E48001D056070BD074808490068884259
+:10E0F00001D101207047002070470000A8010020D6
+:10E100000CED00E00400FA05B0000020BEBAFECA23
+:10E1100030F001000BE000E0040000201005024098
+:10E120000100000100B5744910F1080F19D00CDC92
+:10E1300010F1280F1DD010F1140F18D010F1100F8E
+:10E1400013D010F10C0F08D10DE010F1040F06D020
+:10E1500080B103280ED004280CD0FFDF00BDFC20C6
+:10E1600008E0F82006E0F42004E0F02002E0EC20D3
+:10E1700000E0D820086000BD5F4900B5091D0128F6
+:10E1800003D0022803D0FFDF00BD032000E00420FD
+:10E19000086000BD584800B5001D016801F00F017E
+:10E1A000032905D0006800F00F00042802D0FFDF2B
+:10E1B000012000BD022000BD504930B1012803D12B
+:10E1C000086840F00100086070470868FBE72DE927
+:10E1D000F04105461F464FF4C8604FF47A76012996
+:10E1E00012D0022A17D046490C181846F6F746F9FD
+:10E1F00004443846F6F774F9204400F27120B0FB6D
+:10E20000F6F0281ABDE8F081022A00D1304649F61E
+:10E2100008514418E9E73B493046E5E770B5154633
+:10E220000646012914D0022B15D0354CFA3410467D
+:10E23000F6F731F94FF47A71012D0FD04A10A21A76
+:10E24000104400F28920B0FBF1F0301A801E70BD3E
+:10E2500049F6CA64EBE72B4C643CE7E70A46EEE775
+:10E260002DE9F041054614464FF4C8604FF47A7624
+:10E27000012911D0022B16D021490F181046F6F7AC
+:10E280000AF9012C12D04FF4FA71791A0844643853
+:10E29000B0FBF6F0281AB5E7022B00D1304649F65C
+:10E2A00008514718EAE717493046E6E73146ECE7F8
+:10E2B0002DE9F04105460C4616461046F6F7DEF805
+:10E2C00005EB4501C1EBC51100EBC1004FF47A75B8
+:10E2D000012C0FD0691047182046F6F7DCF8381AE1
+:10E2E00000F60F60B0FBF5F43046F6F7BDF82044B9
+:10E2F000401D87E72946EEE70C1500405016004008
+:10E30000A2240200683602002DE9FE430C46804636
+:10E31000FBF76AFC074698F80160204601A96A46A7
+:10E32000F1F7F3F905000DD0012F02D00320BDE86D
+:10E33000FE83204602AA0199F1F709F90298B0F884
+:10E3400003000AE0022F14D1042E12D3B8F8030000
+:10E35000BDF80020011D914204D8001D80B2A9190A
+:10E36000814202D14FF00000E1E702D24FF00100FC
+:10E37000DDE74FF00200DAE70B4A022111600B499A
+:10E380000B68002BFCD0084B1B1D18600868002888
+:10E39000FCD00020106008680028FCD070474FF0C7
+:10E3A000805040697047000004E5014000E40140EE
+:10E3B00002000B464FF00000014620D0012A04D095
+:10E3C000022A04D0032A0DD103E0012002E002203A
+:10E3D00015E00320072B05D2DFE803F00406080A46
+:10E3E0000C0E100007207047012108E0022106E012
+:10E3F000032104E0042102E0052100E00621F3F7F7
+:10E400009ABC0000F648052181700021017041701E
+:10E410007047F4490A78012A05D0CA681044C860D8
+:10E420004038F4F7C0B98A6810448860F8E70028DB
+:10E4300019D00378EC49ED4A13B1012B0ED011E04D
+:10E440000379012B00D06BB943790BB1012B09D1B2
+:10E450008368643B8B4205D2C0680EE00379012BD0
+:10E4600002D00BB10020704743790BB1012BF9D1D9
+:10E47000C368643B8B42F5D280689042F2D8012099
+:10E480007047D84910B501220A700279A2B1002262
+:10E490000A71427992B104224A718268D04C523298
+:10E4A0008A60C0681434C8606060F3F7A1FCCC498E
+:10E4B00020600220887010BD0322E9E70322EBE709
+:10E4C00070B5044609B1012000E00320C54D0021CC
+:10E4D0002970217901B100202871607968B1042088
+:10E4E000BF4E6871A168F068F3F78BF9A860E06827
+:10E4F0005230E8600320B07070BD0320F0E72DE9D2
+:10E50000F04105460226F4F77AF8006800B1FFDF13
+:10E51000B34C01273DB12878B0B1012805D00228BD
+:10E5200010D0032813D027710CE06868C82807D3DF
+:10E53000F4F79FF920B16868FFF76BFF012603E04D
+:10E54000002601E000F056F93046BDE8F081207861
+:10E550000028F7D16868FFF76AFF0028E3D06868F1
+:10E56000017879B1A078042800D0FFDF0121686824
+:10E57000FFF7A6FF9B49E078F3F782FE0028E1D180
+:10E58000FFDFDFE7FFF77DFF6770DBE72DE9F0478F
+:10E59000934C8846E178884200D0FFDFDFF8409254
+:10E5A000002501278F4E09F11409B8F1080F75D223
+:10E5B000DFE808F0040C28527A808D95A0780328B3
+:10E5C00002D0022800D0FFDFBDE8F087A078032842
+:10E5D00002D0022800D0FFDF0420A070257120782F
+:10E5E000002878D1FFF715FF3078012806D0B068F1
+:10E5F000E06000F02BF92061002060E0E078F3F7A4
+:10E600003CFDF5E7A078032802D0022800D0FFDF08
+:10E61000207800286DD1A078032816D0F3F7E8FB06
+:10E6200001464F46D9F80000F4F7F0F800280EDB59
+:10E63000796881420BDB081AF0606A49E078F3F7E9
+:10E640001FFE0028C0D1FFDFBEE7042028E0042021
+:10E65000F4F78FFBA570B7E7A078032802D0022853
+:10E6600000D0FFDF207888BBA078032817D0F3F70D
+:10E67000BFFB01464F46D9F80000F4F7C7F8002861
+:10E68000E5DB79688142E2DB081AF0605549E07801
+:10E69000F3F7F6FD002897D1FFDF95E740E005206E
+:10E6A000F4F767FBA7708FE7A078042800D0FFDF9E
+:10E6B000022004E0A078042800D0FFDF0120A16838
+:10E6C0008847FFF71CFF054630E004E011E0A07822
+:10E6D000042800D0FFDFBDE8F04700F08BB8A07839
+:10E6E000042804D0617809B1022800D0FFDF207827
+:10E6F00018B1BDE8F04700F086B8207920B10620B7
+:10E70000F4F737FB2571CDE7607838B13549E0780B
+:10E71000F3F7B6FD00B9FFDF657055E70720BFE7E7
+:10E72000FFDF51E73DB1012D03D0FFDF022DF9D10D
+:10E730004AE70420C3E70320C1E770B5050005D010
+:10E74000274CA078052803D0112070BD102070BD83
+:10E750002748F3F7D4FAE070202803D00020A56002
+:10E76000A07070BD032070BD1D4810B5017809B1BF
+:10E77000112010BD8178052906D0012906D029B1C4
+:10E7800001210170002010BD0F2010BD00F03BF8EA
+:10E79000F8E770B5124C0546A07808B1012809D1F8
+:10E7A00055B12846FFF743FE40B1287840B1A07824
+:10E7B000012809D00F2070BD102070BD072070BD4A
+:10E7C0002846FFF75EFE03E000212846FFF778FEAB
+:10E7D0000449E078F3F754FD00B9FFDF002070BD75
+:10E7E000AC010020941100203D860100FF1FA1070D
+:10E7F0008DE501000A4810B5006900F01FF8BDE87A
+:10E800001040F3F701BA064810B5C078F3F7D1FA13
+:10E8100000B9FFDF0820F4F7ACFABDE81040F1E5DD
+:10E82000AC01002010B50E4C2060201D01600C488A
+:10E8300010300260001D0360002010BD09490A6805
+:10E8400048F202139A4302430A607047054A11686E
+:10E8500048F2021301EA0300994311607047000077
+:10E8600000060040C8060240704770477047704776
+:10E87000704740EA010310B59B070FD1042A0DD35E
+:10E8800010C808C9121F9C42F8D020BA19BA884291
+:10E8900001D9012010BD4FF0FF3010BD1AB1D307D0
+:10E8A00003D0521C07E0002010BD10F8013B11F806
+:10E8B000014B1B1B07D110F8013B11F8014B1B1B2F
+:10E8C00001D1921EF1D1184610BD032A40F23080CA
+:10E8D00010F0030C00F0158011F8013BBCF1020FA1
+:10E8E000624498BF11F801CB00F8013B38BF11F822
+:10E8F000013BA2F1040298BF00F801CB38BF00F839
+:10E90000013B11F0030300F02580083AC0F00880B5
+:10E9100051F8043B083A51F804CBA0E80810F5E799
+:10E92000121D5CBF51F8043B40F8043BAFF300807C
+:10E93000D20724BF11F8013B11F801CB48BF11F8F1
+:10E94000012B24BF00F8013B00F801CB48BF00F8C1
+:10E95000012B704710B5203AC0F00B80B1E8185079
+:10E96000203AA0E81850B1E81850A0E81850BFF4B9
+:10E97000F5AF5FEA027C24BFB1E81850A0E8185058
+:10E9800044BF18C918C0BDE810405FEA827C24BFAC
+:10E9900051F8043B40F8043B08BF7047D20728BF3A
+:10E9A00031F8023B48BF11F8012B28BF20F8023B89
+:10E9B00048BF00F8012B704702F0FF0343EA03222F
+:10E9C00042EA024200F002B84FF000020429C0F00F
+:10E9D000128010F0030C00F01B80CCF1040CBCF191
+:10E9E000020F18BF00F8012BA8BF20F8022BA1EBE3
+:10E9F0000C0100F00DB85FEAC17C24BF00F8012BC8
+:10EA000000F8012B48BF00F8012B70474FF00002BF
+:10EA100000B5134694469646203922BFA0E80C5014
+:10EA2000A0E80C50B1F12001BFF4F7AF090728BFEF
+:10EA3000A0E80C5048BF0CC05DF804EB890028BF6B
+:10EA400040F8042B08BF704748BF20F8022B11F094
+:10EA5000804F18BF00F8012B704770477047704710
+:10EA600070470000FEDF04207146084219D1069964
+:10EA7000124A914215DC069902394878DF2810D1F4
+:10EA80000878FE2807D0FF280BD14FF001004FF087
+:10EA900000020B4B184741F201000099019A084B04
+:10EAA0001847084B002B02D01B68DB6818474FF053
+:10EAB000FF3071464FF00002014B18470030020052
+:10EAC00005DF010004000020184819497047FFF7CE
+:10EAD000FBFFE2F773FB00BD4FF480501549096856
+:10EAE000884203D1144A13605B68184700BD0000D8
+:10EAF00020BFFDE74FF480500E490968884210D1CD
+:10EB00000E4B18684FF0FF318842F1D080F308882F
+:10EB10004FF02021884204DD0948026803210A439E
+:10EB200002600848804708488047FFDFA81100209E
+:10EB3000A811002000000020040000200030020086
+:10EB40001409004011360100D9EA01000420714681
+:10EB5000084202D0EFF3098101E0EFF308818869F0
+:10EB600002380078102813DB20280FDB2B280BDB62
+:10EB70000A4A12680A4B9A4203D1602804DB094A08
+:10EB80001047022008607047074A1047074A10479D
+:10EB9000074A12682C32126810470000B0000020AB
+:10EBA000BEBAFECA2113000085D6010093E0010021
+:10EBB000040000200D4B0E4908470E4B0C49084736
+:10EBC0000D4B0B4908470D4B094908470C4B0849A9
+:10EBD00008470C4B064908470B4B054908470B4BA8
+:10EBE000034908470A4B024908470000A1B4000046
+:10EBF000B12F0000792F000015B10000A3B0000074
+:10EC0000ABB600003D1300003981000039B90000A7
+:10EC1000C9110000518B0000138D0000718E00009F
+:10EC2000958E0000CF8E0000038F0000358F00000E
+:10EC30006D8F0000BF8F0000298C0000A71200001C
+:10EC4000A7120000DB2200001F2300003F2300006A
+:10EC5000C5230000E9240000A7250000D7250000F7
+:10EC600079260000A11F00009528000089290000D6
+:10EC7000A92900009F320000C3320000F3310000D8
+:10EC800047320000F532000089330000574500008C
+:10EC900007470000D74A0000ED4B0000774C00000A
+:10ECA000F54C0000594D00007D4E00004B4F000018
+:10ECB000B54F0000B7290000BD290000C72900009A
+:10ECC000711F00007F2A0000451F0000AD2B0000CF
+:10ECD000ED2B00004F2C0000A7120000A71200002F
+:10ECE000A71200006D5D0000F35D00000F5E0000E4
+:10ECF0002B5E0000B95F0000555E00005F5E000003
+:10ED0000A15E0000C35E00009F5F0000E15F0000A5
+:10ED1000A712000053780000737800007578000097
+:10ED2000B9780000E7780000D5790000637A000028
+:10ED3000777A0000C57A0000B57B00005B7D00009B
+:10ED4000857E0000616800009D7E0000A712000023
+:10ED5000A7120000F1A900005BAB0000AFAB000000
+:10ED60001BAC0000CBAC0000100110013A02000007
+:10ED70001A02000405060000938600008186000048
+:10ED8000FFFFFFFF0000FFFFE5A10000E11B000007
+:10ED90000D590000AB680000118400000000000065
+:10EDA000000002000000000000020000000000005F
+:10EDB0000001000000000000FF750000DF7500008A
+:10EDC0004D760000EF5C0000B15C0000D15C0000FB
+:10EDD0004F9D00007B9D0000839F0000513E00007E
+:10EDE0006D760000000000009D7600003D5D000093
+:10EDF000000000000000000000000000659E000010
+:10EE000000000000E53E0000D33B0000D33B0000C3
+:10EE1000B722000091A000002F6B00001F580000D7
+:10EE20007BD00100A1730100113C0000113C0000E7
+:10EE3000D9220000F3A00000B36B0000915800003D
+:10EE4000A3D00100B57301007001700140003800CB
+:10EE50005C0024004001F00100000300656C746256
+:10EE600000000000000000000000000000000000A2
+:10EE7000870000000000000000000000000000000B
+:10EE8000BE83605ADB0B376038A5F5AA9183886C86
+:10EE900001000000590301002112010000000001DF
+:10EEA0000206030405000000070000000000000047
+:10EEB000060000000A00000032000000730000009D
+:10EEC000B4000000B95F010091B80100874F010054
+:10EED000A78401009BAB0100A78401000950010039
+:10EEE0002D87010069A601002D870100FD4E01005C
+:10EEF000CF86010087AA0100CF8601004753010099
+:10EF000067880100DDAB010067880100555555D6C3
+:10EF1000BE898E000000A606340DC21300004A030D
+:10EF2000EE059208000096041409920DF401FA000F
+:10EF3000960064004B0032001E0014000A00050019
+:10EF4000020001000041000000000000AAAED7ABA3
+:10EF5000154120100C0802170D01010209090101D9
+:10EF6000060209181803010109090303055555553F
+:10EF7000252627D6BE898E0025410000000000000E
+:10EF800065DD01007DDD010095DD0100ADDD0100E5
+:10EF9000DDDD010005DE01002FDE010063DE010082
+:10EFA000C3DA010013DA010047DB0100C5DB010011
+:10EFB000D5DB010001DC0100BB2E0100C32E0100E6
+:10EFC000D52E01002FDC010049DC01001DDC010011
+:10EFD00027DC010055DC01008BDC0100ABDC01000B
+:10EFE000B9DC0100C7DC0100D7DC0100EFDC010067
+:10EFF00007DD01001DDD0100000000009FB20000E0
+:10F00000F5B200000BB30000B1E30100F9D6010036
+:10F01000BFD701003BE7010069E7010093E701006A
+:10F02000152D0100E53001001C05004020050040C1
+:10F030000010020054F0010008000020C001000090
+:10F040004411000084F00100C8010020E00F00001E
+:10F05000A011000001181328120250201A010222E8
+:10F060007C2720FB349B5F801280021A10135F09FB
+:10F070001B201C041AA20401980912BF237F01025D
+:04F080006B290000F8
+:00000001FF
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/armgcc/armgcc_s132v5_nrf52832_xxaa.ld nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/armgcc/armgcc_s132v5_nrf52832_xxaa.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/armgcc/armgcc_s132v5_nrf52832_xxaa.ld
@@ -0,0 +1,34 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x23000, LENGTH = 0x5d000
+  RAM (rwx) :  ORIGIN = 0x20001380, LENGTH = 0xec80
+}
+
+SECTIONS
+{
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/iar/iar_s132v5_nrf52832_xxaa.icf nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/iar/iar_s132v5_nrf52832_xxaa.icf
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/components/softdevice/s132v5/toolchain/iar/iar_s132v5_nrf52832_xxaa.icf
@@ -0,0 +1,37 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__ = 0x23000;
+/*-Memory Regions-*/
+define symbol __ICFEDIT_region_ROM_start__   = 0x23000;
+define symbol __ICFEDIT_region_ROM_end__     = 0x7ffff;
+define symbol __ICFEDIT_region_RAM_start__   = 0x20001380;
+define symbol __ICFEDIT_region_RAM_end__     = 0x2000ffff;
+export symbol __ICFEDIT_region_RAM_start__;
+export symbol __ICFEDIT_region_RAM_end__;
+/*-Sizes-*/
+define symbol __ICFEDIT_size_cstack__   = ;
+define symbol __ICFEDIT_size_heap__     = ;
+/**** End of ICF editor section. ###ICF###*/
+
+define memory mem with size = 4G;
+define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
+define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];
+
+
+define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
+define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };
+define block RO_END    with alignment = 8, size = 0     { };
+
+initialize by copy { readwrite };
+do not initialize  { section .noinit };
+
+keep { section .intvec };
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place in ROM_region   { readonly,
+                        block RO_END };
+place in RAM_region   { readwrite,
+                        block CSTACK,
+                        block HEAP };
+
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/main.c nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/main.c
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/main.c
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/main.c
@@ -57,23 +57,34 @@
 #include "ser_conn_handlers.h"
 #include "boards.h"
 #include "nrf_drv_clock.h"
-
+#include "app_timer.h"
 #include "nrf_log.h"
 #include "nrf_log_ctrl.h"
 #include "nrf_log_default_backends.h"
 #include "app_timer.h"
 #include "ser_phy_debug_comm.h"
+#include "ser_config.h"
 
-#if defined(APP_USBD_ENABLED) && APP_USBD_ENABLED
-#include "app_usbd_serial_num.h"
-#ifdef BOARD_PCA10059
+#if defined(NRF_DFU_TRIGGER_USB_INTERFACE_NUM) && defined(QSPI_ENABLED)
+#define BOARD_DETECTION 1
+#else
+#define BOARD_DETECTION 0
+#endif
+
+#if BOARD_DETECTION
 #include "nrf_dfu_trigger_usb.h"
+#include "nrf_drv_qspi.h"
+#define PCA10056_PIN_RESET 24
+#define PCA10059_PIN_RESET 19
 #endif
+
+
+#if defined(APP_USBD_ENABLED) && APP_USBD_ENABLED
+#include "app_usbd_serial_num.h"
 #include "app_usbd.h"
 
 static volatile bool m_usb_started;
 
-
 static void usbd_user_evt_handler(app_usbd_event_type_t event)
 {
     switch (event)
@@ -120,9 +131,6 @@ static void usbd_init(void)
 
 static void usbd_enable(void)
 {
-#ifdef BOARD_PCA10059
-    APP_ERROR_CHECK(nrf_dfu_trigger_usb_init());
-#endif
     APP_ERROR_CHECK(app_usbd_power_events_enable()); 
 
     /* Process USB events until USB is started. This is related to the fact that
@@ -138,6 +146,44 @@ static void usbd_enable(void)
 }
 #endif //APP_USBD_ENABLED
 
+
+typedef struct __attribute__((packed))
+{
+        uint32_t    magic_number;               /* Magic number to verify the presence of this structure in memory */
+        uint32_t    struct_version     : 8;     /* Version of this struct format */
+        uint32_t    rfu0               : 24;    /* Reserved for future use, shall be 0xFFFFFF */
+        uint32_t    revision_hash;              /* Unique revision identifier */
+        uint32_t    version_major      : 8;     /* Major version number */
+        uint32_t    version_minor      : 8;     /* Minor version number */
+        uint32_t    version_patch      : 8;     /* Patch version number */
+        uint32_t    rfu1               : 8;     /* Reserved for future use, shall be 0xFF */
+        uint32_t    sd_ble_api_version : 8;     /* SoftDevice BLE API version number */
+        uint32_t    transport_type     : 8;     /* Connectivity transport type, 1 = UART HCI */
+        uint32_t    rfu2               : 16;    /* Reserved for future use, shall be 0xFFFF */
+        uint32_t    baud_rate;                  /* UART transport baud rate */
+} version_info_t;
+#if defined ( __CC_ARM )
+static const version_info_t version_info __attribute__((at(0x50000))) = 
+#elif defined ( __GNUC__ ) || defined ( __SES_ARM )
+volatile static const version_info_t version_info  __attribute__ ((section(".connectivity_version_info"))) = 
+#elif defined ( __ICCARM__ )
+__root    const version_info_t version_info @ 0x50000 = 
+#endif
+{
+    .magic_number       = 0x46D8A517,
+    .struct_version     = 2,
+    .rfu0               = 0xFFFFFF,
+    .revision_hash      = 0,
+    .version_major      = APP_VERSION_MAJOR,
+    .version_minor      = APP_VERSION_MINOR,
+    .version_patch      = APP_VERSION_PATCH,
+    .rfu1               = 0xFF,
+    .sd_ble_api_version = NRF_SD_BLE_API_VERSION,
+    .transport_type     = 1,
+    .rfu2               = 0xFFFF,
+    .baud_rate          = SER_PHY_UART_BAUDRATE_VAL,
+};
+
 static void on_idle(void)
 {
 
@@ -169,18 +215,66 @@ static void on_idle(void)
 #endif
 }
 
+uint32_t timestamp(void)
+{
+  return DWT->CYCCNT;
+}
+
+#if BOARD_DETECTION
+void pin_to_default(uint8_t pin)
+{
+    if (pin != NRF_QSPI_PIN_NOT_CONNECTED)
+    {
+        nrf_gpio_cfg_default(pin);
+    }
+}
+#endif
+
 /**@brief Main function of the connectivity application. */
 int main(void)
 {
+    
+
+    CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
+    DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
+    /* Disable the SW part of the the access port protection scheme */
+    *(volatile uint32_t *) 0x40000558 = 0x5A;
+
     uint32_t err_code = NRF_SUCCESS;
 
-    APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
+    APP_ERROR_CHECK(NRF_LOG_INIT(timestamp, 64000000));
+
 
     NRF_LOG_DEFAULT_BACKENDS_INIT();
 
     NRF_LOG_INFO("BLE connectivity started");
 
-    bsp_board_init(BSP_INIT_LEDS);
+#if BOARD_DETECTION
+    uint32_t pin_reset = PCA10059_PIN_RESET;
+
+    nrf_drv_qspi_config_t config = NRF_DRV_QSPI_DEFAULT_CONFIG;
+
+    //Using qspi memory to de
+    err_code = nrf_drv_qspi_init(&config, NULL, NULL);
+    if (err_code == NRF_SUCCESS)
+    {
+        //qspi memory is present on pca10056
+        pin_reset = PCA10056_PIN_RESET;
+        nrf_drv_qspi_uninit();
+    }
+    else if (err_code == NRF_ERROR_TIMEOUT)
+    {
+        //pca10059 assumed when no qspi memory
+        nrf_drv_qspi_uninit();
+        pin_reset = PCA10059_PIN_RESET;
+        pin_to_default(config.pins.csn_pin);
+        pin_to_default(config.pins.io0_pin);
+        pin_to_default(config.pins.io1_pin);
+        pin_to_default(config.pins.io2_pin);
+        pin_to_default(config.pins.io3_pin);
+        pin_to_default(config.pins.sck_pin);
+    }
+#endif //BOARD_DETECTION
 
 #if (defined(SER_PHY_HCI_DEBUG_ENABLE) || defined(SER_PHY_DEBUG_APP_ENABLE))
     debug_init(NULL);
@@ -206,6 +300,8 @@ int main(void)
     }
 
     nrf_drv_clock_hfclk_request(NULL);
+    nrf_drv_clock_lfclk_request(NULL);
+
     while (!nrf_drv_clock_hfclk_is_running())
     {}
 
@@ -213,6 +309,10 @@ int main(void)
     usbd_init();
 #endif
 
+#if BOARD_DETECTION
+        APP_ERROR_CHECK(nrf_dfu_trigger_usb_init(pin_reset));
+#endif
+
     /* Open serialization HAL Transport layer and subscribe for HAL Transport events. */
     err_code = ser_hal_transport_open(ser_conn_hal_transport_event_handle);
     APP_ERROR_CHECK(err_code);
@@ -234,6 +334,8 @@ int main(void)
     {
         /* Process SoftDevice events. */
         app_sched_execute();
+
+        CRITICAL_REGION_ENTER();
         if (nrf_sdh_is_suspended())
         {
             // Resume pulling new events if queue utilization drops below 50%.
@@ -242,6 +344,7 @@ int main(void)
                 nrf_sdh_resume();
             }
         }
+        CRITICAL_REGION_EXIT();
 
         /* Process received packets.
          * We can NOT add received packets as events to the application scheduler queue because
@@ -251,6 +354,7 @@ int main(void)
         APP_ERROR_CHECK(err_code);
 
         on_idle();
+
     }
 }
 /** @} */
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -6,11 +6,19 @@ GROUP(-lgcc -lc -lnosys)
 MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
-  RAM (rwx) :  ORIGIN = 0x2000a8a8, LENGTH = 0x5758
+  RAM (rwx) :  ORIGIN = 0x2000ab20, LENGTH = 0x54e0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4211,132 +4408,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/ble_connectivity_s132_hci_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/ble_connectivity_s132_hci_pca10040.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/ble_connectivity_s132_hci_pca10040.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/ble_connectivity_s132_hci_pca10040.emProject
@@ -28,8 +28,8 @@
       linker_printf_fmt_level="long"
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
-      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000a8a8;RAM_SIZE=0x5758"
-      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000ab20;RAM_SIZE=0x54e0"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -6,11 +6,19 @@ GROUP(-lgcc -lc -lnosys)
 MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
-  RAM (rwx) :  ORIGIN = 0x2000a8a8, LENGTH = 0x5758
+  RAM (rwx) :  ORIGIN = 0x2000ab20, LENGTH = 0x54e0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -754,6 +821,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4512,132 +4709,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/ble_connectivity_s132_spi_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/ble_connectivity_s132_spi_pca10040.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/ble_connectivity_s132_spi_pca10040.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/ble_connectivity_s132_spi_pca10040.emProject
@@ -28,8 +28,8 @@
       linker_printf_fmt_level="long"
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
-      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000a8a8;RAM_SIZE=0x5758"
-      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000ab20;RAM_SIZE=0x54e0"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -6,11 +6,19 @@ GROUP(-lgcc -lc -lnosys)
 MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
-  RAM (rwx) :  ORIGIN = 0x2000a8a8, LENGTH = 0x5758
+  RAM (rwx) :  ORIGIN = 0x2000ab20, LENGTH = 0x54e0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -754,6 +821,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4512,132 +4709,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/ble_connectivity_s132_spi_5W_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/ble_connectivity_s132_spi_5W_pca10040.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/ble_connectivity_s132_spi_5W_pca10040.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/ble_connectivity_s132_spi_5W_pca10040.emProject
@@ -28,8 +28,8 @@
       linker_printf_fmt_level="long"
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
-      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000a8a8;RAM_SIZE=0x5758"
-      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000ab20;RAM_SIZE=0x54e0"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_spi_5W/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -6,11 +6,19 @@ GROUP(-lgcc -lc -lnosys)
 MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x5a000
-  RAM (rwx) :  ORIGIN = 0x2000a8a8, LENGTH = 0x5758
+  RAM (rwx) :  ORIGIN = 0x2000ab20, LENGTH = 0x54e0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4190,132 +4387,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/ble_connectivity_s132_uart_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/ble_connectivity_s132_uart_pca10040.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/ble_connectivity_s132_uart_pca10040.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/ble_connectivity_s132_uart_pca10040.emProject
@@ -28,8 +28,8 @@
       linker_printf_fmt_level="long"
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
-      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000a8a8;RAM_SIZE=0x5758"
-      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x26000;FLASH_SIZE=0x5a000;RAM_START=0x2000ab20;RAM_SIZE=0x54e0"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132_uart/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/Makefile
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/Makefile
@@ -0,0 +1,272 @@
+PROJECT_NAME     := ble_connectivity_132v3_hci_pca10040
+TARGETS          := nrf52832_xxaa
+OUTPUT_DIRECTORY := _build
+
+SDK_ROOT := ../../../../../..
+PROJ_DIR := ../../..
+
+$(OUTPUT_DIRECTORY)/nrf52832_xxaa.out: \
+  LINKER_SCRIPT  := ble_connectivity_gcc_nrf52.ld
+
+# Source files common to all targets
+SRC_FILES += \
+  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52.S \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
+  $(SDK_ROOT)/components/libraries/util/app_error.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
+  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/app_timer2.c \
+  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
+  $(SDK_ROOT)/components/libraries/crc16/crc16.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/drv_rtc.c \
+  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
+  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
+  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
+  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
+  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
+  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \
+  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
+  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
+  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
+  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52.c \
+  $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/ble_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/cond_field_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/hal/dtm_uart.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_error_handling.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_event_encoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_handlers.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_pkt_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_reset_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/common/ser_dbg_sd_str.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_hal_transport.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
+  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
+  $(PROJ_DIR)/main.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
+  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm_hw_nrf52.c \
+  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
+
+# Include folders common to all targets
+INC_FOLDERS += \
+  $(SDK_ROOT)/components \
+  $(SDK_ROOT)/components/serialization/connectivity/hal \
+  $(SDK_ROOT)/modules/nrfx/mdk \
+  $(SDK_ROOT)/components/libraries/scheduler \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers \
+  $(SDK_ROOT)/components/toolchain/cmsis/include \
+  $(SDK_ROOT)/components/libraries/queue \
+  $(SDK_ROOT)/components/libraries/timer \
+  $(SDK_ROOT)/components/boards \
+  $(SDK_ROOT)/components/serialization/connectivity \
+  $(SDK_ROOT)/components/libraries/strerror \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
+  $(SDK_ROOT)/components/libraries/crc16 \
+  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/serialization/common \
+  $(SDK_ROOT)/components/libraries/util \
+  ../config \
+  $(SDK_ROOT)/components/ble/common \
+  $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/libraries/ringbuf \
+  $(SDK_ROOT)/modules/nrfx/hal \
+  $(SDK_ROOT)/components/libraries/bsp \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers/nrf52 \
+  $(SDK_ROOT)/components/libraries/log \
+  $(SDK_ROOT)/modules/nrfx \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars \
+  $(SDK_ROOT)/integration/nrfx/legacy \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common \
+  $(SDK_ROOT)/components/libraries/delay \
+  $(SDK_ROOT)/external/segger_rtt \
+  $(SDK_ROOT)/components/libraries/atomic_fifo \
+  $(SDK_ROOT)/components/libraries/atomic \
+  $(SDK_ROOT)/components/libraries/sortlist \
+  $(SDK_ROOT)/components/libraries/memobj \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers \
+  $(SDK_ROOT)/components/serialization/common/transport \
+  $(SDK_ROOT)/components/libraries/timer/experimental \
+  $(SDK_ROOT)/components/softdevice/common \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
+  $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/external/fprintf \
+  $(SDK_ROOT)/components/libraries/log/src \
+
+# Libraries common to all targets
+LIB_FILES += \
+
+# Optimization flags
+OPT = -Os -g3
+# Uncomment the line below to enable link time optimization
+#OPT += -flto
+
+# C flags common to all targets
+CFLAGS += $(OPT)
+CFLAGS += -DAPP_TIMER_V2
+CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -DBOARD_PCA10040
+CFLAGS += -DBSP_DEFINES_ONLY
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DFLOAT_ABI_HARD
+CFLAGS += -DHCI_TIMER2
+CFLAGS += -DNRF52
+CFLAGS += -DNRF52832_XXAA
+CFLAGS += -DNRF52_PAN_74
+CFLAGS += -DNRF_SD_BLE_API_VERSION=3
+CFLAGS += -DS132
+CFLAGS += -DSER_CONNECTIVITY
+CFLAGS += -DSER_PHY_HCI
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs
+CFLAGS += -Wall -Werror
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in a separate section, this allows linker to discard unused ones
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin -fshort-enums
+
+# C++ flags common to all targets
+CXXFLAGS += $(OPT)
+
+# Assembler flags common to all targets
+ASMFLAGS += -g3
+ASMFLAGS += -mcpu=cortex-m4
+ASMFLAGS += -mthumb -mabi=aapcs
+ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+ASMFLAGS += -DAPP_TIMER_V2
+ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -DBOARD_PCA10040
+ASMFLAGS += -DBSP_DEFINES_ONLY
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DFLOAT_ABI_HARD
+ASMFLAGS += -DHCI_TIMER2
+ASMFLAGS += -DNRF52
+ASMFLAGS += -DNRF52832_XXAA
+ASMFLAGS += -DNRF52_PAN_74
+ASMFLAGS += -DNRF_SD_BLE_API_VERSION=3
+ASMFLAGS += -DS132
+ASMFLAGS += -DSER_CONNECTIVITY
+ASMFLAGS += -DSER_PHY_HCI
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+
+# Linker flags
+LDFLAGS += $(OPT)
+LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs
+
+nrf52832_xxaa: CFLAGS += -D__HEAP_SIZE=512
+nrf52832_xxaa: CFLAGS += -D__STACK_SIZE=2048
+nrf52832_xxaa: ASMFLAGS += -D__HEAP_SIZE=512
+nrf52832_xxaa: ASMFLAGS += -D__STACK_SIZE=2048
+
+# Add standard libraries at the very end of the linker input, after all objects
+# that may need symbols provided by these libraries.
+LIB_FILES += -lc -lnosys -lm
+
+
+.PHONY: default help
+
+# Default target - first one defined
+default: nrf52832_xxaa
+
+# Print all targets that can be built
+help:
+	@echo following targets are available:
+	@echo		nrf52832_xxaa
+	@echo		flash_softdevice
+	@echo		sdk_config - starting external tool for editing sdk_config.h
+	@echo		flash      - flashing binary
+
+TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc
+
+
+include $(TEMPLATE_PATH)/Makefile.common
+
+$(foreach target, $(TARGETS), $(call define_target, $(target)))
+
+.PHONY: flash flash_softdevice erase
+
+# Flash the program
+flash: default
+	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52832_xxaa.hex
+	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52832_xxaa.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+# Flash softdevice
+flash_softdevice:
+	@echo Flashing: s132_nrf52_3.0.0_softdevice.hex
+	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+erase:
+	nrfjprog -f nrf52 --eraseall
+
+SDK_CONFIG_FILE := ../config/sdk_config.h
+CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
+sdk_config:
+	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/ble_connectivity_gcc_nrf52.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -0,0 +1,108 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x61000
+  RAM (rwx) :  ORIGIN = 0x2000ac38, LENGTH = 0x53c8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+  .log_dynamic_data :
+  {
+    PROVIDE(__start_log_dynamic_data = .);
+    KEEP(*(SORT(.log_dynamic_data*)))
+    PROVIDE(__stop_log_dynamic_data = .);
+  } > RAM
+  .log_filter_data :
+  {
+    PROVIDE(__start_log_filter_data = .);
+    KEEP(*(SORT(.log_filter_data*)))
+    PROVIDE(__stop_log_filter_data = .);
+  } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+  .sdh_ble_observers :
+  {
+    PROVIDE(__start_sdh_ble_observers = .);
+    KEEP(*(SORT(.sdh_ble_observers*)))
+    PROVIDE(__stop_sdh_ble_observers = .);
+  } > FLASH
+  .sdh_soc_observers :
+  {
+    PROVIDE(__start_sdh_soc_observers = .);
+    KEEP(*(SORT(.sdh_soc_observers*)))
+    PROVIDE(__stop_sdh_soc_observers = .);
+  } > FLASH
+    .nrf_queue :
+  {
+    PROVIDE(__start_nrf_queue = .);
+    KEEP(*(.nrf_queue))
+    PROVIDE(__stop_nrf_queue = .);
+  } > FLASH
+  .log_const_data :
+  {
+    PROVIDE(__start_log_const_data = .);
+    KEEP(*(SORT(.log_const_data*)))
+    PROVIDE(__stop_log_const_data = .);
+  } > FLASH
+    .nrf_balloc :
+  {
+    PROVIDE(__start_nrf_balloc = .);
+    KEEP(*(.nrf_balloc))
+    PROVIDE(__stop_nrf_balloc = .);
+  } > FLASH
+  .sdh_state_observers :
+  {
+    PROVIDE(__start_sdh_state_observers = .);
+    KEEP(*(SORT(.sdh_state_observers*)))
+    PROVIDE(__stop_sdh_state_observers = .);
+  } > FLASH
+  .sdh_stack_observers :
+  {
+    PROVIDE(__start_sdh_stack_observers = .);
+    KEEP(*(SORT(.sdh_stack_observers*)))
+    PROVIDE(__stop_sdh_stack_observers = .);
+  } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
+  .log_backends :
+  {
+    PROVIDE(__start_log_backends = .);
+    KEEP(*(SORT(.log_backends*)))
+    PROVIDE(__stop_log_backends = .);
+  } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/config/sdk_config.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/config/sdk_config.h
@@ -0,0 +1,4703 @@
+/**
+ * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#ifndef SDK_CONFIG_H
+#define SDK_CONFIG_H
+// <<< Use Configuration Wizard in Context Menu >>>\n
+#ifdef USE_APP_CONFIG
+#include "app_config.h"
+#endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_BLE 
+
+//==========================================================
+// <q> BLE_DTM_ENABLED  - ble_dtm - Module for testing RF/PHY using DTM commands
+ 
+
+#ifndef BLE_DTM_ENABLED
+#define BLE_DTM_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Drivers 
+
+//==========================================================
+// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
+//==========================================================
+#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_CLOCK_ENABLED 1
+#endif
+// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef NRFX_CLOCK_CONFIG_LF_SRC
+#define NRFX_CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
+#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
+#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
+#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
+#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
+#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
+//==========================================================
+#ifndef NRFX_PRS_ENABLED
+#define NRFX_PRS_ENABLED 1
+#endif
+// <q> NRFX_PRS_BOX_0_ENABLED  - Enables box 0 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_0_ENABLED
+#define NRFX_PRS_BOX_0_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_1_ENABLED  - Enables box 1 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_1_ENABLED
+#define NRFX_PRS_BOX_1_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_2_ENABLED  - Enables box 2 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_2_ENABLED
+#define NRFX_PRS_BOX_2_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_3_ENABLED  - Enables box 3 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_3_ENABLED
+#define NRFX_PRS_BOX_3_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_4_ENABLED  - Enables box 4 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_4_ENABLED
+#define NRFX_PRS_BOX_4_ENABLED 1
+#endif
+
+// <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_PRS_CONFIG_LOG_ENABLED
+#define NRFX_PRS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_PRS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_PRS_CONFIG_LOG_LEVEL
+#define NRFX_PRS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_PRS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_INFO_COLOR
+#define NRFX_PRS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_PRS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
+#define NRFX_PRS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
+//==========================================================
+#ifndef NRFX_UARTE_ENABLED
+#define NRFX_UARTE_ENABLED 1
+#endif
+// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
+#ifndef NRFX_UARTE0_ENABLED
+#define NRFX_UARTE0_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
+#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
+#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10289152=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
+#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
+#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
+#define NRFX_UARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
+#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
+//==========================================================
+#ifndef NRFX_UART_ENABLED
+#define NRFX_UART_ENABLED 1
+#endif
+// <o> NRFX_UART0_ENABLED - Enable UART0 instance 
+#ifndef NRFX_UART0_ENABLED
+#define NRFX_UART0_ENABLED 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
+#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
+#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3866624=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7729152=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10309632=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15462400=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30924800=> 115200 baud 
+// <61845504=> 230400 baud 
+// <67108864=> 250000 baud 
+// <123695104=> 460800 baud 
+// <247386112=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UART_CONFIG_LOG_ENABLED
+#define NRFX_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UART_CONFIG_LOG_LEVEL
+#define NRFX_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_INFO_COLOR
+#define NRFX_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
+#define NRFX_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
+//==========================================================
+#ifndef NRF_CLOCK_ENABLED
+#define NRF_CLOCK_ENABLED 1
+#endif
+// <o> CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef CLOCK_CONFIG_LF_SRC
+#define CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <q> CLOCK_CONFIG_LF_CAL_ENABLED  - Calibration enable for LF Clock Source
+ 
+
+#ifndef CLOCK_CONFIG_LF_CAL_ENABLED
+#define CLOCK_CONFIG_LF_CAL_ENABLED 0
+#endif
+
+// <o> CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef CLOCK_CONFIG_IRQ_PRIORITY
+#define CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
+//==========================================================
+#ifndef UART_ENABLED
+#define UART_ENABLED 1
+#endif
+// <o> UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef UART_DEFAULT_CONFIG_HWFC
+#define UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef UART_DEFAULT_CONFIG_PARITY
+#define UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef UART_DEFAULT_CONFIG_BAUDRATE
+#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
+ 
+
+#ifndef UART_EASY_DMA_SUPPORT
+#define UART_EASY_DMA_SUPPORT 1
+#endif
+
+// <q> UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
+ 
+
+#ifndef UART_LEGACY_SUPPORT
+#define UART_LEGACY_SUPPORT 1
+#endif
+
+// <e> UART0_ENABLED - Enable UART0 instance
+//==========================================================
+#ifndef UART0_ENABLED
+#define UART0_ENABLED 1
+#endif
+// <q> UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
+ 
+
+#ifndef UART0_CONFIG_USE_EASY_DMA
+#define UART0_CONFIG_USE_EASY_DMA 1
+#endif
+
+// </e>
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Libraries 
+
+//==========================================================
+// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
+//==========================================================
+#ifndef APP_SCHEDULER_ENABLED
+#define APP_SCHEDULER_ENABLED 1
+#endif
+// <q> APP_SCHEDULER_WITH_PAUSE  - Enabling pause feature
+ 
+
+#ifndef APP_SCHEDULER_WITH_PAUSE
+#define APP_SCHEDULER_WITH_PAUSE 1
+#endif
+
+// <q> APP_SCHEDULER_WITH_PROFILER  - Enabling scheduler profiling
+ 
+
+#ifndef APP_SCHEDULER_WITH_PROFILER
+#define APP_SCHEDULER_WITH_PROFILER 1
+#endif
+
+// </e>
+
+// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
+//==========================================================
+#ifndef APP_TIMER_ENABLED
+#define APP_TIMER_ENABLED 1
+#endif
+// <o> APP_TIMER_CONFIG_RTC_FREQUENCY  - Configure RTC prescaler.
+ 
+// <0=> 32768 Hz 
+// <1=> 16384 Hz 
+// <3=> 8192 Hz 
+// <7=> 4096 Hz 
+// <15=> 2048 Hz 
+// <31=> 1024 Hz 
+
+#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
+#define APP_TIMER_CONFIG_RTC_FREQUENCY 1
+#endif
+
+// <o> APP_TIMER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
+#define APP_TIMER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. 
+// <i> Size of the queue depends on how many timers are used
+// <i> in the system, how often timers are started and overall
+// <i> system latency. If queue size is too small app_timer calls
+// <i> will fail.
+
+#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
+#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
+#endif
+
+// <q> APP_TIMER_CONFIG_USE_SCHEDULER  - Enable scheduling app_timer events to app_scheduler
+ 
+
+#ifndef APP_TIMER_CONFIG_USE_SCHEDULER
+#define APP_TIMER_CONFIG_USE_SCHEDULER 0
+#endif
+
+// <q> APP_TIMER_KEEPS_RTC_ACTIVE  - Enable RTC always on
+ 
+
+// <i> If option is enabled RTC is kept running even if there is no active timers.
+// <i> This option can be used when app_timer is used for timestamping.
+
+#ifndef APP_TIMER_KEEPS_RTC_ACTIVE
+#define APP_TIMER_KEEPS_RTC_ACTIVE 0
+#endif
+
+// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. 
+// <i> Maximum possible timeout that can be set is reduced by safe window.
+// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
+// <i> Since RTC is not stopped when processor is halted in debugging session, this value
+// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
+// <i> without corrupting app_timer behavior.
+
+#ifndef APP_TIMER_SAFE_WINDOW_MS
+#define APP_TIMER_SAFE_WINDOW_MS 300000
+#endif
+
+// <h> App Timer Legacy configuration - Legacy configuration.
+
+//==========================================================
+// <q> APP_TIMER_WITH_PROFILER  - Enable app_timer profiling
+ 
+
+#ifndef APP_TIMER_WITH_PROFILER
+#define APP_TIMER_WITH_PROFILER 0
+#endif
+
+// <q> APP_TIMER_CONFIG_SWI_NUMBER  - Configure SWI instance used.
+ 
+
+#ifndef APP_TIMER_CONFIG_SWI_NUMBER
+#define APP_TIMER_CONFIG_SWI_NUMBER 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
+ 
+
+#ifndef CRC16_ENABLED
+#define CRC16_ENABLED 1
+#endif
+
+// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
+//==========================================================
+#ifndef NRF_BALLOC_ENABLED
+#define NRF_BALLOC_ENABLED 1
+#endif
+// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
+#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
+#endif
+
+// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
+#endif
+
+// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED  - Enables basic checks in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
+#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED  - Enables double memory free check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED  - Enables free memory corruption check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_BALLOC_CLI_CMDS
+#define NRF_BALLOC_CLI_CMDS 0
+#endif
+
+// </e>
+
+// </e>
+
+// <q> NRF_MEMOBJ_ENABLED  - nrf_memobj - Linked memory allocator module
+ 
+
+#ifndef NRF_MEMOBJ_ENABLED
+#define NRF_MEMOBJ_ENABLED 1
+#endif
+
+// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
+//==========================================================
+#ifndef NRF_QUEUE_ENABLED
+#define NRF_QUEUE_ENABLED 1
+#endif
+// <q> NRF_QUEUE_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_QUEUE_CLI_CMDS
+#define NRF_QUEUE_CLI_CMDS 0
+#endif
+
+// </e>
+
+// <q> NRF_SECTION_ITER_ENABLED  - nrf_section_iter - Section iterator
+ 
+
+#ifndef NRF_SECTION_ITER_ENABLED
+#define NRF_SECTION_ITER_ENABLED 1
+#endif
+
+// <q> NRF_SORTLIST_ENABLED  - nrf_sortlist - Sorted list
+ 
+
+#ifndef NRF_SORTLIST_ENABLED
+#define NRF_SORTLIST_ENABLED 1
+#endif
+
+// <q> NRF_STRERROR_ENABLED  - nrf_strerror - Library for converting error code to string.
+ 
+
+#ifndef NRF_STRERROR_ENABLED
+#define NRF_STRERROR_ENABLED 1
+#endif
+
+// <h> nrf_fprintf - fprintf function.
+
+//==========================================================
+// <q> NRF_FPRINTF_ENABLED  - Enable/disable fprintf module.
+ 
+
+#ifndef NRF_FPRINTF_ENABLED
+#define NRF_FPRINTF_ENABLED 1
+#endif
+
+// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED  - For each printed LF, function will add CR.
+ 
+
+#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
+#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Log 
+
+//==========================================================
+// <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_RTT_ENABLED
+#define NRF_LOG_BACKEND_RTT_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
+// <i> If RTT fails to accept any new data after retries
+// <i> module assumes that host is not active and on next
+// <i> request it will perform only one write attempt.
+// <i> On successful writing, module assumes that host is active
+// <i> and scheme with retry is applied again.
+
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
+#endif
+
+// </e>
+
+// <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_UART_ENABLED
+#define NRF_LOG_BACKEND_UART_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
+#ifndef NRF_LOG_BACKEND_UART_TX_PIN
+#define NRF_LOG_BACKEND_UART_TX_PIN 6
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
+#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
+#endif
+
+// </e>
+
+// <e> NRF_LOG_ENABLED - nrf_log - Logger
+//==========================================================
+#ifndef NRF_LOG_ENABLED
+#define NRF_LOG_ENABLED 0
+#endif
+// <h> Log message pool - Configuration of log message pool
+
+//==========================================================
+// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
+// <i> If a small value is set, then performance of logs processing
+// <i> is degraded because data is fragmented. Bigger value impacts
+// <i> RAM memory utilization. The size is set to fit a message with
+// <i> a timestamp and up to 2 arguments in a single memory object.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
+#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
+#endif
+
+// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
+// <i> If a small value is set, then it may lead to a deadlock
+// <i> in certain cases if backend has high latency and holds
+// <i> multiple messages for long time. Bigger value impacts
+// <i> RAM memory usage.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
+#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
+#endif
+
+// </h> 
+//==========================================================
+
+// <q> NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
+ 
+
+// <i> If set then oldest logs are overwritten. Otherwise a 
+// <i> marker is injected informing about overflow.
+
+#ifndef NRF_LOG_ALLOW_OVERFLOW
+#define NRF_LOG_ALLOW_OVERFLOW 1
+#endif
+
+// <o> NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
+ 
+
+// <i> Must be power of 2 and multiple of 4.
+// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+// <2048=> 2048 
+// <4096=> 4096 
+// <8192=> 8192 
+// <16384=> 16384 
+
+#ifndef NRF_LOG_BUFSIZE
+#define NRF_LOG_BUFSIZE 1024
+#endif
+
+// <q> NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
+ 
+
+#ifndef NRF_LOG_CLI_CMDS
+#define NRF_LOG_CLI_CMDS 0
+#endif
+
+// <o> NRF_LOG_DEFAULT_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LOG_DEFAULT_LEVEL
+#define NRF_LOG_DEFAULT_LEVEL 3
+#endif
+
+// <q> NRF_LOG_DEFERRED  - Enable deffered logger.
+ 
+
+// <i> Log data is buffered and can be processed in idle.
+
+#ifndef NRF_LOG_DEFERRED
+#define NRF_LOG_DEFERRED 1
+#endif
+
+// <q> NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
+ 
+
+#ifndef NRF_LOG_FILTERS_ENABLED
+#define NRF_LOG_FILTERS_ENABLED 0
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
+//==========================================================
+#ifndef NRF_LOG_USES_COLORS
+#define NRF_LOG_USES_COLORS 0
+#endif
+// <o> NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_COLOR_DEFAULT
+#define NRF_LOG_COLOR_DEFAULT 0
+#endif
+
+// <o> NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_ERROR_COLOR
+#define NRF_LOG_ERROR_COLOR 2
+#endif
+
+// <o> NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_WARNING_COLOR
+#define NRF_LOG_WARNING_COLOR 4
+#endif
+
+// </e>
+
+// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping
+
+// <i> Function for getting the timestamp is provided by the user
+//==========================================================
+#ifndef NRF_LOG_USES_TIMESTAMP
+#define NRF_LOG_USES_TIMESTAMP 0
+#endif
+// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
+#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
+#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
+#endif
+
+// </e>
+
+// <h> nrf_log module configuration 
+
+//==========================================================
+// <h> nrf_log in nRF_Core 
+
+//==========================================================
+// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
+#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
+#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
+#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
+#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
+#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
+#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
+#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
+#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
+#define TASK_MANAGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TASK_MANAGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
+#define TASK_MANAGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TASK_MANAGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_INFO_COLOR
+#define TASK_MANAGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
+#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Drivers 
+
+//==========================================================
+// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef CLOCK_CONFIG_LOG_ENABLED
+#define CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef CLOCK_CONFIG_LOG_LEVEL
+#define CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_INFO_COLOR
+#define CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_DEBUG_COLOR
+#define CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef COMP_CONFIG_LOG_ENABLED
+#define COMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> COMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef COMP_CONFIG_LOG_LEVEL
+#define COMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> COMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_INFO_COLOR
+#define COMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> COMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_DEBUG_COLOR
+#define COMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef GPIOTE_CONFIG_LOG_ENABLED
+#define GPIOTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef GPIOTE_CONFIG_LOG_LEVEL
+#define GPIOTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_INFO_COLOR
+#define GPIOTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_DEBUG_COLOR
+#define GPIOTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef LPCOMP_CONFIG_LOG_ENABLED
+#define LPCOMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> LPCOMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef LPCOMP_CONFIG_LOG_LEVEL
+#define LPCOMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> LPCOMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_INFO_COLOR
+#define LPCOMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> LPCOMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_DEBUG_COLOR
+#define LPCOMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
+#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
+#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
+#define MAX3421E_HOST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
+#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef NRFX_USBD_CONFIG_LOG_ENABLED
+#define NRFX_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_USBD_CONFIG_LOG_LEVEL
+#define NRFX_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_INFO_COLOR
+#define NRFX_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
+#define NRFX_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PDM_CONFIG_LOG_ENABLED
+#define PDM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PDM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PDM_CONFIG_LOG_LEVEL
+#define PDM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PDM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_INFO_COLOR
+#define PDM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PDM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_DEBUG_COLOR
+#define PDM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PPI_CONFIG_LOG_ENABLED
+#define PPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PPI_CONFIG_LOG_LEVEL
+#define PPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_INFO_COLOR
+#define PPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_DEBUG_COLOR
+#define PPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PWM_CONFIG_LOG_ENABLED
+#define PWM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PWM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PWM_CONFIG_LOG_LEVEL
+#define PWM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PWM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_INFO_COLOR
+#define PWM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PWM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_DEBUG_COLOR
+#define PWM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef QDEC_CONFIG_LOG_ENABLED
+#define QDEC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> QDEC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef QDEC_CONFIG_LOG_LEVEL
+#define QDEC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> QDEC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_INFO_COLOR
+#define QDEC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> QDEC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_DEBUG_COLOR
+#define QDEC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RNG_CONFIG_LOG_ENABLED
+#define RNG_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RNG_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RNG_CONFIG_LOG_LEVEL
+#define RNG_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RNG_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_INFO_COLOR
+#define RNG_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RNG_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_DEBUG_COLOR
+#define RNG_CONFIG_DEBUG_COLOR 0
+#endif
+
+// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED  - Enables logging of random numbers.
+ 
+
+#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
+#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
+#endif
+
+// </e>
+
+// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RTC_CONFIG_LOG_ENABLED
+#define RTC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RTC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RTC_CONFIG_LOG_LEVEL
+#define RTC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RTC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_INFO_COLOR
+#define RTC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RTC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_DEBUG_COLOR
+#define RTC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SAADC_CONFIG_LOG_ENABLED
+#define SAADC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SAADC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SAADC_CONFIG_LOG_LEVEL
+#define SAADC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SAADC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_INFO_COLOR
+#define SAADC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SAADC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_DEBUG_COLOR
+#define SAADC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPIS_CONFIG_LOG_ENABLED
+#define SPIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPIS_CONFIG_LOG_LEVEL
+#define SPIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_INFO_COLOR
+#define SPIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_DEBUG_COLOR
+#define SPIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPI_CONFIG_LOG_ENABLED
+#define SPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPI_CONFIG_LOG_LEVEL
+#define SPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_INFO_COLOR
+#define SPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_DEBUG_COLOR
+#define SPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TIMER_CONFIG_LOG_ENABLED
+#define TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TIMER_CONFIG_LOG_LEVEL
+#define TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_INFO_COLOR
+#define TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_DEBUG_COLOR
+#define TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWIS_CONFIG_LOG_ENABLED
+#define TWIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWIS_CONFIG_LOG_LEVEL
+#define TWIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_INFO_COLOR
+#define TWIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_DEBUG_COLOR
+#define TWIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWI_CONFIG_LOG_ENABLED
+#define TWI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWI_CONFIG_LOG_LEVEL
+#define TWI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_INFO_COLOR
+#define TWI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_DEBUG_COLOR
+#define TWI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef UART_CONFIG_LOG_ENABLED
+#define UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef UART_CONFIG_LOG_LEVEL
+#define UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_INFO_COLOR
+#define UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_DEBUG_COLOR
+#define UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef USBD_CONFIG_LOG_ENABLED
+#define USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef USBD_CONFIG_LOG_LEVEL
+#define USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_INFO_COLOR
+#define USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_DEBUG_COLOR
+#define USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef WDT_CONFIG_LOG_ENABLED
+#define WDT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> WDT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef WDT_CONFIG_LOG_LEVEL
+#define WDT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> WDT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_INFO_COLOR
+#define WDT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> WDT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_DEBUG_COLOR
+#define WDT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Libraries 
+
+//==========================================================
+// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_TIMER_CONFIG_LOG_ENABLED
+#define APP_TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_LOG_LEVEL
+#define APP_TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
+#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_INFO_COLOR
+#define APP_TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_DEBUG_COLOR
+#define APP_TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
+#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
+#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
+//==========================================================
+#ifndef APP_USBD_CONFIG_LOG_ENABLED
+#define APP_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CONFIG_LOG_LEVEL
+#define APP_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_INFO_COLOR
+#define APP_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_DEBUG_COLOR
+#define APP_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
+#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
+#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
+#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
+#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
+#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
+#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
+#define APP_USBD_MSC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
+#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
+#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
+#define NRF_ATFIFO_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
+#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
+#define NRF_BALLOC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_INFO_COLOR
+#define NRF_BALLOC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
+#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
+#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
+#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
+#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
+#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
+#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
+#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
+#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
+#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
+#define NRF_QUEUE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_QUEUE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_INFO_COLOR
+#define NRF_QUEUE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
+#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
+//==========================================================
+#ifndef NRF_SDH_ANT_LOG_ENABLED
+#define NRF_SDH_ANT_LOG_ENABLED 0
+#endif
+// <o> NRF_SDH_ANT_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_ANT_LOG_LEVEL
+#define NRF_SDH_ANT_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_ANT_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_INFO_COLOR
+#define NRF_SDH_ANT_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_ANT_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_DEBUG_COLOR
+#define NRF_SDH_ANT_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
+//==========================================================
+#ifndef NRF_SDH_BLE_LOG_ENABLED
+#define NRF_SDH_BLE_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_BLE_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_BLE_LOG_LEVEL
+#define NRF_SDH_BLE_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_BLE_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_INFO_COLOR
+#define NRF_SDH_BLE_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_BLE_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_DEBUG_COLOR
+#define NRF_SDH_BLE_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
+//==========================================================
+#ifndef NRF_SDH_LOG_ENABLED
+#define NRF_SDH_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_LOG_LEVEL
+#define NRF_SDH_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_INFO_COLOR
+#define NRF_SDH_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_DEBUG_COLOR
+#define NRF_SDH_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
+//==========================================================
+#ifndef NRF_SDH_SOC_LOG_ENABLED
+#define NRF_SDH_SOC_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_SOC_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_SOC_LOG_LEVEL
+#define NRF_SDH_SOC_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_SOC_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_INFO_COLOR
+#define NRF_SDH_SOC_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_SOC_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_DEBUG_COLOR
+#define NRF_SDH_SOC_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
+#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
+#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
+#define NRF_SORTLIST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
+#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
+#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
+#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
+#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
+#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
+//==========================================================
+#ifndef PM_LOG_ENABLED
+#define PM_LOG_ENABLED 1
+#endif
+// <o> PM_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PM_LOG_LEVEL
+#define PM_LOG_LEVEL 3
+#endif
+
+// <o> PM_LOG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_INFO_COLOR
+#define PM_LOG_INFO_COLOR 0
+#endif
+
+// <o> PM_LOG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_DEBUG_COLOR
+#define PM_LOG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Serialization 
+
+//==========================================================
+// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
+#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
+#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED  - nrf_log_str_formatter - Log string formatter
+ 
+
+#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
+#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Segger_RTT 
+
+//==========================================================
+// <h> segger_rtt - SEGGER RTT
+
+//==========================================================
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. 
+// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
+// <i> or this value is actually used. It depends on which one is bigger.
+
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. 
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE  - RTT behavior if the buffer is full.
+ 
+
+// <i> The following modes are supported:
+// <i> - SKIP  - Do not block, output nothing.
+// <i> - TRIM  - Do not block, output as much as fits.
+// <i> - BLOCK - Wait until there is space in the buffer.
+// <0=> SKIP 
+// <1=> TRIM 
+// <2=> BLOCK_IF_FIFO_FULL 
+
+#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
+#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_SoftDevice 
+
+//==========================================================
+// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler
+//==========================================================
+#ifndef NRF_SDH_BLE_ENABLED
+#define NRF_SDH_BLE_ENABLED 1
+#endif
+// <h> BLE Stack configuration - Stack configuration parameters
+
+// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set.
+// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set.
+//==========================================================
+// <o> NRF_SDH_BLE_GAP_DATA_LENGTH   <27-251> 
+
+
+// <i> Requested BLE GAP data length to be negotiated.
+
+#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH
+#define NRF_SDH_BLE_GAP_DATA_LENGTH 27
+#endif
+
+// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
+#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
+#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
+// <i> Maximum number of total concurrent connections using the default configuration.
+
+#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
+#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1
+#endif
+
+// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. 
+// <i> The time set aside for this connection on every connection interval in 1.25 ms units.
+
+#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
+#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6
+#endif
+
+// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. 
+#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
+#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 250
+#endif
+
+// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. 
+#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
+#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408
+#endif
+
+// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. 
+#ifndef NRF_SDH_BLE_VS_UUID_COUNT
+#define NRF_SDH_BLE_VS_UUID_COUNT 0
+#endif
+
+// <q> NRF_SDH_BLE_SERVICE_CHANGED  - Include the Service Changed characteristic in the Attribute Table.
+ 
+
+#ifndef NRF_SDH_BLE_SERVICE_CHANGED
+#define NRF_SDH_BLE_SERVICE_CHANGED 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> BLE Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. 
+// <i> This setting configures the number of priority levels available for BLE event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4
+#endif
+
+// <h> BLE Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_BLE_OBSERVER_PRIO
+#define BLE_ADV_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client.
+
+#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO
+#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_ANS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client.
+
+#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO
+#define BLE_ANS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service.
+
+#ifndef BLE_BAS_BLE_OBSERVER_PRIO
+#define BLE_BAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service Client.
+
+#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO
+#define BLE_BAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Blood Pressure Service.
+
+#ifndef BLE_BPS_BLE_OBSERVER_PRIO
+#define BLE_BPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection parameters module.
+
+#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO
+#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection State module.
+
+#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO
+#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0
+#endif
+
+// <o> BLE_CSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service.
+
+#ifndef BLE_CSCS_BLE_OBSERVER_PRIO
+#define BLE_CSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Current Time Service Client.
+
+#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO
+#define BLE_CTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Database Discovery module.
+
+#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO
+#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_BLE_OBSERVER_PRIO
+#define BLE_DFU_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DIS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Device Information Client.
+
+#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO
+#define BLE_DIS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_GLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Glucose Service.
+
+#ifndef BLE_GLS_BLE_OBSERVER_PRIO
+#define BLE_GLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HIDS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Human Interface Device Service.
+
+#ifndef BLE_HIDS_BLE_OBSERVER_PRIO
+#define BLE_HIDS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service.
+
+#ifndef BLE_HRS_BLE_OBSERVER_PRIO
+#define BLE_HRS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client.
+
+#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO
+#define BLE_HRS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Health Thermometer Service.
+
+#ifndef BLE_HTS_BLE_OBSERVER_PRIO
+#define BLE_HTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service.
+
+#ifndef BLE_IAS_BLE_OBSERVER_PRIO
+#define BLE_IAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client.
+
+#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO
+#define BLE_IAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service.
+
+#ifndef BLE_LBS_BLE_OBSERVER_PRIO
+#define BLE_LBS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service Client.
+
+#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO
+#define BLE_LBS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Link Loss Service.
+
+#ifndef BLE_LLS_BLE_OBSERVER_PRIO
+#define BLE_LLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LNS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Location Navigation Service.
+
+#ifndef BLE_LNS_BLE_OBSERVER_PRIO
+#define BLE_LNS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Service.
+
+#ifndef BLE_NUS_BLE_OBSERVER_PRIO
+#define BLE_NUS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Central Service.
+
+#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO
+#define BLE_NUS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service.
+
+#ifndef BLE_OTS_BLE_OBSERVER_PRIO
+#define BLE_OTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service client.
+
+#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO
+#define BLE_OTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service.
+
+#ifndef BLE_RSCS_BLE_OBSERVER_PRIO
+#define BLE_RSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client.
+
+#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO
+#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_TPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the TX Power Service.
+
+#ifndef BLE_TPS_BLE_OBSERVER_PRIO
+#define BLE_TPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BSP_BTN_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Button Control module.
+
+#ifndef BSP_BTN_BLE_OBSERVER_PRIO
+#define BSP_BTN_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Bond Management Service.
+
+#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service.
+
+#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Eddystone module.
+
+#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO
+#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT Service Client.
+
+#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT module.
+
+#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Queued writes module.
+
+#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO
+#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_SCAN_OBSERVER_PRIO  
+// <i> Priority for dispatching the BLE events to the Scanning Module.
+
+#ifndef NRF_BLE_SCAN_OBSERVER_PRIO
+#define NRF_BLE_SCAN_OBSERVER_PRIO 1
+#endif
+
+// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. 
+#ifndef PM_BLE_OBSERVER_PRIO
+#define PM_BLE_OBSERVER_PRIO 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler
+//==========================================================
+#ifndef NRF_SDH_ENABLED
+#define NRF_SDH_ENABLED 1
+#endif
+// <h> Dispatch model 
+
+// <i> This setting configures how Stack events are dispatched to the application.
+//==========================================================
+// <o> NRF_SDH_DISPATCH_MODEL
+ 
+
+// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context.
+// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler.
+// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually.
+// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT 
+// <1=> NRF_SDH_DISPATCH_MODEL_APPSH 
+// <2=> NRF_SDH_DISPATCH_MODEL_POLLING 
+
+#ifndef NRF_SDH_DISPATCH_MODEL
+#define NRF_SDH_DISPATCH_MODEL 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Clock - SoftDevice clock configuration
+
+//==========================================================
+// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
+ 
+// <0=> NRF_CLOCK_LF_SRC_RC 
+// <1=> NRF_CLOCK_LF_SRC_XTAL 
+// <2=> NRF_CLOCK_LF_SRC_SYNTH 
+
+#ifndef NRF_SDH_CLOCK_LF_SRC
+#define NRF_SDH_CLOCK_LF_SRC 1
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
+#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
+#define NRF_SDH_CLOCK_LF_RC_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
+// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
+// <i>  if the temperature has not changed.
+
+#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
+#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
+ 
+// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
+// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
+// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
+// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
+// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
+// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
+// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
+// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
+// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
+// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
+// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
+// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
+
+#ifndef NRF_SDH_CLOCK_LF_ACCURACY
+#define NRF_SDH_CLOCK_LF_ACCURACY 7
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> SDH Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC).
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2
+#endif
+
+
+// <h> State Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO
+#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO
+#define POWER_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> RNG_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to this module.
+
+#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO
+#define RNG_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Stack Event Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO
+#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO
+#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO
+#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler
+//==========================================================
+#ifndef NRF_SDH_SOC_ENABLED
+#define NRF_SDH_SOC_ENABLED 1
+#endif
+// <h> SoC Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. 
+// <i> This setting configures the number of priority levels available for the SoC event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <h> SoC Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_SOC_OBSERVER_PRIO
+#define BLE_ADV_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_SOC_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_SOC_OBSERVER_PRIO
+#define BLE_DFU_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO
+#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO
+#define POWER_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <<< end of configuration section >>>
+#endif //SDK_CONFIG_H
+
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emProject
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emProject
@@ -0,0 +1,158 @@
+<!DOCTYPE CrossStudio_Project_File>
+<solution Name="ble_connectivity_132v3_hci_pca10040" target="8" version="2">
+  <project Name="ble_connectivity_132v3_hci_pca10040">
+    <configuration
+      Name="Common"
+      arm_architecture="v7EM"
+      arm_core_type="Cortex-M4"
+      arm_endian="Little"
+      arm_fp_abi="Hard"
+      arm_fpu_type="FPv4-SP-D16"
+      arm_linker_heap_size="512"
+      arm_linker_process_stack_size="0"
+      arm_linker_stack_size="2048"
+      arm_linker_treat_warnings_as_errors="No"
+      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
+      arm_target_device_name="nRF52832_xxAA"
+      arm_target_interface_type="SWD"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/common;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s132v3/headers;../../../../../../components/softdevice/s132v3/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10040;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52;NRF52832_XXAA;NRF52_PAN_74;NRF_SD_BLE_API_VERSION=3;S132;SER_CONNECTIVITY;SER_PHY_HCI;SOFTDEVICE_PRESENT;"
+      debug_target_connection="J-Link"
+      gcc_entry_point="Reset_Handler"
+      macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
+      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52.svd"
+      debug_additional_load_file="../../../../../../components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex"
+      debug_start_from_entry_point_symbol="No"
+      gcc_debugging_level="Level 3"      linker_output_format="hex"
+      linker_printf_width_precision_supported="Yes"
+      linker_printf_fmt_level="long"
+      linker_scanf_fmt_level="long"
+      linker_section_placement_file="flash_placement.xml"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x1f000;FLASH_SIZE=0x61000;RAM_START=0x2000ac38;RAM_SIZE=0x53c8"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
+      project_directory=""
+      project_type="Executable" />
+      <folder Name="Segger Startup Files">
+        <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+      </folder>
+    <folder Name="nRF_Log">
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_uart.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_default_backends.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_frontend.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_str_formatter.c" />
+    </folder>
+    <folder Name="nRF_Libraries">
+      <file file_name="../../../../../../components/libraries/util/app_error.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_handler_gcc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_weak.c" />
+      <file file_name="../../../../../../components/libraries/scheduler/app_scheduler.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/app_timer2.c" />
+      <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
+      <file file_name="../../../../../../components/libraries/crc16/crc16.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/drv_rtc.c" />
+      <file file_name="../../../../../../components/libraries/util/nrf_assert.c" />
+      <file file_name="../../../../../../components/libraries/atomic_fifo/nrf_atfifo.c" />
+      <file file_name="../../../../../../components/libraries/atomic/nrf_atomic.c" />
+      <file file_name="../../../../../../components/libraries/balloc/nrf_balloc.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf_format.c" />
+      <file file_name="../../../../../../components/libraries/memobj/nrf_memobj.c" />
+      <file file_name="../../../../../../components/libraries/queue/nrf_queue.c" />
+      <file file_name="../../../../../../components/libraries/ringbuf/nrf_ringbuf.c" />
+      <file file_name="../../../../../../components/libraries/experimental_section_vars/nrf_section_iter.c" />
+      <file file_name="../../../../../../components/libraries/sortlist/nrf_sortlist.c" />
+      <file file_name="../../../../../../components/libraries/strerror/nrf_strerror.c" />
+    </folder>
+    <folder Name="None">
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52.c" />
+    </folder>
+    <folder Name="Board Definition">
+      <file file_name="../../../../../../components/boards/boards.c" />
+    </folder>
+    <folder Name="nRF_Serialization">
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/ble_dtm_init.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/ble_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/cond_field_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/hal/dtm_uart.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_error_handling.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_event_encoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_handlers.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_pkt_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_reset_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/common/ser_dbg_sd_str.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_hal_transport.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c" />
+    </folder>
+    <folder Name="nRF_Drivers">
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_clock.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
+    </folder>
+    <folder Name="Application">
+      <file file_name="../../../main.c" />
+      <file file_name="../config/sdk_config.h" />
+    </folder>
+    <folder Name="nRF_Segger_RTT">
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_Syscalls_SES.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_printf.c" />
+    </folder>
+    <folder Name="nRF_BLE">
+      <file file_name="../../../../../../components/ble/common/ble_advdata.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm_hw_nrf52.c" />
+      <file file_name="../../../../../../components/ble/common/ble_srv_common.c" />
+    </folder>
+    <folder Name="nRF_SoftDevice">
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_ble.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
+    </folder>
+  </project>
+  <configuration Name="Release"
+    c_preprocessor_definitions="NDEBUG"
+    gcc_optimization_level="Optimize For Size" />
+  <configuration Name="Debug"
+    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
+    gcc_optimization_level="None"/>
+</solution>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emSession nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emSession
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/ble_connectivity_132v3_hci_pca10040.emSession
@@ -0,0 +1,7 @@
+<!DOCTYPE CrossStudio_Session_File>
+<session>
+  <ARMCrossStudioWindow activeProject="ble_connectivity_132v3_hci_pca10040" buildConfiguration="Release"/>
+  <Files>
+    <SessionOpenFile codecName="Default" debugPath="../../../main.c" left="0" name="unnamed" path="../../../main.c" selected="1" top="0" useBinaryEdit="0" useTextEdit="1" x="0" y="0"/>
+  </Files>
+</session>
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/flash_placement.xml
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v3_hci/ses/flash_placement.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE Linker_Placement_File>
+<Root name="Flash Section Placement">
+  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
+    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
+    <ProgramSection alignment="4" load="Yes" name=".init" />
+    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".text" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
+    <ProgramSection alignment="4" load="Yes" name=".dtors" />
+    <ProgramSection alignment="4" load="Yes" name=".ctors" />
+    <ProgramSection alignment="4" load="Yes" name=".rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
+    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
+    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
+    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
+  </MemorySegment>
+  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
+    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
+    <ProgramSection alignment="4" load="No" name=".fast_run" />
+    <ProgramSection alignment="4" load="No" name=".data_run" />
+    <ProgramSection alignment="4" load="No" name=".tdata_run" />
+    <ProgramSection alignment="4" load="No" name=".bss" />
+    <ProgramSection alignment="4" load="No" name=".tbss" />
+    <ProgramSection alignment="4" load="No" name=".non_init" />
+    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
+    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
+    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
+  </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
+</Root>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/Makefile
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/Makefile
@@ -0,0 +1,273 @@
+PROJECT_NAME     := ble_connectivity_132v5_hci_pca10040
+TARGETS          := nrf52832_xxaa
+OUTPUT_DIRECTORY := _build
+
+SDK_ROOT := ../../../../../..
+PROJ_DIR := ../../..
+
+$(OUTPUT_DIRECTORY)/nrf52832_xxaa.out: \
+  LINKER_SCRIPT  := ble_connectivity_gcc_nrf52.ld
+
+# Source files common to all targets
+SRC_FILES += \
+  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52.S \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
+  $(SDK_ROOT)/components/libraries/util/app_error.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
+  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/app_timer2.c \
+  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
+  $(SDK_ROOT)/components/libraries/crc16/crc16.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/drv_rtc.c \
+  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
+  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
+  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
+  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
+  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
+  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \
+  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
+  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
+  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
+  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52.c \
+  $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/ble_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/cond_field_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/hal/dtm_uart.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_error_handling.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_event_encoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_handlers.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_pkt_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_reset_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/common/ser_dbg_sd_str.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_hal_transport.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
+  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
+  $(PROJ_DIR)/main.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
+  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
+  $(SDK_ROOT)/components/ble/common/ble_conn_params.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm_hw_nrf52.c \
+  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
+
+# Include folders common to all targets
+INC_FOLDERS += \
+  $(SDK_ROOT)/components \
+  $(SDK_ROOT)/components/serialization/connectivity/hal \
+  $(SDK_ROOT)/modules/nrfx/mdk \
+  $(SDK_ROOT)/components/libraries/scheduler \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers \
+  $(SDK_ROOT)/components/toolchain/cmsis/include \
+  $(SDK_ROOT)/components/libraries/queue \
+  $(SDK_ROOT)/components/libraries/timer \
+  $(SDK_ROOT)/components/boards \
+  $(SDK_ROOT)/components/serialization/connectivity \
+  $(SDK_ROOT)/components/libraries/strerror \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
+  $(SDK_ROOT)/components/libraries/crc16 \
+  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/serialization/common \
+  $(SDK_ROOT)/components/libraries/util \
+  ../config \
+  $(SDK_ROOT)/components/ble/common \
+  $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/libraries/ringbuf \
+  $(SDK_ROOT)/modules/nrfx/hal \
+  $(SDK_ROOT)/components/libraries/bsp \
+  $(SDK_ROOT)/components/libraries/log \
+  $(SDK_ROOT)/modules/nrfx \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars \
+  $(SDK_ROOT)/integration/nrfx/legacy \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy \
+  $(SDK_ROOT)/components/softdevice/s132v5/headers \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common \
+  $(SDK_ROOT)/components/libraries/delay \
+  $(SDK_ROOT)/external/segger_rtt \
+  $(SDK_ROOT)/components/libraries/atomic_fifo \
+  $(SDK_ROOT)/components/libraries/atomic \
+  $(SDK_ROOT)/components/libraries/sortlist \
+  $(SDK_ROOT)/components/libraries/memobj \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
+  $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/serialization/common/transport \
+  $(SDK_ROOT)/components/libraries/timer/experimental \
+  $(SDK_ROOT)/components/softdevice/common \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
+  $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/components/softdevice/s132v5/headers/nrf52 \
+  $(SDK_ROOT)/external/fprintf \
+  $(SDK_ROOT)/components/libraries/log/src \
+
+# Libraries common to all targets
+LIB_FILES += \
+
+# Optimization flags
+OPT = -Os -g3
+# Uncomment the line below to enable link time optimization
+#OPT += -flto
+
+# C flags common to all targets
+CFLAGS += $(OPT)
+CFLAGS += -DAPP_TIMER_V2
+CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -DBOARD_PCA10040
+CFLAGS += -DBSP_DEFINES_ONLY
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DFLOAT_ABI_HARD
+CFLAGS += -DHCI_TIMER2
+CFLAGS += -DNRF52
+CFLAGS += -DNRF52832_XXAA
+CFLAGS += -DNRF52_PAN_74
+CFLAGS += -DNRF_SD_BLE_API_VERSION=5
+CFLAGS += -DS132
+CFLAGS += -DSER_CONNECTIVITY
+CFLAGS += -DSER_PHY_HCI
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs
+CFLAGS += -Wall -Werror
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in a separate section, this allows linker to discard unused ones
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin -fshort-enums
+
+# C++ flags common to all targets
+CXXFLAGS += $(OPT)
+
+# Assembler flags common to all targets
+ASMFLAGS += -g3
+ASMFLAGS += -mcpu=cortex-m4
+ASMFLAGS += -mthumb -mabi=aapcs
+ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+ASMFLAGS += -DAPP_TIMER_V2
+ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -DBOARD_PCA10040
+ASMFLAGS += -DBSP_DEFINES_ONLY
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DFLOAT_ABI_HARD
+ASMFLAGS += -DHCI_TIMER2
+ASMFLAGS += -DNRF52
+ASMFLAGS += -DNRF52832_XXAA
+ASMFLAGS += -DNRF52_PAN_74
+ASMFLAGS += -DNRF_SD_BLE_API_VERSION=5
+ASMFLAGS += -DS132
+ASMFLAGS += -DSER_CONNECTIVITY
+ASMFLAGS += -DSER_PHY_HCI
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+
+# Linker flags
+LDFLAGS += $(OPT)
+LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs
+
+nrf52832_xxaa: CFLAGS += -D__HEAP_SIZE=512
+nrf52832_xxaa: CFLAGS += -D__STACK_SIZE=2048
+nrf52832_xxaa: ASMFLAGS += -D__HEAP_SIZE=512
+nrf52832_xxaa: ASMFLAGS += -D__STACK_SIZE=2048
+
+# Add standard libraries at the very end of the linker input, after all objects
+# that may need symbols provided by these libraries.
+LIB_FILES += -lc -lnosys -lm
+
+
+.PHONY: default help
+
+# Default target - first one defined
+default: nrf52832_xxaa
+
+# Print all targets that can be built
+help:
+	@echo following targets are available:
+	@echo		nrf52832_xxaa
+	@echo		flash_softdevice
+	@echo		sdk_config - starting external tool for editing sdk_config.h
+	@echo		flash      - flashing binary
+
+TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc
+
+
+include $(TEMPLATE_PATH)/Makefile.common
+
+$(foreach target, $(TARGETS), $(call define_target, $(target)))
+
+.PHONY: flash flash_softdevice erase
+
+# Flash the program
+flash: default
+	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52832_xxaa.hex
+	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52832_xxaa.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+# Flash softdevice
+flash_softdevice:
+	@echo Flashing: s132_nrf52_5.1.0_softdevice.hex
+	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+erase:
+	nrfjprog -f nrf52 --eraseall
+
+SDK_CONFIG_FILE := ../config/sdk_config.h
+CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
+sdk_config:
+	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/ble_connectivity_gcc_nrf52.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -0,0 +1,108 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x23000, LENGTH = 0x5d000
+  RAM (rwx) :  ORIGIN = 0x2000a5f8, LENGTH = 0x5a08
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+  .log_dynamic_data :
+  {
+    PROVIDE(__start_log_dynamic_data = .);
+    KEEP(*(SORT(.log_dynamic_data*)))
+    PROVIDE(__stop_log_dynamic_data = .);
+  } > RAM
+  .log_filter_data :
+  {
+    PROVIDE(__start_log_filter_data = .);
+    KEEP(*(SORT(.log_filter_data*)))
+    PROVIDE(__stop_log_filter_data = .);
+  } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+  .sdh_ble_observers :
+  {
+    PROVIDE(__start_sdh_ble_observers = .);
+    KEEP(*(SORT(.sdh_ble_observers*)))
+    PROVIDE(__stop_sdh_ble_observers = .);
+  } > FLASH
+  .sdh_soc_observers :
+  {
+    PROVIDE(__start_sdh_soc_observers = .);
+    KEEP(*(SORT(.sdh_soc_observers*)))
+    PROVIDE(__stop_sdh_soc_observers = .);
+  } > FLASH
+    .nrf_queue :
+  {
+    PROVIDE(__start_nrf_queue = .);
+    KEEP(*(.nrf_queue))
+    PROVIDE(__stop_nrf_queue = .);
+  } > FLASH
+  .log_const_data :
+  {
+    PROVIDE(__start_log_const_data = .);
+    KEEP(*(SORT(.log_const_data*)))
+    PROVIDE(__stop_log_const_data = .);
+  } > FLASH
+    .nrf_balloc :
+  {
+    PROVIDE(__start_nrf_balloc = .);
+    KEEP(*(.nrf_balloc))
+    PROVIDE(__stop_nrf_balloc = .);
+  } > FLASH
+  .sdh_state_observers :
+  {
+    PROVIDE(__start_sdh_state_observers = .);
+    KEEP(*(SORT(.sdh_state_observers*)))
+    PROVIDE(__stop_sdh_state_observers = .);
+  } > FLASH
+  .sdh_stack_observers :
+  {
+    PROVIDE(__start_sdh_stack_observers = .);
+    KEEP(*(SORT(.sdh_stack_observers*)))
+    PROVIDE(__stop_sdh_stack_observers = .);
+  } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
+  .log_backends :
+  {
+    PROVIDE(__start_log_backends = .);
+    KEEP(*(SORT(.log_backends*)))
+    PROVIDE(__stop_log_backends = .);
+  } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/config/sdk_config.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/config/sdk_config.h
@@ -0,0 +1,4724 @@
+/**
+ * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#ifndef SDK_CONFIG_H
+#define SDK_CONFIG_H
+// <<< Use Configuration Wizard in Context Menu >>>\n
+#ifdef USE_APP_CONFIG
+#include "app_config.h"
+#endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_BLE 
+
+//==========================================================
+// <q> BLE_DTM_ENABLED  - ble_dtm - Module for testing RF/PHY using DTM commands
+ 
+
+#ifndef BLE_DTM_ENABLED
+#define BLE_DTM_ENABLED 1
+#endif
+
+// <e> NRF_BLE_CONN_PARAMS_ENABLED - ble_conn_params - Initiating and executing a connection parameters negotiation procedure
+//==========================================================
+#ifndef NRF_BLE_CONN_PARAMS_ENABLED
+#define NRF_BLE_CONN_PARAMS_ENABLED 1
+#endif
+// <o> NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION - The largest acceptable deviation in slave latency. 
+// <i> The largest deviation (+ or -) from the requested slave latency that will not be renegotiated.
+
+#ifndef NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION
+#define NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION 499
+#endif
+
+// <o> NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION - The largest acceptable deviation (in 10 ms units) in supervision timeout. 
+// <i> The largest deviation (+ or -, in 10 ms units) from the requested supervision timeout that will not be renegotiated.
+
+#ifndef NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION
+#define NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION 65535
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Drivers 
+
+//==========================================================
+// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
+//==========================================================
+#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_CLOCK_ENABLED 1
+#endif
+// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef NRFX_CLOCK_CONFIG_LF_SRC
+#define NRFX_CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
+#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
+#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
+#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
+#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
+#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
+//==========================================================
+#ifndef NRFX_PRS_ENABLED
+#define NRFX_PRS_ENABLED 1
+#endif
+// <q> NRFX_PRS_BOX_0_ENABLED  - Enables box 0 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_0_ENABLED
+#define NRFX_PRS_BOX_0_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_1_ENABLED  - Enables box 1 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_1_ENABLED
+#define NRFX_PRS_BOX_1_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_2_ENABLED  - Enables box 2 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_2_ENABLED
+#define NRFX_PRS_BOX_2_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_3_ENABLED  - Enables box 3 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_3_ENABLED
+#define NRFX_PRS_BOX_3_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_4_ENABLED  - Enables box 4 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_4_ENABLED
+#define NRFX_PRS_BOX_4_ENABLED 1
+#endif
+
+// <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_PRS_CONFIG_LOG_ENABLED
+#define NRFX_PRS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_PRS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_PRS_CONFIG_LOG_LEVEL
+#define NRFX_PRS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_PRS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_INFO_COLOR
+#define NRFX_PRS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_PRS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
+#define NRFX_PRS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
+//==========================================================
+#ifndef NRFX_UARTE_ENABLED
+#define NRFX_UARTE_ENABLED 1
+#endif
+// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
+#ifndef NRFX_UARTE0_ENABLED
+#define NRFX_UARTE0_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
+#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
+#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10289152=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
+#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
+#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
+#define NRFX_UARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
+#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
+//==========================================================
+#ifndef NRFX_UART_ENABLED
+#define NRFX_UART_ENABLED 1
+#endif
+// <o> NRFX_UART0_ENABLED - Enable UART0 instance 
+#ifndef NRFX_UART0_ENABLED
+#define NRFX_UART0_ENABLED 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
+#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
+#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3866624=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7729152=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10309632=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15462400=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30924800=> 115200 baud 
+// <61845504=> 230400 baud 
+// <67108864=> 250000 baud 
+// <123695104=> 460800 baud 
+// <247386112=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UART_CONFIG_LOG_ENABLED
+#define NRFX_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UART_CONFIG_LOG_LEVEL
+#define NRFX_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_INFO_COLOR
+#define NRFX_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
+#define NRFX_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
+//==========================================================
+#ifndef NRF_CLOCK_ENABLED
+#define NRF_CLOCK_ENABLED 1
+#endif
+// <o> CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef CLOCK_CONFIG_LF_SRC
+#define CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <q> CLOCK_CONFIG_LF_CAL_ENABLED  - Calibration enable for LF Clock Source
+ 
+
+#ifndef CLOCK_CONFIG_LF_CAL_ENABLED
+#define CLOCK_CONFIG_LF_CAL_ENABLED 0
+#endif
+
+// <o> CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef CLOCK_CONFIG_IRQ_PRIORITY
+#define CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
+//==========================================================
+#ifndef UART_ENABLED
+#define UART_ENABLED 1
+#endif
+// <o> UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef UART_DEFAULT_CONFIG_HWFC
+#define UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef UART_DEFAULT_CONFIG_PARITY
+#define UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef UART_DEFAULT_CONFIG_BAUDRATE
+#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
+ 
+
+#ifndef UART_EASY_DMA_SUPPORT
+#define UART_EASY_DMA_SUPPORT 1
+#endif
+
+// <q> UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
+ 
+
+#ifndef UART_LEGACY_SUPPORT
+#define UART_LEGACY_SUPPORT 1
+#endif
+
+// <e> UART0_ENABLED - Enable UART0 instance
+//==========================================================
+#ifndef UART0_ENABLED
+#define UART0_ENABLED 1
+#endif
+// <q> UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
+ 
+
+#ifndef UART0_CONFIG_USE_EASY_DMA
+#define UART0_CONFIG_USE_EASY_DMA 1
+#endif
+
+// </e>
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Libraries 
+
+//==========================================================
+// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
+//==========================================================
+#ifndef APP_SCHEDULER_ENABLED
+#define APP_SCHEDULER_ENABLED 1
+#endif
+// <q> APP_SCHEDULER_WITH_PAUSE  - Enabling pause feature
+ 
+
+#ifndef APP_SCHEDULER_WITH_PAUSE
+#define APP_SCHEDULER_WITH_PAUSE 1
+#endif
+
+// <q> APP_SCHEDULER_WITH_PROFILER  - Enabling scheduler profiling
+ 
+
+#ifndef APP_SCHEDULER_WITH_PROFILER
+#define APP_SCHEDULER_WITH_PROFILER 1
+#endif
+
+// </e>
+
+// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
+//==========================================================
+#ifndef APP_TIMER_ENABLED
+#define APP_TIMER_ENABLED 1
+#endif
+// <o> APP_TIMER_CONFIG_RTC_FREQUENCY  - Configure RTC prescaler.
+ 
+// <0=> 32768 Hz 
+// <1=> 16384 Hz 
+// <3=> 8192 Hz 
+// <7=> 4096 Hz 
+// <15=> 2048 Hz 
+// <31=> 1024 Hz 
+
+#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
+#define APP_TIMER_CONFIG_RTC_FREQUENCY 1
+#endif
+
+// <o> APP_TIMER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
+#define APP_TIMER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. 
+// <i> Size of the queue depends on how many timers are used
+// <i> in the system, how often timers are started and overall
+// <i> system latency. If queue size is too small app_timer calls
+// <i> will fail.
+
+#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
+#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
+#endif
+
+// <q> APP_TIMER_CONFIG_USE_SCHEDULER  - Enable scheduling app_timer events to app_scheduler
+ 
+
+#ifndef APP_TIMER_CONFIG_USE_SCHEDULER
+#define APP_TIMER_CONFIG_USE_SCHEDULER 0
+#endif
+
+// <q> APP_TIMER_KEEPS_RTC_ACTIVE  - Enable RTC always on
+ 
+
+// <i> If option is enabled RTC is kept running even if there is no active timers.
+// <i> This option can be used when app_timer is used for timestamping.
+
+#ifndef APP_TIMER_KEEPS_RTC_ACTIVE
+#define APP_TIMER_KEEPS_RTC_ACTIVE 0
+#endif
+
+// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. 
+// <i> Maximum possible timeout that can be set is reduced by safe window.
+// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
+// <i> Since RTC is not stopped when processor is halted in debugging session, this value
+// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
+// <i> without corrupting app_timer behavior.
+
+#ifndef APP_TIMER_SAFE_WINDOW_MS
+#define APP_TIMER_SAFE_WINDOW_MS 300000
+#endif
+
+// <h> App Timer Legacy configuration - Legacy configuration.
+
+//==========================================================
+// <q> APP_TIMER_WITH_PROFILER  - Enable app_timer profiling
+ 
+
+#ifndef APP_TIMER_WITH_PROFILER
+#define APP_TIMER_WITH_PROFILER 0
+#endif
+
+// <q> APP_TIMER_CONFIG_SWI_NUMBER  - Configure SWI instance used.
+ 
+
+#ifndef APP_TIMER_CONFIG_SWI_NUMBER
+#define APP_TIMER_CONFIG_SWI_NUMBER 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
+ 
+
+#ifndef CRC16_ENABLED
+#define CRC16_ENABLED 1
+#endif
+
+// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
+//==========================================================
+#ifndef NRF_BALLOC_ENABLED
+#define NRF_BALLOC_ENABLED 1
+#endif
+// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
+#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
+#endif
+
+// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
+#endif
+
+// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED  - Enables basic checks in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
+#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED  - Enables double memory free check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED  - Enables free memory corruption check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_BALLOC_CLI_CMDS
+#define NRF_BALLOC_CLI_CMDS 0
+#endif
+
+// </e>
+
+// </e>
+
+// <q> NRF_MEMOBJ_ENABLED  - nrf_memobj - Linked memory allocator module
+ 
+
+#ifndef NRF_MEMOBJ_ENABLED
+#define NRF_MEMOBJ_ENABLED 1
+#endif
+
+// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
+//==========================================================
+#ifndef NRF_QUEUE_ENABLED
+#define NRF_QUEUE_ENABLED 1
+#endif
+// <q> NRF_QUEUE_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_QUEUE_CLI_CMDS
+#define NRF_QUEUE_CLI_CMDS 0
+#endif
+
+// </e>
+
+// <q> NRF_SECTION_ITER_ENABLED  - nrf_section_iter - Section iterator
+ 
+
+#ifndef NRF_SECTION_ITER_ENABLED
+#define NRF_SECTION_ITER_ENABLED 1
+#endif
+
+// <q> NRF_SORTLIST_ENABLED  - nrf_sortlist - Sorted list
+ 
+
+#ifndef NRF_SORTLIST_ENABLED
+#define NRF_SORTLIST_ENABLED 1
+#endif
+
+// <q> NRF_STRERROR_ENABLED  - nrf_strerror - Library for converting error code to string.
+ 
+
+#ifndef NRF_STRERROR_ENABLED
+#define NRF_STRERROR_ENABLED 1
+#endif
+
+// <h> nrf_fprintf - fprintf function.
+
+//==========================================================
+// <q> NRF_FPRINTF_ENABLED  - Enable/disable fprintf module.
+ 
+
+#ifndef NRF_FPRINTF_ENABLED
+#define NRF_FPRINTF_ENABLED 1
+#endif
+
+// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED  - For each printed LF, function will add CR.
+ 
+
+#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
+#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Log 
+
+//==========================================================
+// <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_RTT_ENABLED
+#define NRF_LOG_BACKEND_RTT_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
+// <i> If RTT fails to accept any new data after retries
+// <i> module assumes that host is not active and on next
+// <i> request it will perform only one write attempt.
+// <i> On successful writing, module assumes that host is active
+// <i> and scheme with retry is applied again.
+
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
+#endif
+
+// </e>
+
+// <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_UART_ENABLED
+#define NRF_LOG_BACKEND_UART_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
+#ifndef NRF_LOG_BACKEND_UART_TX_PIN
+#define NRF_LOG_BACKEND_UART_TX_PIN 6
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
+#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
+#endif
+
+// </e>
+
+// <e> NRF_LOG_ENABLED - nrf_log - Logger
+//==========================================================
+#ifndef NRF_LOG_ENABLED
+#define NRF_LOG_ENABLED 0
+#endif
+// <h> Log message pool - Configuration of log message pool
+
+//==========================================================
+// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
+// <i> If a small value is set, then performance of logs processing
+// <i> is degraded because data is fragmented. Bigger value impacts
+// <i> RAM memory utilization. The size is set to fit a message with
+// <i> a timestamp and up to 2 arguments in a single memory object.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
+#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
+#endif
+
+// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
+// <i> If a small value is set, then it may lead to a deadlock
+// <i> in certain cases if backend has high latency and holds
+// <i> multiple messages for long time. Bigger value impacts
+// <i> RAM memory usage.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
+#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
+#endif
+
+// </h> 
+//==========================================================
+
+// <q> NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
+ 
+
+// <i> If set then oldest logs are overwritten. Otherwise a 
+// <i> marker is injected informing about overflow.
+
+#ifndef NRF_LOG_ALLOW_OVERFLOW
+#define NRF_LOG_ALLOW_OVERFLOW 1
+#endif
+
+// <o> NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
+ 
+
+// <i> Must be power of 2 and multiple of 4.
+// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+// <2048=> 2048 
+// <4096=> 4096 
+// <8192=> 8192 
+// <16384=> 16384 
+
+#ifndef NRF_LOG_BUFSIZE
+#define NRF_LOG_BUFSIZE 1024
+#endif
+
+// <q> NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
+ 
+
+#ifndef NRF_LOG_CLI_CMDS
+#define NRF_LOG_CLI_CMDS 0
+#endif
+
+// <o> NRF_LOG_DEFAULT_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LOG_DEFAULT_LEVEL
+#define NRF_LOG_DEFAULT_LEVEL 3
+#endif
+
+// <q> NRF_LOG_DEFERRED  - Enable deffered logger.
+ 
+
+// <i> Log data is buffered and can be processed in idle.
+
+#ifndef NRF_LOG_DEFERRED
+#define NRF_LOG_DEFERRED 1
+#endif
+
+// <q> NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
+ 
+
+#ifndef NRF_LOG_FILTERS_ENABLED
+#define NRF_LOG_FILTERS_ENABLED 0
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
+//==========================================================
+#ifndef NRF_LOG_USES_COLORS
+#define NRF_LOG_USES_COLORS 0
+#endif
+// <o> NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_COLOR_DEFAULT
+#define NRF_LOG_COLOR_DEFAULT 0
+#endif
+
+// <o> NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_ERROR_COLOR
+#define NRF_LOG_ERROR_COLOR 2
+#endif
+
+// <o> NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_WARNING_COLOR
+#define NRF_LOG_WARNING_COLOR 4
+#endif
+
+// </e>
+
+// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping
+
+// <i> Function for getting the timestamp is provided by the user
+//==========================================================
+#ifndef NRF_LOG_USES_TIMESTAMP
+#define NRF_LOG_USES_TIMESTAMP 0
+#endif
+// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
+#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
+#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
+#endif
+
+// </e>
+
+// <h> nrf_log module configuration 
+
+//==========================================================
+// <h> nrf_log in nRF_Core 
+
+//==========================================================
+// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
+#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
+#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
+#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
+#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
+#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
+#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
+#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
+#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
+#define TASK_MANAGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TASK_MANAGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
+#define TASK_MANAGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TASK_MANAGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_INFO_COLOR
+#define TASK_MANAGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
+#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Drivers 
+
+//==========================================================
+// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef CLOCK_CONFIG_LOG_ENABLED
+#define CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef CLOCK_CONFIG_LOG_LEVEL
+#define CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_INFO_COLOR
+#define CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_DEBUG_COLOR
+#define CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef COMP_CONFIG_LOG_ENABLED
+#define COMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> COMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef COMP_CONFIG_LOG_LEVEL
+#define COMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> COMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_INFO_COLOR
+#define COMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> COMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_DEBUG_COLOR
+#define COMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef GPIOTE_CONFIG_LOG_ENABLED
+#define GPIOTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef GPIOTE_CONFIG_LOG_LEVEL
+#define GPIOTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_INFO_COLOR
+#define GPIOTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_DEBUG_COLOR
+#define GPIOTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef LPCOMP_CONFIG_LOG_ENABLED
+#define LPCOMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> LPCOMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef LPCOMP_CONFIG_LOG_LEVEL
+#define LPCOMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> LPCOMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_INFO_COLOR
+#define LPCOMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> LPCOMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_DEBUG_COLOR
+#define LPCOMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
+#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
+#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
+#define MAX3421E_HOST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
+#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef NRFX_USBD_CONFIG_LOG_ENABLED
+#define NRFX_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_USBD_CONFIG_LOG_LEVEL
+#define NRFX_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_INFO_COLOR
+#define NRFX_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
+#define NRFX_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PDM_CONFIG_LOG_ENABLED
+#define PDM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PDM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PDM_CONFIG_LOG_LEVEL
+#define PDM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PDM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_INFO_COLOR
+#define PDM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PDM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_DEBUG_COLOR
+#define PDM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PPI_CONFIG_LOG_ENABLED
+#define PPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PPI_CONFIG_LOG_LEVEL
+#define PPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_INFO_COLOR
+#define PPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_DEBUG_COLOR
+#define PPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PWM_CONFIG_LOG_ENABLED
+#define PWM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PWM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PWM_CONFIG_LOG_LEVEL
+#define PWM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PWM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_INFO_COLOR
+#define PWM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PWM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_DEBUG_COLOR
+#define PWM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef QDEC_CONFIG_LOG_ENABLED
+#define QDEC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> QDEC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef QDEC_CONFIG_LOG_LEVEL
+#define QDEC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> QDEC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_INFO_COLOR
+#define QDEC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> QDEC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_DEBUG_COLOR
+#define QDEC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RNG_CONFIG_LOG_ENABLED
+#define RNG_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RNG_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RNG_CONFIG_LOG_LEVEL
+#define RNG_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RNG_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_INFO_COLOR
+#define RNG_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RNG_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_DEBUG_COLOR
+#define RNG_CONFIG_DEBUG_COLOR 0
+#endif
+
+// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED  - Enables logging of random numbers.
+ 
+
+#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
+#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
+#endif
+
+// </e>
+
+// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RTC_CONFIG_LOG_ENABLED
+#define RTC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RTC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RTC_CONFIG_LOG_LEVEL
+#define RTC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RTC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_INFO_COLOR
+#define RTC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RTC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_DEBUG_COLOR
+#define RTC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SAADC_CONFIG_LOG_ENABLED
+#define SAADC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SAADC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SAADC_CONFIG_LOG_LEVEL
+#define SAADC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SAADC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_INFO_COLOR
+#define SAADC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SAADC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_DEBUG_COLOR
+#define SAADC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPIS_CONFIG_LOG_ENABLED
+#define SPIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPIS_CONFIG_LOG_LEVEL
+#define SPIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_INFO_COLOR
+#define SPIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_DEBUG_COLOR
+#define SPIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPI_CONFIG_LOG_ENABLED
+#define SPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPI_CONFIG_LOG_LEVEL
+#define SPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_INFO_COLOR
+#define SPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_DEBUG_COLOR
+#define SPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TIMER_CONFIG_LOG_ENABLED
+#define TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TIMER_CONFIG_LOG_LEVEL
+#define TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_INFO_COLOR
+#define TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_DEBUG_COLOR
+#define TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWIS_CONFIG_LOG_ENABLED
+#define TWIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWIS_CONFIG_LOG_LEVEL
+#define TWIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_INFO_COLOR
+#define TWIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_DEBUG_COLOR
+#define TWIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWI_CONFIG_LOG_ENABLED
+#define TWI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWI_CONFIG_LOG_LEVEL
+#define TWI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_INFO_COLOR
+#define TWI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_DEBUG_COLOR
+#define TWI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef UART_CONFIG_LOG_ENABLED
+#define UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef UART_CONFIG_LOG_LEVEL
+#define UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_INFO_COLOR
+#define UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_DEBUG_COLOR
+#define UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef USBD_CONFIG_LOG_ENABLED
+#define USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef USBD_CONFIG_LOG_LEVEL
+#define USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_INFO_COLOR
+#define USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_DEBUG_COLOR
+#define USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef WDT_CONFIG_LOG_ENABLED
+#define WDT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> WDT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef WDT_CONFIG_LOG_LEVEL
+#define WDT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> WDT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_INFO_COLOR
+#define WDT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> WDT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_DEBUG_COLOR
+#define WDT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Libraries 
+
+//==========================================================
+// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_TIMER_CONFIG_LOG_ENABLED
+#define APP_TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_LOG_LEVEL
+#define APP_TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
+#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_INFO_COLOR
+#define APP_TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_DEBUG_COLOR
+#define APP_TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
+#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
+#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
+//==========================================================
+#ifndef APP_USBD_CONFIG_LOG_ENABLED
+#define APP_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CONFIG_LOG_LEVEL
+#define APP_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_INFO_COLOR
+#define APP_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_DEBUG_COLOR
+#define APP_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
+#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
+#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
+#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
+#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
+#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
+#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
+#define APP_USBD_MSC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
+#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
+#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
+#define NRF_ATFIFO_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
+#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
+#define NRF_BALLOC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_INFO_COLOR
+#define NRF_BALLOC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
+#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
+#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
+#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
+#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
+#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
+#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
+#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
+#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
+#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
+#define NRF_QUEUE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_QUEUE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_INFO_COLOR
+#define NRF_QUEUE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
+#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
+//==========================================================
+#ifndef NRF_SDH_ANT_LOG_ENABLED
+#define NRF_SDH_ANT_LOG_ENABLED 0
+#endif
+// <o> NRF_SDH_ANT_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_ANT_LOG_LEVEL
+#define NRF_SDH_ANT_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_ANT_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_INFO_COLOR
+#define NRF_SDH_ANT_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_ANT_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_DEBUG_COLOR
+#define NRF_SDH_ANT_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
+//==========================================================
+#ifndef NRF_SDH_BLE_LOG_ENABLED
+#define NRF_SDH_BLE_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_BLE_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_BLE_LOG_LEVEL
+#define NRF_SDH_BLE_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_BLE_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_INFO_COLOR
+#define NRF_SDH_BLE_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_BLE_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_DEBUG_COLOR
+#define NRF_SDH_BLE_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
+//==========================================================
+#ifndef NRF_SDH_LOG_ENABLED
+#define NRF_SDH_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_LOG_LEVEL
+#define NRF_SDH_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_INFO_COLOR
+#define NRF_SDH_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_DEBUG_COLOR
+#define NRF_SDH_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
+//==========================================================
+#ifndef NRF_SDH_SOC_LOG_ENABLED
+#define NRF_SDH_SOC_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_SOC_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_SOC_LOG_LEVEL
+#define NRF_SDH_SOC_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_SOC_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_INFO_COLOR
+#define NRF_SDH_SOC_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_SOC_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_DEBUG_COLOR
+#define NRF_SDH_SOC_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
+#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
+#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
+#define NRF_SORTLIST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
+#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
+#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
+#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
+#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
+#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
+//==========================================================
+#ifndef PM_LOG_ENABLED
+#define PM_LOG_ENABLED 1
+#endif
+// <o> PM_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PM_LOG_LEVEL
+#define PM_LOG_LEVEL 3
+#endif
+
+// <o> PM_LOG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_INFO_COLOR
+#define PM_LOG_INFO_COLOR 0
+#endif
+
+// <o> PM_LOG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_DEBUG_COLOR
+#define PM_LOG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Serialization 
+
+//==========================================================
+// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
+#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
+#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED  - nrf_log_str_formatter - Log string formatter
+ 
+
+#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
+#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Segger_RTT 
+
+//==========================================================
+// <h> segger_rtt - SEGGER RTT
+
+//==========================================================
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. 
+// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
+// <i> or this value is actually used. It depends on which one is bigger.
+
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. 
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE  - RTT behavior if the buffer is full.
+ 
+
+// <i> The following modes are supported:
+// <i> - SKIP  - Do not block, output nothing.
+// <i> - TRIM  - Do not block, output as much as fits.
+// <i> - BLOCK - Wait until there is space in the buffer.
+// <0=> SKIP 
+// <1=> TRIM 
+// <2=> BLOCK_IF_FIFO_FULL 
+
+#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
+#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_SoftDevice 
+
+//==========================================================
+// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler
+//==========================================================
+#ifndef NRF_SDH_BLE_ENABLED
+#define NRF_SDH_BLE_ENABLED 1
+#endif
+// <h> BLE Stack configuration - Stack configuration parameters
+
+// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set.
+// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set.
+//==========================================================
+// <o> NRF_SDH_BLE_GAP_DATA_LENGTH   <27-251> 
+
+
+// <i> Requested BLE GAP data length to be negotiated.
+
+#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH
+#define NRF_SDH_BLE_GAP_DATA_LENGTH 27
+#endif
+
+// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
+#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
+#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
+// <i> Maximum number of total concurrent connections using the default configuration.
+
+#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
+#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1
+#endif
+
+// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. 
+// <i> The time set aside for this connection on every connection interval in 1.25 ms units.
+
+#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
+#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6
+#endif
+
+// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. 
+#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
+#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 250
+#endif
+
+// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. 
+#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
+#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408
+#endif
+
+// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. 
+#ifndef NRF_SDH_BLE_VS_UUID_COUNT
+#define NRF_SDH_BLE_VS_UUID_COUNT 0
+#endif
+
+// <q> NRF_SDH_BLE_SERVICE_CHANGED  - Include the Service Changed characteristic in the Attribute Table.
+ 
+
+#ifndef NRF_SDH_BLE_SERVICE_CHANGED
+#define NRF_SDH_BLE_SERVICE_CHANGED 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> BLE Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. 
+// <i> This setting configures the number of priority levels available for BLE event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4
+#endif
+
+// <h> BLE Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_BLE_OBSERVER_PRIO
+#define BLE_ADV_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client.
+
+#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO
+#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_ANS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client.
+
+#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO
+#define BLE_ANS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service.
+
+#ifndef BLE_BAS_BLE_OBSERVER_PRIO
+#define BLE_BAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service Client.
+
+#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO
+#define BLE_BAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Blood Pressure Service.
+
+#ifndef BLE_BPS_BLE_OBSERVER_PRIO
+#define BLE_BPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection parameters module.
+
+#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO
+#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection State module.
+
+#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO
+#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0
+#endif
+
+// <o> BLE_CSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service.
+
+#ifndef BLE_CSCS_BLE_OBSERVER_PRIO
+#define BLE_CSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Current Time Service Client.
+
+#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO
+#define BLE_CTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Database Discovery module.
+
+#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO
+#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_BLE_OBSERVER_PRIO
+#define BLE_DFU_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DIS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Device Information Client.
+
+#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO
+#define BLE_DIS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_GLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Glucose Service.
+
+#ifndef BLE_GLS_BLE_OBSERVER_PRIO
+#define BLE_GLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HIDS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Human Interface Device Service.
+
+#ifndef BLE_HIDS_BLE_OBSERVER_PRIO
+#define BLE_HIDS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service.
+
+#ifndef BLE_HRS_BLE_OBSERVER_PRIO
+#define BLE_HRS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client.
+
+#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO
+#define BLE_HRS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Health Thermometer Service.
+
+#ifndef BLE_HTS_BLE_OBSERVER_PRIO
+#define BLE_HTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service.
+
+#ifndef BLE_IAS_BLE_OBSERVER_PRIO
+#define BLE_IAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client.
+
+#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO
+#define BLE_IAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service.
+
+#ifndef BLE_LBS_BLE_OBSERVER_PRIO
+#define BLE_LBS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service Client.
+
+#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO
+#define BLE_LBS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Link Loss Service.
+
+#ifndef BLE_LLS_BLE_OBSERVER_PRIO
+#define BLE_LLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LNS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Location Navigation Service.
+
+#ifndef BLE_LNS_BLE_OBSERVER_PRIO
+#define BLE_LNS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Service.
+
+#ifndef BLE_NUS_BLE_OBSERVER_PRIO
+#define BLE_NUS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Central Service.
+
+#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO
+#define BLE_NUS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service.
+
+#ifndef BLE_OTS_BLE_OBSERVER_PRIO
+#define BLE_OTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service client.
+
+#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO
+#define BLE_OTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service.
+
+#ifndef BLE_RSCS_BLE_OBSERVER_PRIO
+#define BLE_RSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client.
+
+#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO
+#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_TPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the TX Power Service.
+
+#ifndef BLE_TPS_BLE_OBSERVER_PRIO
+#define BLE_TPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BSP_BTN_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Button Control module.
+
+#ifndef BSP_BTN_BLE_OBSERVER_PRIO
+#define BSP_BTN_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Bond Management Service.
+
+#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service.
+
+#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Eddystone module.
+
+#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO
+#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT Service Client.
+
+#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT module.
+
+#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Queued writes module.
+
+#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO
+#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_SCAN_OBSERVER_PRIO  
+// <i> Priority for dispatching the BLE events to the Scanning Module.
+
+#ifndef NRF_BLE_SCAN_OBSERVER_PRIO
+#define NRF_BLE_SCAN_OBSERVER_PRIO 1
+#endif
+
+// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. 
+#ifndef PM_BLE_OBSERVER_PRIO
+#define PM_BLE_OBSERVER_PRIO 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler
+//==========================================================
+#ifndef NRF_SDH_ENABLED
+#define NRF_SDH_ENABLED 1
+#endif
+// <h> Dispatch model 
+
+// <i> This setting configures how Stack events are dispatched to the application.
+//==========================================================
+// <o> NRF_SDH_DISPATCH_MODEL
+ 
+
+// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context.
+// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler.
+// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually.
+// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT 
+// <1=> NRF_SDH_DISPATCH_MODEL_APPSH 
+// <2=> NRF_SDH_DISPATCH_MODEL_POLLING 
+
+#ifndef NRF_SDH_DISPATCH_MODEL
+#define NRF_SDH_DISPATCH_MODEL 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Clock - SoftDevice clock configuration
+
+//==========================================================
+// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
+ 
+// <0=> NRF_CLOCK_LF_SRC_RC 
+// <1=> NRF_CLOCK_LF_SRC_XTAL 
+// <2=> NRF_CLOCK_LF_SRC_SYNTH 
+
+#ifndef NRF_SDH_CLOCK_LF_SRC
+#define NRF_SDH_CLOCK_LF_SRC 1
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
+#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
+#define NRF_SDH_CLOCK_LF_RC_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
+// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
+// <i>  if the temperature has not changed.
+
+#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
+#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
+ 
+// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
+// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
+// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
+// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
+// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
+// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
+// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
+// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
+// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
+// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
+// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
+// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
+
+#ifndef NRF_SDH_CLOCK_LF_ACCURACY
+#define NRF_SDH_CLOCK_LF_ACCURACY 7
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> SDH Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC).
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2
+#endif
+
+
+// <h> State Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO
+#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO
+#define POWER_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> RNG_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to this module.
+
+#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO
+#define RNG_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Stack Event Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO
+#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO
+#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO
+#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler
+//==========================================================
+#ifndef NRF_SDH_SOC_ENABLED
+#define NRF_SDH_SOC_ENABLED 1
+#endif
+// <h> SoC Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. 
+// <i> This setting configures the number of priority levels available for the SoC event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <h> SoC Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_SOC_OBSERVER_PRIO
+#define BLE_ADV_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_SOC_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_SOC_OBSERVER_PRIO
+#define BLE_DFU_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO
+#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO
+#define POWER_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <<< end of configuration section >>>
+#endif //SDK_CONFIG_H
+
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emProject
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emProject
@@ -0,0 +1,159 @@
+<!DOCTYPE CrossStudio_Project_File>
+<solution Name="ble_connectivity_132v5_hci_pca10040" target="8" version="2">
+  <project Name="ble_connectivity_132v5_hci_pca10040">
+    <configuration
+      Name="Common"
+      arm_architecture="v7EM"
+      arm_core_type="Cortex-M4"
+      arm_endian="Little"
+      arm_fp_abi="Hard"
+      arm_fpu_type="FPv4-SP-D16"
+      arm_linker_heap_size="512"
+      arm_linker_process_stack_size="0"
+      arm_linker_stack_size="2048"
+      arm_linker_treat_warnings_as_errors="No"
+      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
+      arm_target_device_name="nRF52832_xxAA"
+      arm_target_interface_type="SWD"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/common;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s132v5/headers;../../../../../../components/softdevice/s132v5/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10040;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52;NRF52832_XXAA;NRF52_PAN_74;NRF_SD_BLE_API_VERSION=5;S132;SER_CONNECTIVITY;SER_PHY_HCI;SOFTDEVICE_PRESENT;"
+      debug_target_connection="J-Link"
+      gcc_entry_point="Reset_Handler"
+      macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
+      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52.svd"
+      debug_additional_load_file="../../../../../../components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex"
+      debug_start_from_entry_point_symbol="No"
+      gcc_debugging_level="Level 3"      linker_output_format="hex"
+      linker_printf_width_precision_supported="Yes"
+      linker_printf_fmt_level="long"
+      linker_scanf_fmt_level="long"
+      linker_section_placement_file="flash_placement.xml"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x23000;FLASH_SIZE=0x5d000;RAM_START=0x2000a5f8;RAM_SIZE=0x5a08"
+      linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;connectivity_version_info RX 0x50000 0x18"
+      project_directory=""
+      project_type="Executable" />
+      <folder Name="Segger Startup Files">
+        <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+      </folder>
+    <folder Name="nRF_Log">
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_uart.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_default_backends.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_frontend.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_str_formatter.c" />
+    </folder>
+    <folder Name="nRF_Libraries">
+      <file file_name="../../../../../../components/libraries/util/app_error.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_handler_gcc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_weak.c" />
+      <file file_name="../../../../../../components/libraries/scheduler/app_scheduler.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/app_timer2.c" />
+      <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
+      <file file_name="../../../../../../components/libraries/crc16/crc16.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/drv_rtc.c" />
+      <file file_name="../../../../../../components/libraries/util/nrf_assert.c" />
+      <file file_name="../../../../../../components/libraries/atomic_fifo/nrf_atfifo.c" />
+      <file file_name="../../../../../../components/libraries/atomic/nrf_atomic.c" />
+      <file file_name="../../../../../../components/libraries/balloc/nrf_balloc.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf_format.c" />
+      <file file_name="../../../../../../components/libraries/memobj/nrf_memobj.c" />
+      <file file_name="../../../../../../components/libraries/queue/nrf_queue.c" />
+      <file file_name="../../../../../../components/libraries/ringbuf/nrf_ringbuf.c" />
+      <file file_name="../../../../../../components/libraries/experimental_section_vars/nrf_section_iter.c" />
+      <file file_name="../../../../../../components/libraries/sortlist/nrf_sortlist.c" />
+      <file file_name="../../../../../../components/libraries/strerror/nrf_strerror.c" />
+    </folder>
+    <folder Name="None">
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52.c" />
+    </folder>
+    <folder Name="Board Definition">
+      <file file_name="../../../../../../components/boards/boards.c" />
+    </folder>
+    <folder Name="nRF_Serialization">
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/ble_dtm_init.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/ble_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/cond_field_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/hal/dtm_uart.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_error_handling.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_event_encoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_handlers.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_pkt_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_reset_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/common/ser_dbg_sd_str.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_hal_transport.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci_slip.c" />
+    </folder>
+    <folder Name="nRF_Drivers">
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_clock.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
+    </folder>
+    <folder Name="Application">
+      <file file_name="../../../main.c" />
+      <file file_name="../config/sdk_config.h" />
+    </folder>
+    <folder Name="nRF_Segger_RTT">
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_Syscalls_SES.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_printf.c" />
+    </folder>
+    <folder Name="nRF_BLE">
+      <file file_name="../../../../../../components/ble/common/ble_advdata.c" />
+      <file file_name="../../../../../../components/ble/common/ble_conn_params.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm_hw_nrf52.c" />
+      <file file_name="../../../../../../components/ble/common/ble_srv_common.c" />
+    </folder>
+    <folder Name="nRF_SoftDevice">
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_ble.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
+    </folder>
+  </project>
+  <configuration Name="Release"
+    c_preprocessor_definitions="NDEBUG"
+    gcc_optimization_level="Optimize For Size" />
+  <configuration Name="Debug"
+    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
+    gcc_optimization_level="None"/>
+</solution>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emSession nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emSession
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/ble_connectivity_132v5_hci_pca10040.emSession
@@ -0,0 +1,7 @@
+<!DOCTYPE CrossStudio_Session_File>
+<session>
+  <ARMCrossStudioWindow activeProject="ble_connectivity_132v5_hci_pca10040" buildConfiguration="Release"/>
+  <Files>
+    <SessionOpenFile codecName="Default" debugPath="../../../main.c" left="0" name="unnamed" path="../../../main.c" selected="1" top="0" useBinaryEdit="0" useTextEdit="1" x="0" y="0"/>
+  </Files>
+</session>
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/flash_placement.xml
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040/ser_s132v5_hci/ses/flash_placement.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE Linker_Placement_File>
+<Root name="Flash Section Placement">
+  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
+    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
+    <ProgramSection alignment="4" load="Yes" name=".init" />
+    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".text" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
+    <ProgramSection alignment="4" load="Yes" name=".dtors" />
+    <ProgramSection alignment="4" load="Yes" name=".ctors" />
+    <ProgramSection alignment="4" load="Yes" name=".rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
+    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
+    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
+    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
+  </MemorySegment>
+  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
+    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
+    <ProgramSection alignment="4" load="No" name=".fast_run" />
+    <ProgramSection alignment="4" load="No" name=".data_run" />
+    <ProgramSection alignment="4" load="No" name=".tdata_run" />
+    <ProgramSection alignment="4" load="No" name=".bss" />
+    <ProgramSection alignment="4" load="No" name=".tbss" />
+    <ProgramSection alignment="4" load="No" name=".non_init" />
+    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
+    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
+    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
+  </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
+</Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20002750, LENGTH = 0x38b0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4211,132 +4408,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10040e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10040e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10040e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10040e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20002750;RAM_SIZE=0x38b0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20002750, LENGTH = 0x38b0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -726,6 +793,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4456,132 +4653,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10040e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10040e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10040e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10040e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20002750;RAM_SIZE=0x38b0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20002750, LENGTH = 0x38b0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -726,6 +793,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4456,132 +4653,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10040e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10040e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10040e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10040e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20002750;RAM_SIZE=0x38b0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_spi_5W/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20002750, LENGTH = 0x38b0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4190,132 +4387,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10040e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10040e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10040e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10040e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20002750;RAM_SIZE=0x38b0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10040e/ser_s112_uart/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/Makefile
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/Makefile
@@ -0,0 +1,290 @@
+PROJECT_NAME     := ble_connectivity_132v3_usb_hci_pca10056
+TARGETS          := nrf52840_xxaa
+OUTPUT_DIRECTORY := _build
+
+SDK_ROOT := ../../../../../..
+PROJ_DIR := ../../..
+
+$(OUTPUT_DIRECTORY)/nrf52840_xxaa.out: \
+  LINKER_SCRIPT  := ble_connectivity_gcc_nrf52.ld
+
+# Source files common to all targets
+SRC_FILES += \
+  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52840.S \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
+  $(SDK_ROOT)/components/libraries/util/app_error.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
+  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/app_timer2.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_core.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_serial_num.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_string_desc.c \
+  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
+  $(SDK_ROOT)/components/libraries/crc16/crc16.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/drv_rtc.c \
+  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
+  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
+  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
+  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
+  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
+  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \
+  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
+  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
+  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
+  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52840.c \
+  $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/ble_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/cond_field_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/hal/dtm_uart.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_error_handling.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_event_encoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_handlers.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_pkt_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_reset_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/common/ser_dbg_sd_str.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_hal_transport.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_power.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
+  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_power.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_systick.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_usbd.c \
+  $(PROJ_DIR)/main.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
+  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm_hw_nrf52.c \
+  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
+  $(SDK_ROOT)/external/utf_converter/utf.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
+
+# Include folders common to all targets
+INC_FOLDERS += \
+  $(SDK_ROOT)/components \
+  $(SDK_ROOT)/components/serialization/connectivity/hal \
+  $(SDK_ROOT)/modules/nrfx/mdk \
+  $(SDK_ROOT)/components/libraries/scheduler \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers \
+  $(SDK_ROOT)/components/toolchain/cmsis/include \
+  $(SDK_ROOT)/components/libraries/queue \
+  $(SDK_ROOT)/components/libraries/timer \
+  $(SDK_ROOT)/components/boards \
+  $(SDK_ROOT)/components/serialization/connectivity \
+  $(SDK_ROOT)/components/libraries/strerror \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
+  $(SDK_ROOT)/components/libraries/crc16 \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu \
+  $(SDK_ROOT)/components/serialization/common \
+  $(SDK_ROOT)/components/libraries/util \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
+  ../config \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc \
+  $(SDK_ROOT)/components/ble/common \
+  $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/libraries/ringbuf \
+  $(SDK_ROOT)/modules/nrfx/hal \
+  $(SDK_ROOT)/components/libraries/bsp \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers/nrf52 \
+  $(SDK_ROOT)/components/libraries/log \
+  $(SDK_ROOT)/external/utf_converter \
+  $(SDK_ROOT)/modules/nrfx \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars \
+  $(SDK_ROOT)/integration/nrfx/legacy \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy \
+  $(SDK_ROOT)/components/libraries/usbd \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common \
+  $(SDK_ROOT)/components/libraries/delay \
+  $(SDK_ROOT)/external/segger_rtt \
+  $(SDK_ROOT)/components/libraries/atomic_fifo \
+  $(SDK_ROOT)/components/libraries/atomic \
+  $(SDK_ROOT)/components/libraries/sortlist \
+  $(SDK_ROOT)/components/libraries/memobj \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger \
+  $(SDK_ROOT)/components/serialization/common/transport \
+  $(SDK_ROOT)/components/libraries/timer/experimental \
+  $(SDK_ROOT)/components/softdevice/common \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
+  $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/components/libraries/block_dev \
+  $(SDK_ROOT)/external/fprintf \
+  $(SDK_ROOT)/components/libraries/log/src \
+
+# Libraries common to all targets
+LIB_FILES += \
+
+# Optimization flags
+OPT = -Os -g3
+# Uncomment the line below to enable link time optimization
+#OPT += -flto
+
+# C flags common to all targets
+CFLAGS += $(OPT)
+CFLAGS += -DAPP_TIMER_V2
+CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -DBOARD_PCA10056
+CFLAGS += -DBSP_DEFINES_ONLY
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DFLOAT_ABI_HARD
+CFLAGS += -DHCI_TIMER2
+CFLAGS += -DNRF52840_XXAA
+CFLAGS += -DNRF_SD_BLE_API_VERSION=3
+CFLAGS += -DS132
+CFLAGS += -DSER_CONNECTIVITY
+CFLAGS += -DSER_PHY_HCI
+CFLAGS += -DSER_PHY_HCI_USB_CDC
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs
+CFLAGS += -Wall -Werror
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in a separate section, this allows linker to discard unused ones
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin -fshort-enums
+
+# C++ flags common to all targets
+CXXFLAGS += $(OPT)
+
+# Assembler flags common to all targets
+ASMFLAGS += -g3
+ASMFLAGS += -mcpu=cortex-m4
+ASMFLAGS += -mthumb -mabi=aapcs
+ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+ASMFLAGS += -DAPP_TIMER_V2
+ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -DBOARD_PCA10056
+ASMFLAGS += -DBSP_DEFINES_ONLY
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DFLOAT_ABI_HARD
+ASMFLAGS += -DHCI_TIMER2
+ASMFLAGS += -DNRF52840_XXAA
+ASMFLAGS += -DNRF_SD_BLE_API_VERSION=3
+ASMFLAGS += -DS132
+ASMFLAGS += -DSER_CONNECTIVITY
+ASMFLAGS += -DSER_PHY_HCI
+ASMFLAGS += -DSER_PHY_HCI_USB_CDC
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+
+# Linker flags
+LDFLAGS += $(OPT)
+LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs
+
+nrf52840_xxaa: CFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: CFLAGS += -D__STACK_SIZE=2048
+nrf52840_xxaa: ASMFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: ASMFLAGS += -D__STACK_SIZE=2048
+
+# Add standard libraries at the very end of the linker input, after all objects
+# that may need symbols provided by these libraries.
+LIB_FILES += -lc -lnosys -lm
+
+
+.PHONY: default help
+
+# Default target - first one defined
+default: nrf52840_xxaa
+
+# Print all targets that can be built
+help:
+	@echo following targets are available:
+	@echo		nrf52840_xxaa
+	@echo		flash_softdevice
+	@echo		sdk_config - starting external tool for editing sdk_config.h
+	@echo		flash      - flashing binary
+
+TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc
+
+
+include $(TEMPLATE_PATH)/Makefile.common
+
+$(foreach target, $(TARGETS), $(call define_target, $(target)))
+
+.PHONY: flash flash_softdevice erase
+
+# Flash the program
+flash: default
+	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex
+	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+# Flash softdevice
+flash_softdevice:
+	@echo Flashing: s132_nrf52_3.0.0_softdevice.hex
+	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+erase:
+	nrfjprog -f nrf52 --eraseall
+
+SDK_CONFIG_FILE := ../config/sdk_config.h
+CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
+sdk_config:
+	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -0,0 +1,108 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0xe1000
+  RAM (rwx) :  ORIGIN = 0x200199c0, LENGTH = 0x26640
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+  .log_dynamic_data :
+  {
+    PROVIDE(__start_log_dynamic_data = .);
+    KEEP(*(SORT(.log_dynamic_data*)))
+    PROVIDE(__stop_log_dynamic_data = .);
+  } > RAM
+  .log_filter_data :
+  {
+    PROVIDE(__start_log_filter_data = .);
+    KEEP(*(SORT(.log_filter_data*)))
+    PROVIDE(__stop_log_filter_data = .);
+  } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+  .sdh_ble_observers :
+  {
+    PROVIDE(__start_sdh_ble_observers = .);
+    KEEP(*(SORT(.sdh_ble_observers*)))
+    PROVIDE(__stop_sdh_ble_observers = .);
+  } > FLASH
+  .sdh_soc_observers :
+  {
+    PROVIDE(__start_sdh_soc_observers = .);
+    KEEP(*(SORT(.sdh_soc_observers*)))
+    PROVIDE(__stop_sdh_soc_observers = .);
+  } > FLASH
+    .nrf_queue :
+  {
+    PROVIDE(__start_nrf_queue = .);
+    KEEP(*(.nrf_queue))
+    PROVIDE(__stop_nrf_queue = .);
+  } > FLASH
+  .log_const_data :
+  {
+    PROVIDE(__start_log_const_data = .);
+    KEEP(*(SORT(.log_const_data*)))
+    PROVIDE(__stop_log_const_data = .);
+  } > FLASH
+    .nrf_balloc :
+  {
+    PROVIDE(__start_nrf_balloc = .);
+    KEEP(*(.nrf_balloc))
+    PROVIDE(__stop_nrf_balloc = .);
+  } > FLASH
+  .sdh_state_observers :
+  {
+    PROVIDE(__start_sdh_state_observers = .);
+    KEEP(*(SORT(.sdh_state_observers*)))
+    PROVIDE(__stop_sdh_state_observers = .);
+  } > FLASH
+  .sdh_stack_observers :
+  {
+    PROVIDE(__start_sdh_stack_observers = .);
+    KEEP(*(SORT(.sdh_stack_observers*)))
+    PROVIDE(__stop_sdh_stack_observers = .);
+  } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
+  .log_backends :
+  {
+    PROVIDE(__start_log_backends = .);
+    KEEP(*(SORT(.log_backends*)))
+    PROVIDE(__stop_log_backends = .);
+  } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/config/sdk_config.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/config/sdk_config.h
@@ -0,0 +1,5369 @@
+/**
+ * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#ifndef SDK_CONFIG_H
+#define SDK_CONFIG_H
+// <<< Use Configuration Wizard in Context Menu >>>\n
+#ifdef USE_APP_CONFIG
+#include "app_config.h"
+#endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA "+" __DATE__ " " __TIME__
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> Board Definition 
+
+//==========================================================
+// <h> nrf_dfu_trigger_usb - USB DFU Trigger library
+
+//==========================================================
+// <q> NRF_DFU_TRIGGER_USB_USB_SHARED  - Flag indicating whether USB is used for other purposes in the application.
+ 
+
+#ifndef NRF_DFU_TRIGGER_USB_USB_SHARED
+#define NRF_DFU_TRIGGER_USB_USB_SHARED 1
+#endif
+
+// <o> NRF_DFU_TRIGGER_USB_INTERFACE_NUM - The USB interface to use for the DFU Trigger library.  <0-255> 
+
+
+// <i> According to the USB Specification, interface numbers cannot have
+// <i> gaps. Tailor this value to adhere to this limitation.
+
+#ifndef NRF_DFU_TRIGGER_USB_INTERFACE_NUM
+#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_BLE 
+
+//==========================================================
+// <q> BLE_DTM_ENABLED  - ble_dtm - Module for testing RF/PHY using DTM commands
+ 
+
+#ifndef BLE_DTM_ENABLED
+#define BLE_DTM_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Drivers 
+
+//==========================================================
+// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
+//==========================================================
+#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_CLOCK_ENABLED 1
+#endif
+// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef NRFX_CLOCK_CONFIG_LF_SRC
+#define NRFX_CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
+#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
+#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
+#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
+#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
+#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver
+//==========================================================
+#ifndef NRFX_POWER_ENABLED
+#define NRFX_POWER_ENABLED 1
+#endif
+// <o> NRFX_POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_POWER_CONFIG_IRQ_PRIORITY
+#define NRFX_POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCEN
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCENHV
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
+//==========================================================
+#ifndef NRFX_PRS_ENABLED
+#define NRFX_PRS_ENABLED 1
+#endif
+// <q> NRFX_PRS_BOX_0_ENABLED  - Enables box 0 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_0_ENABLED
+#define NRFX_PRS_BOX_0_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_1_ENABLED  - Enables box 1 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_1_ENABLED
+#define NRFX_PRS_BOX_1_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_2_ENABLED  - Enables box 2 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_2_ENABLED
+#define NRFX_PRS_BOX_2_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_3_ENABLED  - Enables box 3 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_3_ENABLED
+#define NRFX_PRS_BOX_3_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_4_ENABLED  - Enables box 4 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_4_ENABLED
+#define NRFX_PRS_BOX_4_ENABLED 1
+#endif
+
+// <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_PRS_CONFIG_LOG_ENABLED
+#define NRFX_PRS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_PRS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_PRS_CONFIG_LOG_LEVEL
+#define NRFX_PRS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_PRS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_INFO_COLOR
+#define NRFX_PRS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_PRS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
+#define NRFX_PRS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> NRFX_SYSTICK_ENABLED  - nrfx_systick - ARM(R) SysTick driver
+ 
+
+#ifndef NRFX_SYSTICK_ENABLED
+#define NRFX_SYSTICK_ENABLED 1
+#endif
+
+// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
+//==========================================================
+#ifndef NRFX_UARTE_ENABLED
+#define NRFX_UARTE_ENABLED 1
+#endif
+// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
+#ifndef NRFX_UARTE0_ENABLED
+#define NRFX_UARTE0_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE1_ENABLED - Enable UARTE1 instance 
+#ifndef NRFX_UARTE1_ENABLED
+#define NRFX_UARTE1_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
+#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
+#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10289152=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
+#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
+#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
+#define NRFX_UARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
+#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
+//==========================================================
+#ifndef NRFX_UART_ENABLED
+#define NRFX_UART_ENABLED 1
+#endif
+// <o> NRFX_UART0_ENABLED - Enable UART0 instance 
+#ifndef NRFX_UART0_ENABLED
+#define NRFX_UART0_ENABLED 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
+#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
+#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3866624=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7729152=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10309632=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15462400=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30924800=> 115200 baud 
+// <61845504=> 230400 baud 
+// <67108864=> 250000 baud 
+// <123695104=> 460800 baud 
+// <247386112=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UART_CONFIG_LOG_ENABLED
+#define NRFX_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UART_CONFIG_LOG_LEVEL
+#define NRFX_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_INFO_COLOR
+#define NRFX_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
+#define NRFX_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_USBD_ENABLED - nrfx_usbd - USBD peripheral driver
+//==========================================================
+#ifndef NRFX_USBD_ENABLED
+#define NRFX_USBD_ENABLED 1
+#endif
+// <o> NRFX_USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_USBD_CONFIG_IRQ_PRIORITY
+#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> NRFX_USBD_CONFIG_DMASCHEDULER_MODE  - USBD DMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_MODE
+#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> NRFX_USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef NRFX_USBD_CONFIG_ISO_IN_ZLP
+#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
+//==========================================================
+#ifndef NRF_CLOCK_ENABLED
+#define NRF_CLOCK_ENABLED 1
+#endif
+// <o> CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef CLOCK_CONFIG_LF_SRC
+#define CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <q> CLOCK_CONFIG_LF_CAL_ENABLED  - Calibration enable for LF Clock Source
+ 
+
+#ifndef CLOCK_CONFIG_LF_CAL_ENABLED
+#define CLOCK_CONFIG_LF_CAL_ENABLED 0
+#endif
+
+// <o> CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef CLOCK_CONFIG_IRQ_PRIORITY
+#define CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> POWER_ENABLED - nrf_drv_power - POWER peripheral driver - legacy layer
+//==========================================================
+#ifndef POWER_ENABLED
+#define POWER_ENABLED 1
+#endif
+// <o> POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef POWER_CONFIG_IRQ_PRIORITY
+#define POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCEN
+#define POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCENHV
+#define POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> SYSTICK_ENABLED  - nrf_drv_systick - ARM(R) SysTick driver - legacy layer
+ 
+
+#ifndef SYSTICK_ENABLED
+#define SYSTICK_ENABLED 1
+#endif
+
+// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
+//==========================================================
+#ifndef UART_ENABLED
+#define UART_ENABLED 1
+#endif
+// <o> UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef UART_DEFAULT_CONFIG_HWFC
+#define UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef UART_DEFAULT_CONFIG_PARITY
+#define UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef UART_DEFAULT_CONFIG_BAUDRATE
+#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
+ 
+
+#ifndef UART_EASY_DMA_SUPPORT
+#define UART_EASY_DMA_SUPPORT 1
+#endif
+
+// <q> UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
+ 
+
+#ifndef UART_LEGACY_SUPPORT
+#define UART_LEGACY_SUPPORT 1
+#endif
+
+// <e> UART0_ENABLED - Enable UART0 instance
+//==========================================================
+#ifndef UART0_ENABLED
+#define UART0_ENABLED 1
+#endif
+// <q> UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
+ 
+
+#ifndef UART0_CONFIG_USE_EASY_DMA
+#define UART0_CONFIG_USE_EASY_DMA 1
+#endif
+
+// </e>
+
+// <e> UART1_ENABLED - Enable UART1 instance
+//==========================================================
+#ifndef UART1_ENABLED
+#define UART1_ENABLED 0
+#endif
+// </e>
+
+// </e>
+
+// <e> USBD_ENABLED - nrf_drv_usbd - Software Component
+//==========================================================
+#ifndef USBD_ENABLED
+#define USBD_ENABLED 1
+#endif
+// <o> USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef USBD_CONFIG_IRQ_PRIORITY
+#define USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> USBD_CONFIG_DMASCHEDULER_MODE  - USBD SMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef USBD_CONFIG_DMASCHEDULER_MODE
+#define USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef USBD_CONFIG_ISO_IN_ZLP
+#define USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Libraries 
+
+//==========================================================
+// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
+//==========================================================
+#ifndef APP_SCHEDULER_ENABLED
+#define APP_SCHEDULER_ENABLED 1
+#endif
+// <q> APP_SCHEDULER_WITH_PAUSE  - Enabling pause feature
+ 
+
+#ifndef APP_SCHEDULER_WITH_PAUSE
+#define APP_SCHEDULER_WITH_PAUSE 1
+#endif
+
+// <q> APP_SCHEDULER_WITH_PROFILER  - Enabling scheduler profiling
+ 
+
+#ifndef APP_SCHEDULER_WITH_PROFILER
+#define APP_SCHEDULER_WITH_PROFILER 1
+#endif
+
+// </e>
+
+// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
+//==========================================================
+#ifndef APP_TIMER_ENABLED
+#define APP_TIMER_ENABLED 1
+#endif
+// <o> APP_TIMER_CONFIG_RTC_FREQUENCY  - Configure RTC prescaler.
+ 
+// <0=> 32768 Hz 
+// <1=> 16384 Hz 
+// <3=> 8192 Hz 
+// <7=> 4096 Hz 
+// <15=> 2048 Hz 
+// <31=> 1024 Hz 
+
+#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
+#define APP_TIMER_CONFIG_RTC_FREQUENCY 1
+#endif
+
+// <o> APP_TIMER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
+#define APP_TIMER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. 
+// <i> Size of the queue depends on how many timers are used
+// <i> in the system, how often timers are started and overall
+// <i> system latency. If queue size is too small app_timer calls
+// <i> will fail.
+
+#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
+#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
+#endif
+
+// <q> APP_TIMER_CONFIG_USE_SCHEDULER  - Enable scheduling app_timer events to app_scheduler
+ 
+
+#ifndef APP_TIMER_CONFIG_USE_SCHEDULER
+#define APP_TIMER_CONFIG_USE_SCHEDULER 0
+#endif
+
+// <q> APP_TIMER_KEEPS_RTC_ACTIVE  - Enable RTC always on
+ 
+
+// <i> If option is enabled RTC is kept running even if there is no active timers.
+// <i> This option can be used when app_timer is used for timestamping.
+
+#ifndef APP_TIMER_KEEPS_RTC_ACTIVE
+#define APP_TIMER_KEEPS_RTC_ACTIVE 0
+#endif
+
+// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. 
+// <i> Maximum possible timeout that can be set is reduced by safe window.
+// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
+// <i> Since RTC is not stopped when processor is halted in debugging session, this value
+// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
+// <i> without corrupting app_timer behavior.
+
+#ifndef APP_TIMER_SAFE_WINDOW_MS
+#define APP_TIMER_SAFE_WINDOW_MS 300000
+#endif
+
+// <h> App Timer Legacy configuration - Legacy configuration.
+
+//==========================================================
+// <q> APP_TIMER_WITH_PROFILER  - Enable app_timer profiling
+ 
+
+#ifndef APP_TIMER_WITH_PROFILER
+#define APP_TIMER_WITH_PROFILER 0
+#endif
+
+// <q> APP_TIMER_CONFIG_SWI_NUMBER  - Configure SWI instance used.
+ 
+
+#ifndef APP_TIMER_CONFIG_SWI_NUMBER
+#define APP_TIMER_CONFIG_SWI_NUMBER 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <e> APP_USBD_ENABLED - app_usbd - USB Device library
+//==========================================================
+#ifndef APP_USBD_ENABLED
+#define APP_USBD_ENABLED 1
+#endif
+// <s> APP_USBD_VID - Vendor ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Vendor ID ordered from USB IF: http://www.usb.org/developers/vendor/
+#ifndef APP_USBD_VID
+#define APP_USBD_VID 0x1915
+#endif
+
+// <s> APP_USBD_PID - Product ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Selected Product ID
+#ifndef APP_USBD_PID
+#define APP_USBD_PID 0xC00A
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MAJOR - Device version, major part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MAJOR
+#define APP_USBD_DEVICE_VER_MAJOR 1
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MINOR - Device version, minor part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MINOR
+#define APP_USBD_DEVICE_VER_MINOR 0
+#endif
+
+// <q> APP_USBD_CONFIG_SELF_POWERED  - Self-powered device, as opposed to bus-powered.
+ 
+
+#ifndef APP_USBD_CONFIG_SELF_POWERED
+#define APP_USBD_CONFIG_SELF_POWERED 1
+#endif
+
+// <o> APP_USBD_CONFIG_MAX_POWER - MaxPower field in configuration descriptor in milliamps.  <0-500> 
+
+
+#ifndef APP_USBD_CONFIG_MAX_POWER
+#define APP_USBD_CONFIG_MAX_POWER 100
+#endif
+
+// <q> APP_USBD_CONFIG_POWER_EVENTS_PROCESS  - Process power events.
+ 
+
+// <i> Enable processing power events in USB event handler.
+
+#ifndef APP_USBD_CONFIG_POWER_EVENTS_PROCESS
+#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1
+#endif
+
+// <e> APP_USBD_CONFIG_EVENT_QUEUE_ENABLE - Enable event queue.
+
+// <i> This is the default configuration when all the events are placed into internal queue.
+// <i> Disable it when an external queue is used like app_scheduler or if you wish to process all events inside interrupts.
+// <i> Processing all events from the interrupt level adds requirement not to call any functions that modifies the USBD library state from the context higher than USB interrupt context.
+// <i> Functions that modify USBD state are functions for sleep, wakeup, start, stop, enable, and disable.
+//==========================================================
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_ENABLE
+#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 1
+#endif
+// <o> APP_USBD_CONFIG_EVENT_QUEUE_SIZE - The size of the event queue.  <16-64> 
+
+
+// <i> The size of the queue for the events that would be processed in the main loop.
+
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_SIZE
+#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32
+#endif
+
+// <o> APP_USBD_CONFIG_SOF_HANDLING_MODE  - Change SOF events handling mode.
+ 
+
+// <i> Normal queue   - SOF events are pushed normally into the event queue.
+// <i> Compress queue - SOF events are counted and binded with other events or executed when the queue is empty.
+// <i>                  This prevents the queue from filling up with SOF events.
+// <i> Interrupt      - SOF events are processed in interrupt.
+// <0=> Normal queue 
+// <1=> Compress queue 
+// <2=> Interrupt 
+
+#ifndef APP_USBD_CONFIG_SOF_HANDLING_MODE
+#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1
+#endif
+
+// </e>
+
+// <q> APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE  - Provide a function that generates timestamps for logs based on the current SOF.
+ 
+
+// <i> The function app_usbd_sof_timestamp_get is implemented if the logger is enabled. 
+// <i> Use it when initializing the logger. 
+// <i> SOF processing is always enabled when this configuration parameter is active. 
+// <i> Note: This option is configured outside of APP_USBD_CONFIG_LOG_ENABLED. 
+// <i> This means that it works even if the logging in this very module is disabled. 
+
+#ifndef APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE
+#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0
+#endif
+
+// <o> APP_USBD_CONFIG_DESC_STRING_SIZE - Maximum size of the NULL-terminated string of the string descriptor.  <31-254> 
+
+
+// <i> 31 characters can be stored in the internal USB buffer used for transfers.
+// <i> Any value higher than 31 creates an additional buffer just for descriptor strings.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_SIZE
+#define APP_USBD_CONFIG_DESC_STRING_SIZE 31
+#endif
+
+// <q> APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED  - Enable UTF8 conversion.
+ 
+
+// <i> Enable UTF8-encoded characters. In normal processing, only ASCII characters are available.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED
+#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0
+#endif
+
+// <s> APP_USBD_STRINGS_LANGIDS - Supported languages identifiers.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of supported languages.
+#ifndef APP_USBD_STRINGS_LANGIDS
+#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US)
+#endif
+
+// <e> APP_USBD_STRING_ID_MANUFACTURER - Define manufacturer string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_MANUFACTURER
+#define APP_USBD_STRING_ID_MANUFACTURER 1
+#endif
+// <q> APP_USBD_STRINGS_MANUFACTURER_EXTERN  - Define whether @ref APP_USBD_STRINGS_MANUFACTURER is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_MANUFACTURER_EXTERN
+#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_MANUFACTURER - String descriptor for the manufacturer name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of manufacturer names for each defined language.
+// <i> Use @ref APP_USBD_STRING_DESC macro to create string descriptor from a NULL-terminated string.
+// <i> Use @ref APP_USBD_STRING_RAW8_DESC macro to create string descriptor from comma-separated uint8_t values.
+// <i> Use @ref APP_USBD_STRING_RAW16_DESC macro to create string descriptor from comma-separated uint16_t values.
+// <i> Alternatively, configure the macro to point to any internal variable pointer that already contains the descriptor.
+// <i> Setting string to NULL disables that string.
+// <i> The order of manufacturer names must be the same like in @ref APP_USBD_STRINGS_LANGIDS.
+#ifndef APP_USBD_STRINGS_MANUFACTURER
+#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_PRODUCT - Define product string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_PRODUCT
+#define APP_USBD_STRING_ID_PRODUCT 2
+#endif
+// <q> APP_USBD_STRINGS_PRODUCT_EXTERN  - Define whether @ref APP_USBD_STRINGS_PRODUCT is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_PRODUCT_EXTERN
+#define APP_USBD_STRINGS_PRODUCT_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_PRODUCT - String descriptor for the product name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> List of product names that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_PRODUCT
+#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("nRF52 Connectivity")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_SERIAL - Define serial number string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_SERIAL
+#define APP_USBD_STRING_ID_SERIAL 3
+#endif
+// <q> APP_USBD_STRING_SERIAL_EXTERN  - Define whether @ref APP_USBD_STRING_SERIAL is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRING_SERIAL_EXTERN
+#define APP_USBD_STRING_SERIAL_EXTERN 1
+#endif
+
+// <s> APP_USBD_STRING_SERIAL - String descriptor for the serial number.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Serial number that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRING_SERIAL
+#define APP_USBD_STRING_SERIAL g_extern_serial_number
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_CONFIGURATION - Define configuration string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_CONFIGURATION
+#define APP_USBD_STRING_ID_CONFIGURATION 4
+#endif
+// <q> APP_USBD_STRING_CONFIGURATION_EXTERN  - Define whether @ref APP_USBD_STRINGS_CONFIGURATION is created by macro or declared as global variable.
+ 
+
+#ifndef APP_USBD_STRING_CONFIGURATION_EXTERN
+#define APP_USBD_STRING_CONFIGURATION_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_CONFIGURATION - String descriptor for the device configuration.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Configuration string that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_CONFIGURATION
+#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration")
+#endif
+
+// </e>
+
+// <s> APP_USBD_STRINGS_USER - Default values for user strings.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> This value stores all application specific user strings with the default initialization.
+// <i> The setup is done by X-macros.
+// <i> Expected macro parameters:
+// <i> @code
+// <i> X(mnemonic, [=str_idx], ...)
+// <i> @endcode
+// <i> - @c mnemonic: Mnemonic of the string descriptor that would be added to
+// <i>                @ref app_usbd_string_desc_idx_t enumerator.
+// <i> - @c str_idx : String index value, can be set or left empty.
+// <i>                For example, WinUSB driver requires descriptor to be present on 0xEE index.
+// <i>                Then use X(USBD_STRING_WINUSB, =0xEE, (APP_USBD_STRING_DESC(...)))
+// <i> - @c ...     : List of string descriptors for each defined language.
+#ifndef APP_USBD_STRINGS_USER
+#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1"))
+#endif
+
+// </e>
+
+// <q> APP_USBD_NRF_DFU_TRIGGER_ENABLED  - app_usbd_nrf_dfu_trigger - USBD Nordic DFU Trigger class
+ 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_ENABLED 1
+#endif
+
+// <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
+ 
+
+#ifndef CRC16_ENABLED
+#define CRC16_ENABLED 1
+#endif
+
+// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
+//==========================================================
+#ifndef NRF_BALLOC_ENABLED
+#define NRF_BALLOC_ENABLED 1
+#endif
+// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
+#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
+#endif
+
+// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
+#endif
+
+// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED  - Enables basic checks in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
+#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED  - Enables double memory free check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED  - Enables free memory corruption check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_BALLOC_CLI_CMDS
+#define NRF_BALLOC_CLI_CMDS 0
+#endif
+
+// </e>
+
+// </e>
+
+// <q> NRF_MEMOBJ_ENABLED  - nrf_memobj - Linked memory allocator module
+ 
+
+#ifndef NRF_MEMOBJ_ENABLED
+#define NRF_MEMOBJ_ENABLED 1
+#endif
+
+// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
+//==========================================================
+#ifndef NRF_QUEUE_ENABLED
+#define NRF_QUEUE_ENABLED 1
+#endif
+// <q> NRF_QUEUE_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_QUEUE_CLI_CMDS
+#define NRF_QUEUE_CLI_CMDS 0
+#endif
+
+// </e>
+
+// <q> NRF_SECTION_ITER_ENABLED  - nrf_section_iter - Section iterator
+ 
+
+#ifndef NRF_SECTION_ITER_ENABLED
+#define NRF_SECTION_ITER_ENABLED 1
+#endif
+
+// <q> NRF_SORTLIST_ENABLED  - nrf_sortlist - Sorted list
+ 
+
+#ifndef NRF_SORTLIST_ENABLED
+#define NRF_SORTLIST_ENABLED 1
+#endif
+
+// <q> NRF_STRERROR_ENABLED  - nrf_strerror - Library for converting error code to string.
+ 
+
+#ifndef NRF_STRERROR_ENABLED
+#define NRF_STRERROR_ENABLED 1
+#endif
+
+// <h> app_usbd_cdc_acm - USB CDC ACM class
+
+//==========================================================
+// <q> APP_USBD_CDC_ACM_ENABLED  - Enabling USBD CDC ACM Class library
+ 
+
+#ifndef APP_USBD_CDC_ACM_ENABLED
+#define APP_USBD_CDC_ACM_ENABLED 1
+#endif
+
+// <q> APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE  - Send ZLP on write with same size as endpoint
+ 
+
+// <i> If enabled, CDC ACM class will automatically send a zero length packet after transfer which has the same size as endpoint.
+// <i> This may limit throughput if a lot of binary data is sent, but in terminal mode operation it makes sure that the data is always displayed right after it is sent.
+
+#ifndef APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE
+#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nrf_fprintf - fprintf function.
+
+//==========================================================
+// <q> NRF_FPRINTF_ENABLED  - Enable/disable fprintf module.
+ 
+
+#ifndef NRF_FPRINTF_ENABLED
+#define NRF_FPRINTF_ENABLED 1
+#endif
+
+// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED  - For each printed LF, function will add CR.
+ 
+
+#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
+#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Log 
+
+//==========================================================
+// <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_RTT_ENABLED
+#define NRF_LOG_BACKEND_RTT_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
+// <i> If RTT fails to accept any new data after retries
+// <i> module assumes that host is not active and on next
+// <i> request it will perform only one write attempt.
+// <i> On successful writing, module assumes that host is active
+// <i> and scheme with retry is applied again.
+
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
+#endif
+
+// </e>
+
+// <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_UART_ENABLED
+#define NRF_LOG_BACKEND_UART_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
+#ifndef NRF_LOG_BACKEND_UART_TX_PIN
+#define NRF_LOG_BACKEND_UART_TX_PIN 6
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
+#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
+#endif
+
+// </e>
+
+// <e> NRF_LOG_ENABLED - nrf_log - Logger
+//==========================================================
+#ifndef NRF_LOG_ENABLED
+#define NRF_LOG_ENABLED 0
+#endif
+// <h> Log message pool - Configuration of log message pool
+
+//==========================================================
+// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
+// <i> If a small value is set, then performance of logs processing
+// <i> is degraded because data is fragmented. Bigger value impacts
+// <i> RAM memory utilization. The size is set to fit a message with
+// <i> a timestamp and up to 2 arguments in a single memory object.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
+#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
+#endif
+
+// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
+// <i> If a small value is set, then it may lead to a deadlock
+// <i> in certain cases if backend has high latency and holds
+// <i> multiple messages for long time. Bigger value impacts
+// <i> RAM memory usage.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
+#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
+#endif
+
+// </h> 
+//==========================================================
+
+// <q> NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
+ 
+
+// <i> If set then oldest logs are overwritten. Otherwise a 
+// <i> marker is injected informing about overflow.
+
+#ifndef NRF_LOG_ALLOW_OVERFLOW
+#define NRF_LOG_ALLOW_OVERFLOW 1
+#endif
+
+// <o> NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
+ 
+
+// <i> Must be power of 2 and multiple of 4.
+// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+// <2048=> 2048 
+// <4096=> 4096 
+// <8192=> 8192 
+// <16384=> 16384 
+
+#ifndef NRF_LOG_BUFSIZE
+#define NRF_LOG_BUFSIZE 1024
+#endif
+
+// <q> NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
+ 
+
+#ifndef NRF_LOG_CLI_CMDS
+#define NRF_LOG_CLI_CMDS 0
+#endif
+
+// <o> NRF_LOG_DEFAULT_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LOG_DEFAULT_LEVEL
+#define NRF_LOG_DEFAULT_LEVEL 3
+#endif
+
+// <q> NRF_LOG_DEFERRED  - Enable deffered logger.
+ 
+
+// <i> Log data is buffered and can be processed in idle.
+
+#ifndef NRF_LOG_DEFERRED
+#define NRF_LOG_DEFERRED 1
+#endif
+
+// <q> NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
+ 
+
+#ifndef NRF_LOG_FILTERS_ENABLED
+#define NRF_LOG_FILTERS_ENABLED 0
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
+//==========================================================
+#ifndef NRF_LOG_USES_COLORS
+#define NRF_LOG_USES_COLORS 0
+#endif
+// <o> NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_COLOR_DEFAULT
+#define NRF_LOG_COLOR_DEFAULT 0
+#endif
+
+// <o> NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_ERROR_COLOR
+#define NRF_LOG_ERROR_COLOR 2
+#endif
+
+// <o> NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_WARNING_COLOR
+#define NRF_LOG_WARNING_COLOR 4
+#endif
+
+// </e>
+
+// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping
+
+// <i> Function for getting the timestamp is provided by the user
+//==========================================================
+#ifndef NRF_LOG_USES_TIMESTAMP
+#define NRF_LOG_USES_TIMESTAMP 0
+#endif
+// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
+#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
+#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
+#endif
+
+// </e>
+
+// <h> nrf_log module configuration 
+
+//==========================================================
+// <h> nrf_log in nRF_Core 
+
+//==========================================================
+// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
+#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
+#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
+#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
+#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
+#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
+#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
+#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
+#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
+#define TASK_MANAGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TASK_MANAGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
+#define TASK_MANAGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TASK_MANAGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_INFO_COLOR
+#define TASK_MANAGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
+#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Drivers 
+
+//==========================================================
+// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef CLOCK_CONFIG_LOG_ENABLED
+#define CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef CLOCK_CONFIG_LOG_LEVEL
+#define CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_INFO_COLOR
+#define CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_DEBUG_COLOR
+#define CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef COMP_CONFIG_LOG_ENABLED
+#define COMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> COMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef COMP_CONFIG_LOG_LEVEL
+#define COMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> COMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_INFO_COLOR
+#define COMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> COMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_DEBUG_COLOR
+#define COMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef GPIOTE_CONFIG_LOG_ENABLED
+#define GPIOTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef GPIOTE_CONFIG_LOG_LEVEL
+#define GPIOTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_INFO_COLOR
+#define GPIOTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_DEBUG_COLOR
+#define GPIOTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef LPCOMP_CONFIG_LOG_ENABLED
+#define LPCOMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> LPCOMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef LPCOMP_CONFIG_LOG_LEVEL
+#define LPCOMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> LPCOMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_INFO_COLOR
+#define LPCOMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> LPCOMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_DEBUG_COLOR
+#define LPCOMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
+#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
+#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
+#define MAX3421E_HOST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
+#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef NRFX_USBD_CONFIG_LOG_ENABLED
+#define NRFX_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_USBD_CONFIG_LOG_LEVEL
+#define NRFX_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_INFO_COLOR
+#define NRFX_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
+#define NRFX_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PDM_CONFIG_LOG_ENABLED
+#define PDM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PDM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PDM_CONFIG_LOG_LEVEL
+#define PDM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PDM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_INFO_COLOR
+#define PDM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PDM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_DEBUG_COLOR
+#define PDM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PPI_CONFIG_LOG_ENABLED
+#define PPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PPI_CONFIG_LOG_LEVEL
+#define PPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_INFO_COLOR
+#define PPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_DEBUG_COLOR
+#define PPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PWM_CONFIG_LOG_ENABLED
+#define PWM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PWM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PWM_CONFIG_LOG_LEVEL
+#define PWM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PWM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_INFO_COLOR
+#define PWM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PWM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_DEBUG_COLOR
+#define PWM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef QDEC_CONFIG_LOG_ENABLED
+#define QDEC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> QDEC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef QDEC_CONFIG_LOG_LEVEL
+#define QDEC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> QDEC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_INFO_COLOR
+#define QDEC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> QDEC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_DEBUG_COLOR
+#define QDEC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RNG_CONFIG_LOG_ENABLED
+#define RNG_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RNG_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RNG_CONFIG_LOG_LEVEL
+#define RNG_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RNG_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_INFO_COLOR
+#define RNG_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RNG_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_DEBUG_COLOR
+#define RNG_CONFIG_DEBUG_COLOR 0
+#endif
+
+// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED  - Enables logging of random numbers.
+ 
+
+#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
+#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
+#endif
+
+// </e>
+
+// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RTC_CONFIG_LOG_ENABLED
+#define RTC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RTC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RTC_CONFIG_LOG_LEVEL
+#define RTC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RTC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_INFO_COLOR
+#define RTC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RTC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_DEBUG_COLOR
+#define RTC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SAADC_CONFIG_LOG_ENABLED
+#define SAADC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SAADC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SAADC_CONFIG_LOG_LEVEL
+#define SAADC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SAADC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_INFO_COLOR
+#define SAADC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SAADC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_DEBUG_COLOR
+#define SAADC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPIS_CONFIG_LOG_ENABLED
+#define SPIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPIS_CONFIG_LOG_LEVEL
+#define SPIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_INFO_COLOR
+#define SPIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_DEBUG_COLOR
+#define SPIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPI_CONFIG_LOG_ENABLED
+#define SPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPI_CONFIG_LOG_LEVEL
+#define SPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_INFO_COLOR
+#define SPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_DEBUG_COLOR
+#define SPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TIMER_CONFIG_LOG_ENABLED
+#define TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TIMER_CONFIG_LOG_LEVEL
+#define TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_INFO_COLOR
+#define TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_DEBUG_COLOR
+#define TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWIS_CONFIG_LOG_ENABLED
+#define TWIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWIS_CONFIG_LOG_LEVEL
+#define TWIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_INFO_COLOR
+#define TWIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_DEBUG_COLOR
+#define TWIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWI_CONFIG_LOG_ENABLED
+#define TWI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWI_CONFIG_LOG_LEVEL
+#define TWI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_INFO_COLOR
+#define TWI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_DEBUG_COLOR
+#define TWI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef UART_CONFIG_LOG_ENABLED
+#define UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef UART_CONFIG_LOG_LEVEL
+#define UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_INFO_COLOR
+#define UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_DEBUG_COLOR
+#define UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef USBD_CONFIG_LOG_ENABLED
+#define USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef USBD_CONFIG_LOG_LEVEL
+#define USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_INFO_COLOR
+#define USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_DEBUG_COLOR
+#define USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef WDT_CONFIG_LOG_ENABLED
+#define WDT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> WDT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef WDT_CONFIG_LOG_LEVEL
+#define WDT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> WDT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_INFO_COLOR
+#define WDT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> WDT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_DEBUG_COLOR
+#define WDT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Libraries 
+
+//==========================================================
+// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_TIMER_CONFIG_LOG_ENABLED
+#define APP_TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_LOG_LEVEL
+#define APP_TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
+#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_INFO_COLOR
+#define APP_TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_DEBUG_COLOR
+#define APP_TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
+#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
+#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
+//==========================================================
+#ifndef APP_USBD_CONFIG_LOG_ENABLED
+#define APP_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CONFIG_LOG_LEVEL
+#define APP_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_INFO_COLOR
+#define APP_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_DEBUG_COLOR
+#define APP_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
+#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
+#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
+#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
+#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
+#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
+#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
+#define APP_USBD_MSC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
+#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
+#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
+#define NRF_ATFIFO_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
+#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
+#define NRF_BALLOC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_INFO_COLOR
+#define NRF_BALLOC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
+#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
+#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
+#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
+#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
+#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
+#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
+#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
+#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
+#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
+#define NRF_QUEUE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_QUEUE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_INFO_COLOR
+#define NRF_QUEUE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
+#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
+//==========================================================
+#ifndef NRF_SDH_ANT_LOG_ENABLED
+#define NRF_SDH_ANT_LOG_ENABLED 0
+#endif
+// <o> NRF_SDH_ANT_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_ANT_LOG_LEVEL
+#define NRF_SDH_ANT_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_ANT_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_INFO_COLOR
+#define NRF_SDH_ANT_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_ANT_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_DEBUG_COLOR
+#define NRF_SDH_ANT_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
+//==========================================================
+#ifndef NRF_SDH_BLE_LOG_ENABLED
+#define NRF_SDH_BLE_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_BLE_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_BLE_LOG_LEVEL
+#define NRF_SDH_BLE_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_BLE_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_INFO_COLOR
+#define NRF_SDH_BLE_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_BLE_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_DEBUG_COLOR
+#define NRF_SDH_BLE_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
+//==========================================================
+#ifndef NRF_SDH_LOG_ENABLED
+#define NRF_SDH_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_LOG_LEVEL
+#define NRF_SDH_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_INFO_COLOR
+#define NRF_SDH_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_DEBUG_COLOR
+#define NRF_SDH_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
+//==========================================================
+#ifndef NRF_SDH_SOC_LOG_ENABLED
+#define NRF_SDH_SOC_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_SOC_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_SOC_LOG_LEVEL
+#define NRF_SDH_SOC_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_SOC_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_INFO_COLOR
+#define NRF_SDH_SOC_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_SOC_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_DEBUG_COLOR
+#define NRF_SDH_SOC_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
+#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
+#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
+#define NRF_SORTLIST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
+#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
+#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
+#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
+#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
+#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
+//==========================================================
+#ifndef PM_LOG_ENABLED
+#define PM_LOG_ENABLED 1
+#endif
+// <o> PM_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PM_LOG_LEVEL
+#define PM_LOG_LEVEL 3
+#endif
+
+// <o> PM_LOG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_INFO_COLOR
+#define PM_LOG_INFO_COLOR 0
+#endif
+
+// <o> PM_LOG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_DEBUG_COLOR
+#define PM_LOG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Serialization 
+
+//==========================================================
+// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
+#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
+#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED  - nrf_log_str_formatter - Log string formatter
+ 
+
+#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
+#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Segger_RTT 
+
+//==========================================================
+// <h> segger_rtt - SEGGER RTT
+
+//==========================================================
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. 
+// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
+// <i> or this value is actually used. It depends on which one is bigger.
+
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. 
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE  - RTT behavior if the buffer is full.
+ 
+
+// <i> The following modes are supported:
+// <i> - SKIP  - Do not block, output nothing.
+// <i> - TRIM  - Do not block, output as much as fits.
+// <i> - BLOCK - Wait until there is space in the buffer.
+// <0=> SKIP 
+// <1=> TRIM 
+// <2=> BLOCK_IF_FIFO_FULL 
+
+#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
+#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_SoftDevice 
+
+//==========================================================
+// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler
+//==========================================================
+#ifndef NRF_SDH_BLE_ENABLED
+#define NRF_SDH_BLE_ENABLED 1
+#endif
+// <h> BLE Stack configuration - Stack configuration parameters
+
+// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set.
+// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set.
+//==========================================================
+// <o> NRF_SDH_BLE_GAP_DATA_LENGTH   <27-251> 
+
+
+// <i> Requested BLE GAP data length to be negotiated.
+
+#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH
+#define NRF_SDH_BLE_GAP_DATA_LENGTH 27
+#endif
+
+// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
+#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
+#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
+// <i> Maximum number of total concurrent connections using the default configuration.
+
+#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
+#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1
+#endif
+
+// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. 
+// <i> The time set aside for this connection on every connection interval in 1.25 ms units.
+
+#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
+#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6
+#endif
+
+// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. 
+#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
+#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 250
+#endif
+
+// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. 
+#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
+#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408
+#endif
+
+// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. 
+#ifndef NRF_SDH_BLE_VS_UUID_COUNT
+#define NRF_SDH_BLE_VS_UUID_COUNT 0
+#endif
+
+// <q> NRF_SDH_BLE_SERVICE_CHANGED  - Include the Service Changed characteristic in the Attribute Table.
+ 
+
+#ifndef NRF_SDH_BLE_SERVICE_CHANGED
+#define NRF_SDH_BLE_SERVICE_CHANGED 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> BLE Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. 
+// <i> This setting configures the number of priority levels available for BLE event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4
+#endif
+
+// <h> BLE Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_BLE_OBSERVER_PRIO
+#define BLE_ADV_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client.
+
+#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO
+#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_ANS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client.
+
+#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO
+#define BLE_ANS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service.
+
+#ifndef BLE_BAS_BLE_OBSERVER_PRIO
+#define BLE_BAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service Client.
+
+#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO
+#define BLE_BAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Blood Pressure Service.
+
+#ifndef BLE_BPS_BLE_OBSERVER_PRIO
+#define BLE_BPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection parameters module.
+
+#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO
+#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection State module.
+
+#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO
+#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0
+#endif
+
+// <o> BLE_CSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service.
+
+#ifndef BLE_CSCS_BLE_OBSERVER_PRIO
+#define BLE_CSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Current Time Service Client.
+
+#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO
+#define BLE_CTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Database Discovery module.
+
+#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO
+#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_BLE_OBSERVER_PRIO
+#define BLE_DFU_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DIS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Device Information Client.
+
+#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO
+#define BLE_DIS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_GLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Glucose Service.
+
+#ifndef BLE_GLS_BLE_OBSERVER_PRIO
+#define BLE_GLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HIDS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Human Interface Device Service.
+
+#ifndef BLE_HIDS_BLE_OBSERVER_PRIO
+#define BLE_HIDS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service.
+
+#ifndef BLE_HRS_BLE_OBSERVER_PRIO
+#define BLE_HRS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client.
+
+#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO
+#define BLE_HRS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Health Thermometer Service.
+
+#ifndef BLE_HTS_BLE_OBSERVER_PRIO
+#define BLE_HTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service.
+
+#ifndef BLE_IAS_BLE_OBSERVER_PRIO
+#define BLE_IAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client.
+
+#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO
+#define BLE_IAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service.
+
+#ifndef BLE_LBS_BLE_OBSERVER_PRIO
+#define BLE_LBS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service Client.
+
+#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO
+#define BLE_LBS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Link Loss Service.
+
+#ifndef BLE_LLS_BLE_OBSERVER_PRIO
+#define BLE_LLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LNS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Location Navigation Service.
+
+#ifndef BLE_LNS_BLE_OBSERVER_PRIO
+#define BLE_LNS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Service.
+
+#ifndef BLE_NUS_BLE_OBSERVER_PRIO
+#define BLE_NUS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Central Service.
+
+#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO
+#define BLE_NUS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service.
+
+#ifndef BLE_OTS_BLE_OBSERVER_PRIO
+#define BLE_OTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service client.
+
+#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO
+#define BLE_OTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service.
+
+#ifndef BLE_RSCS_BLE_OBSERVER_PRIO
+#define BLE_RSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client.
+
+#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO
+#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_TPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the TX Power Service.
+
+#ifndef BLE_TPS_BLE_OBSERVER_PRIO
+#define BLE_TPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BSP_BTN_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Button Control module.
+
+#ifndef BSP_BTN_BLE_OBSERVER_PRIO
+#define BSP_BTN_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Bond Management Service.
+
+#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service.
+
+#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Eddystone module.
+
+#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO
+#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT Service Client.
+
+#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT module.
+
+#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Queued writes module.
+
+#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO
+#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_SCAN_OBSERVER_PRIO  
+// <i> Priority for dispatching the BLE events to the Scanning Module.
+
+#ifndef NRF_BLE_SCAN_OBSERVER_PRIO
+#define NRF_BLE_SCAN_OBSERVER_PRIO 1
+#endif
+
+// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. 
+#ifndef PM_BLE_OBSERVER_PRIO
+#define PM_BLE_OBSERVER_PRIO 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler
+//==========================================================
+#ifndef NRF_SDH_ENABLED
+#define NRF_SDH_ENABLED 1
+#endif
+// <h> Dispatch model 
+
+// <i> This setting configures how Stack events are dispatched to the application.
+//==========================================================
+// <o> NRF_SDH_DISPATCH_MODEL
+ 
+
+// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context.
+// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler.
+// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually.
+// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT 
+// <1=> NRF_SDH_DISPATCH_MODEL_APPSH 
+// <2=> NRF_SDH_DISPATCH_MODEL_POLLING 
+
+#ifndef NRF_SDH_DISPATCH_MODEL
+#define NRF_SDH_DISPATCH_MODEL 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Clock - SoftDevice clock configuration
+
+//==========================================================
+// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
+ 
+// <0=> NRF_CLOCK_LF_SRC_RC 
+// <1=> NRF_CLOCK_LF_SRC_XTAL 
+// <2=> NRF_CLOCK_LF_SRC_SYNTH 
+
+#ifndef NRF_SDH_CLOCK_LF_SRC
+#define NRF_SDH_CLOCK_LF_SRC 1
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
+#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
+#define NRF_SDH_CLOCK_LF_RC_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
+// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
+// <i>  if the temperature has not changed.
+
+#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
+#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
+ 
+// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
+// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
+// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
+// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
+// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
+// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
+// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
+// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
+// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
+// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
+// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
+// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
+
+#ifndef NRF_SDH_CLOCK_LF_ACCURACY
+#define NRF_SDH_CLOCK_LF_ACCURACY 7
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> SDH Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC).
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2
+#endif
+
+
+// <h> State Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO
+#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO
+#define POWER_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> RNG_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to this module.
+
+#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO
+#define RNG_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Stack Event Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO
+#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO
+#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO
+#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler
+//==========================================================
+#ifndef NRF_SDH_SOC_ENABLED
+#define NRF_SDH_SOC_ENABLED 1
+#endif
+// <h> SoC Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. 
+// <i> This setting configures the number of priority levels available for the SoC event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <h> SoC Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_SOC_OBSERVER_PRIO
+#define BLE_ADV_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_SOC_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_SOC_OBSERVER_PRIO
+#define BLE_DFU_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO
+#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO
+#define POWER_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <<< end of configuration section >>>
+#endif //SDK_CONFIG_H
+
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emProject
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emProject
@@ -0,0 +1,173 @@
+<!DOCTYPE CrossStudio_Project_File>
+<solution Name="ble_connectivity_132v3_usb_hci_pca10056" target="8" version="2">
+  <project Name="ble_connectivity_132v3_usb_hci_pca10056">
+    <configuration
+      Name="Common"
+      arm_architecture="v7EM"
+      arm_core_type="Cortex-M4"
+      arm_endian="Little"
+      arm_fp_abi="Hard"
+      arm_fpu_type="FPv4-SP-D16"
+      arm_linker_heap_size="512"
+      arm_linker_process_stack_size="0"
+      arm_linker_stack_size="2048"
+      arm_linker_treat_warnings_as_errors="No"
+      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
+      arm_target_device_name="nRF52840_xxAA"
+      arm_target_interface_type="SWD"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/common;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/block_dev;../../../../../../components/libraries/bootloader/dfu;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/usbd/class/nrf_dfu_trigger;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s132v3/headers;../../../../../../components/softdevice/s132v3/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10056;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52840_XXAA;NRF_SD_BLE_API_VERSION=3;S132;SER_CONNECTIVITY;SER_PHY_HCI;SER_PHY_HCI_USB_CDC;SOFTDEVICE_PRESENT;"
+      debug_target_connection="J-Link"
+      gcc_entry_point="Reset_Handler"
+      macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
+      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52840.svd"
+      debug_additional_load_file="../../../../../../components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex"
+      debug_start_from_entry_point_symbol="No"
+      gcc_debugging_level="Level 3"      linker_output_format="hex"
+      linker_printf_width_precision_supported="Yes"
+      linker_printf_fmt_level="long"
+      linker_scanf_fmt_level="long"
+      linker_section_placement_file="flash_placement.xml"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x1f000;FLASH_SIZE=0xe1000;RAM_START=0x200199c0;RAM_SIZE=0x26640"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
+      project_directory=""
+      project_type="Executable" />
+      <folder Name="Segger Startup Files">
+        <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+      </folder>
+    <folder Name="nRF_Log">
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_uart.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_default_backends.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_frontend.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_str_formatter.c" />
+    </folder>
+    <folder Name="nRF_Libraries">
+      <file file_name="../../../../../../components/libraries/util/app_error.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_handler_gcc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_weak.c" />
+      <file file_name="../../../../../../components/libraries/scheduler/app_scheduler.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/app_timer2.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_core.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_serial_num.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_string_desc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
+      <file file_name="../../../../../../components/libraries/crc16/crc16.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/drv_rtc.c" />
+      <file file_name="../../../../../../components/libraries/util/nrf_assert.c" />
+      <file file_name="../../../../../../components/libraries/atomic_fifo/nrf_atfifo.c" />
+      <file file_name="../../../../../../components/libraries/atomic/nrf_atomic.c" />
+      <file file_name="../../../../../../components/libraries/balloc/nrf_balloc.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf_format.c" />
+      <file file_name="../../../../../../components/libraries/memobj/nrf_memobj.c" />
+      <file file_name="../../../../../../components/libraries/queue/nrf_queue.c" />
+      <file file_name="../../../../../../components/libraries/ringbuf/nrf_ringbuf.c" />
+      <file file_name="../../../../../../components/libraries/experimental_section_vars/nrf_section_iter.c" />
+      <file file_name="../../../../../../components/libraries/sortlist/nrf_sortlist.c" />
+      <file file_name="../../../../../../components/libraries/strerror/nrf_strerror.c" />
+    </folder>
+    <folder Name="None">
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52840.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52840.c" />
+    </folder>
+    <folder Name="Board Definition">
+      <file file_name="../../../../../../components/boards/boards.c" />
+      <file file_name="../../../../../../components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c" />
+    </folder>
+    <folder Name="nRF_Serialization">
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/ble_dtm_init.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/ble_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/cond_field_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/hal/dtm_uart.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_error_handling.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_event_encoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_handlers.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_pkt_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_reset_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/common/ser_dbg_sd_str.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_hal_transport.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c" />
+    </folder>
+    <folder Name="nRF_Drivers">
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_clock.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_power.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_power.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_systick.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_usbd.c" />
+    </folder>
+    <folder Name="Application">
+      <file file_name="../../../main.c" />
+      <file file_name="../config/sdk_config.h" />
+    </folder>
+    <folder Name="nRF_Segger_RTT">
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_Syscalls_SES.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_printf.c" />
+    </folder>
+    <folder Name="nRF_BLE">
+      <file file_name="../../../../../../components/ble/common/ble_advdata.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm_hw_nrf52.c" />
+      <file file_name="../../../../../../components/ble/common/ble_srv_common.c" />
+    </folder>
+    <folder Name="UTF8/UTF16 converter">
+      <file file_name="../../../../../../external/utf_converter/utf.c" />
+    </folder>
+    <folder Name="nRF_SoftDevice">
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_ble.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
+    </folder>
+  </project>
+  <configuration Name="Release"
+    c_preprocessor_definitions="NDEBUG"
+    gcc_optimization_level="Optimize For Size" />
+  <configuration Name="Debug"
+    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
+    gcc_optimization_level="None"/>
+</solution>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emSession nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emSession
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10056.emSession
@@ -0,0 +1,7 @@
+<!DOCTYPE CrossStudio_Session_File>
+<session>
+  <ARMCrossStudioWindow activeProject="ble_connectivity_132v3_usb_hci_pca10056" buildConfiguration="Release"/>
+  <Files>
+    <SessionOpenFile codecName="Default" debugPath="../../../main.c" left="0" name="unnamed" path="../../../main.c" selected="1" top="0" useBinaryEdit="0" useTextEdit="1" x="0" y="0"/>
+  </Files>
+</session>
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/flash_placement.xml
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v3_usb_hci/ses/flash_placement.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE Linker_Placement_File>
+<Root name="Flash Section Placement">
+  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
+    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
+    <ProgramSection alignment="4" load="Yes" name=".init" />
+    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".text" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
+    <ProgramSection alignment="4" load="Yes" name=".dtors" />
+    <ProgramSection alignment="4" load="Yes" name=".ctors" />
+    <ProgramSection alignment="4" load="Yes" name=".rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
+    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
+    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
+    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
+  </MemorySegment>
+  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
+    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
+    <ProgramSection alignment="4" load="No" name=".fast_run" />
+    <ProgramSection alignment="4" load="No" name=".data_run" />
+    <ProgramSection alignment="4" load="No" name=".tdata_run" />
+    <ProgramSection alignment="4" load="No" name=".bss" />
+    <ProgramSection alignment="4" load="No" name=".tbss" />
+    <ProgramSection alignment="4" load="No" name=".non_init" />
+    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
+    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
+    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
+  </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
+</Root>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/Makefile
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/Makefile
@@ -0,0 +1,291 @@
+PROJECT_NAME     := ble_connectivity_132v5_usb_hci_pca10056
+TARGETS          := nrf52840_xxaa
+OUTPUT_DIRECTORY := _build
+
+SDK_ROOT := ../../../../../..
+PROJ_DIR := ../../..
+
+$(OUTPUT_DIRECTORY)/nrf52840_xxaa.out: \
+  LINKER_SCRIPT  := ble_connectivity_gcc_nrf52.ld
+
+# Source files common to all targets
+SRC_FILES += \
+  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52840.S \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
+  $(SDK_ROOT)/components/libraries/util/app_error.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
+  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/app_timer2.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_core.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_serial_num.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_string_desc.c \
+  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
+  $(SDK_ROOT)/components/libraries/crc16/crc16.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/drv_rtc.c \
+  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
+  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
+  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
+  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
+  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
+  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \
+  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
+  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
+  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
+  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52840.c \
+  $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/ble_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/cond_field_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/hal/dtm_uart.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_error_handling.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_event_encoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_handlers.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_pkt_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_reset_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/common/ser_dbg_sd_str.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_hal_transport.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_power.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
+  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_power.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_systick.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_usbd.c \
+  $(PROJ_DIR)/main.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
+  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
+  $(SDK_ROOT)/components/ble/common/ble_conn_params.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm_hw_nrf52.c \
+  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
+  $(SDK_ROOT)/external/utf_converter/utf.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
+
+# Include folders common to all targets
+INC_FOLDERS += \
+  $(SDK_ROOT)/components \
+  $(SDK_ROOT)/components/serialization/connectivity/hal \
+  $(SDK_ROOT)/modules/nrfx/mdk \
+  $(SDK_ROOT)/components/libraries/scheduler \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers \
+  $(SDK_ROOT)/components/toolchain/cmsis/include \
+  $(SDK_ROOT)/components/libraries/queue \
+  $(SDK_ROOT)/components/libraries/timer \
+  $(SDK_ROOT)/components/boards \
+  $(SDK_ROOT)/components/serialization/connectivity \
+  $(SDK_ROOT)/components/libraries/strerror \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
+  $(SDK_ROOT)/components/libraries/crc16 \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu \
+  $(SDK_ROOT)/components/serialization/common \
+  $(SDK_ROOT)/components/libraries/util \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
+  ../config \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc \
+  $(SDK_ROOT)/components/ble/common \
+  $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/libraries/ringbuf \
+  $(SDK_ROOT)/modules/nrfx/hal \
+  $(SDK_ROOT)/components/libraries/bsp \
+  $(SDK_ROOT)/components/libraries/log \
+  $(SDK_ROOT)/external/utf_converter \
+  $(SDK_ROOT)/modules/nrfx \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars \
+  $(SDK_ROOT)/integration/nrfx/legacy \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy \
+  $(SDK_ROOT)/components/libraries/usbd \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common \
+  $(SDK_ROOT)/components/libraries/delay \
+  $(SDK_ROOT)/external/segger_rtt \
+  $(SDK_ROOT)/components/libraries/atomic_fifo \
+  $(SDK_ROOT)/components/softdevice/s132v5/headers \
+  $(SDK_ROOT)/components/libraries/atomic \
+  $(SDK_ROOT)/components/libraries/sortlist \
+  $(SDK_ROOT)/components/libraries/memobj \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
+  $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger \
+  $(SDK_ROOT)/components/serialization/common/transport \
+  $(SDK_ROOT)/components/libraries/timer/experimental \
+  $(SDK_ROOT)/components/softdevice/common \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
+  $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/components/softdevice/s132v5/headers/nrf52 \
+  $(SDK_ROOT)/components/libraries/block_dev \
+  $(SDK_ROOT)/external/fprintf \
+  $(SDK_ROOT)/components/libraries/log/src \
+
+# Libraries common to all targets
+LIB_FILES += \
+
+# Optimization flags
+OPT = -Os -g3
+# Uncomment the line below to enable link time optimization
+#OPT += -flto
+
+# C flags common to all targets
+CFLAGS += $(OPT)
+CFLAGS += -DAPP_TIMER_V2
+CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -DBOARD_PCA10056
+CFLAGS += -DBSP_DEFINES_ONLY
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DFLOAT_ABI_HARD
+CFLAGS += -DHCI_TIMER2
+CFLAGS += -DNRF52840_XXAA
+CFLAGS += -DNRF_SD_BLE_API_VERSION=5
+CFLAGS += -DS132
+CFLAGS += -DSER_CONNECTIVITY
+CFLAGS += -DSER_PHY_HCI
+CFLAGS += -DSER_PHY_HCI_USB_CDC
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs
+CFLAGS += -Wall -Werror
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in a separate section, this allows linker to discard unused ones
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin -fshort-enums
+
+# C++ flags common to all targets
+CXXFLAGS += $(OPT)
+
+# Assembler flags common to all targets
+ASMFLAGS += -g3
+ASMFLAGS += -mcpu=cortex-m4
+ASMFLAGS += -mthumb -mabi=aapcs
+ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+ASMFLAGS += -DAPP_TIMER_V2
+ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -DBOARD_PCA10056
+ASMFLAGS += -DBSP_DEFINES_ONLY
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DFLOAT_ABI_HARD
+ASMFLAGS += -DHCI_TIMER2
+ASMFLAGS += -DNRF52840_XXAA
+ASMFLAGS += -DNRF_SD_BLE_API_VERSION=5
+ASMFLAGS += -DS132
+ASMFLAGS += -DSER_CONNECTIVITY
+ASMFLAGS += -DSER_PHY_HCI
+ASMFLAGS += -DSER_PHY_HCI_USB_CDC
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+
+# Linker flags
+LDFLAGS += $(OPT)
+LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs
+
+nrf52840_xxaa: CFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: CFLAGS += -D__STACK_SIZE=2048
+nrf52840_xxaa: ASMFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: ASMFLAGS += -D__STACK_SIZE=2048
+
+# Add standard libraries at the very end of the linker input, after all objects
+# that may need symbols provided by these libraries.
+LIB_FILES += -lc -lnosys -lm
+
+
+.PHONY: default help
+
+# Default target - first one defined
+default: nrf52840_xxaa
+
+# Print all targets that can be built
+help:
+	@echo following targets are available:
+	@echo		nrf52840_xxaa
+	@echo		flash_softdevice
+	@echo		sdk_config - starting external tool for editing sdk_config.h
+	@echo		flash      - flashing binary
+
+TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc
+
+
+include $(TEMPLATE_PATH)/Makefile.common
+
+$(foreach target, $(TARGETS), $(call define_target, $(target)))
+
+.PHONY: flash flash_softdevice erase
+
+# Flash the program
+flash: default
+	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex
+	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+# Flash softdevice
+flash_softdevice:
+	@echo Flashing: s132_nrf52_5.1.0_softdevice.hex
+	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+erase:
+	nrfjprog -f nrf52 --eraseall
+
+SDK_CONFIG_FILE := ../config/sdk_config.h
+CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
+sdk_config:
+	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -0,0 +1,108 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x23000, LENGTH = 0xdd000
+  RAM (rwx) :  ORIGIN = 0x20019380, LENGTH = 0x26c80
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+  .log_dynamic_data :
+  {
+    PROVIDE(__start_log_dynamic_data = .);
+    KEEP(*(SORT(.log_dynamic_data*)))
+    PROVIDE(__stop_log_dynamic_data = .);
+  } > RAM
+  .log_filter_data :
+  {
+    PROVIDE(__start_log_filter_data = .);
+    KEEP(*(SORT(.log_filter_data*)))
+    PROVIDE(__stop_log_filter_data = .);
+  } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+  .sdh_ble_observers :
+  {
+    PROVIDE(__start_sdh_ble_observers = .);
+    KEEP(*(SORT(.sdh_ble_observers*)))
+    PROVIDE(__stop_sdh_ble_observers = .);
+  } > FLASH
+  .sdh_soc_observers :
+  {
+    PROVIDE(__start_sdh_soc_observers = .);
+    KEEP(*(SORT(.sdh_soc_observers*)))
+    PROVIDE(__stop_sdh_soc_observers = .);
+  } > FLASH
+    .nrf_queue :
+  {
+    PROVIDE(__start_nrf_queue = .);
+    KEEP(*(.nrf_queue))
+    PROVIDE(__stop_nrf_queue = .);
+  } > FLASH
+  .log_const_data :
+  {
+    PROVIDE(__start_log_const_data = .);
+    KEEP(*(SORT(.log_const_data*)))
+    PROVIDE(__stop_log_const_data = .);
+  } > FLASH
+    .nrf_balloc :
+  {
+    PROVIDE(__start_nrf_balloc = .);
+    KEEP(*(.nrf_balloc))
+    PROVIDE(__stop_nrf_balloc = .);
+  } > FLASH
+  .sdh_state_observers :
+  {
+    PROVIDE(__start_sdh_state_observers = .);
+    KEEP(*(SORT(.sdh_state_observers*)))
+    PROVIDE(__stop_sdh_state_observers = .);
+  } > FLASH
+  .sdh_stack_observers :
+  {
+    PROVIDE(__start_sdh_stack_observers = .);
+    KEEP(*(SORT(.sdh_stack_observers*)))
+    PROVIDE(__stop_sdh_stack_observers = .);
+  } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
+  .log_backends :
+  {
+    PROVIDE(__start_log_backends = .);
+    KEEP(*(SORT(.log_backends*)))
+    PROVIDE(__stop_log_backends = .);
+  } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/config/sdk_config.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/config/sdk_config.h
@@ -0,0 +1,5390 @@
+/**
+ * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#ifndef SDK_CONFIG_H
+#define SDK_CONFIG_H
+// <<< Use Configuration Wizard in Context Menu >>>\n
+#ifdef USE_APP_CONFIG
+#include "app_config.h"
+#endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA "+" __DATE__ " " __TIME__
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> Board Definition 
+
+//==========================================================
+// <h> nrf_dfu_trigger_usb - USB DFU Trigger library
+
+//==========================================================
+// <q> NRF_DFU_TRIGGER_USB_USB_SHARED  - Flag indicating whether USB is used for other purposes in the application.
+ 
+
+#ifndef NRF_DFU_TRIGGER_USB_USB_SHARED
+#define NRF_DFU_TRIGGER_USB_USB_SHARED 1
+#endif
+
+// <o> NRF_DFU_TRIGGER_USB_INTERFACE_NUM - The USB interface to use for the DFU Trigger library.  <0-255> 
+
+
+// <i> According to the USB Specification, interface numbers cannot have
+// <i> gaps. Tailor this value to adhere to this limitation.
+
+#ifndef NRF_DFU_TRIGGER_USB_INTERFACE_NUM
+#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_BLE 
+
+//==========================================================
+// <q> BLE_DTM_ENABLED  - ble_dtm - Module for testing RF/PHY using DTM commands
+ 
+
+#ifndef BLE_DTM_ENABLED
+#define BLE_DTM_ENABLED 1
+#endif
+
+// <e> NRF_BLE_CONN_PARAMS_ENABLED - ble_conn_params - Initiating and executing a connection parameters negotiation procedure
+//==========================================================
+#ifndef NRF_BLE_CONN_PARAMS_ENABLED
+#define NRF_BLE_CONN_PARAMS_ENABLED 1
+#endif
+// <o> NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION - The largest acceptable deviation in slave latency. 
+// <i> The largest deviation (+ or -) from the requested slave latency that will not be renegotiated.
+
+#ifndef NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION
+#define NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION 499
+#endif
+
+// <o> NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION - The largest acceptable deviation (in 10 ms units) in supervision timeout. 
+// <i> The largest deviation (+ or -, in 10 ms units) from the requested supervision timeout that will not be renegotiated.
+
+#ifndef NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION
+#define NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION 65535
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Drivers 
+
+//==========================================================
+// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
+//==========================================================
+#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_CLOCK_ENABLED 1
+#endif
+// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef NRFX_CLOCK_CONFIG_LF_SRC
+#define NRFX_CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
+#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
+#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
+#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
+#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
+#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver
+//==========================================================
+#ifndef NRFX_POWER_ENABLED
+#define NRFX_POWER_ENABLED 1
+#endif
+// <o> NRFX_POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_POWER_CONFIG_IRQ_PRIORITY
+#define NRFX_POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCEN
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCENHV
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
+//==========================================================
+#ifndef NRFX_PRS_ENABLED
+#define NRFX_PRS_ENABLED 1
+#endif
+// <q> NRFX_PRS_BOX_0_ENABLED  - Enables box 0 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_0_ENABLED
+#define NRFX_PRS_BOX_0_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_1_ENABLED  - Enables box 1 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_1_ENABLED
+#define NRFX_PRS_BOX_1_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_2_ENABLED  - Enables box 2 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_2_ENABLED
+#define NRFX_PRS_BOX_2_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_3_ENABLED  - Enables box 3 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_3_ENABLED
+#define NRFX_PRS_BOX_3_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_4_ENABLED  - Enables box 4 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_4_ENABLED
+#define NRFX_PRS_BOX_4_ENABLED 1
+#endif
+
+// <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_PRS_CONFIG_LOG_ENABLED
+#define NRFX_PRS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_PRS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_PRS_CONFIG_LOG_LEVEL
+#define NRFX_PRS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_PRS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_INFO_COLOR
+#define NRFX_PRS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_PRS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
+#define NRFX_PRS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> NRFX_SYSTICK_ENABLED  - nrfx_systick - ARM(R) SysTick driver
+ 
+
+#ifndef NRFX_SYSTICK_ENABLED
+#define NRFX_SYSTICK_ENABLED 1
+#endif
+
+// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
+//==========================================================
+#ifndef NRFX_UARTE_ENABLED
+#define NRFX_UARTE_ENABLED 1
+#endif
+// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
+#ifndef NRFX_UARTE0_ENABLED
+#define NRFX_UARTE0_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE1_ENABLED - Enable UARTE1 instance 
+#ifndef NRFX_UARTE1_ENABLED
+#define NRFX_UARTE1_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
+#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
+#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10289152=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
+#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
+#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
+#define NRFX_UARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
+#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
+//==========================================================
+#ifndef NRFX_UART_ENABLED
+#define NRFX_UART_ENABLED 1
+#endif
+// <o> NRFX_UART0_ENABLED - Enable UART0 instance 
+#ifndef NRFX_UART0_ENABLED
+#define NRFX_UART0_ENABLED 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
+#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
+#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3866624=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7729152=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10309632=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15462400=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30924800=> 115200 baud 
+// <61845504=> 230400 baud 
+// <67108864=> 250000 baud 
+// <123695104=> 460800 baud 
+// <247386112=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UART_CONFIG_LOG_ENABLED
+#define NRFX_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UART_CONFIG_LOG_LEVEL
+#define NRFX_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_INFO_COLOR
+#define NRFX_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
+#define NRFX_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_USBD_ENABLED - nrfx_usbd - USBD peripheral driver
+//==========================================================
+#ifndef NRFX_USBD_ENABLED
+#define NRFX_USBD_ENABLED 1
+#endif
+// <o> NRFX_USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_USBD_CONFIG_IRQ_PRIORITY
+#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> NRFX_USBD_CONFIG_DMASCHEDULER_MODE  - USBD DMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_MODE
+#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> NRFX_USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef NRFX_USBD_CONFIG_ISO_IN_ZLP
+#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
+//==========================================================
+#ifndef NRF_CLOCK_ENABLED
+#define NRF_CLOCK_ENABLED 1
+#endif
+// <o> CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef CLOCK_CONFIG_LF_SRC
+#define CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <q> CLOCK_CONFIG_LF_CAL_ENABLED  - Calibration enable for LF Clock Source
+ 
+
+#ifndef CLOCK_CONFIG_LF_CAL_ENABLED
+#define CLOCK_CONFIG_LF_CAL_ENABLED 0
+#endif
+
+// <o> CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef CLOCK_CONFIG_IRQ_PRIORITY
+#define CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> POWER_ENABLED - nrf_drv_power - POWER peripheral driver - legacy layer
+//==========================================================
+#ifndef POWER_ENABLED
+#define POWER_ENABLED 1
+#endif
+// <o> POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef POWER_CONFIG_IRQ_PRIORITY
+#define POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCEN
+#define POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCENHV
+#define POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> SYSTICK_ENABLED  - nrf_drv_systick - ARM(R) SysTick driver - legacy layer
+ 
+
+#ifndef SYSTICK_ENABLED
+#define SYSTICK_ENABLED 1
+#endif
+
+// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
+//==========================================================
+#ifndef UART_ENABLED
+#define UART_ENABLED 1
+#endif
+// <o> UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef UART_DEFAULT_CONFIG_HWFC
+#define UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef UART_DEFAULT_CONFIG_PARITY
+#define UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef UART_DEFAULT_CONFIG_BAUDRATE
+#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
+ 
+
+#ifndef UART_EASY_DMA_SUPPORT
+#define UART_EASY_DMA_SUPPORT 1
+#endif
+
+// <q> UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
+ 
+
+#ifndef UART_LEGACY_SUPPORT
+#define UART_LEGACY_SUPPORT 1
+#endif
+
+// <e> UART0_ENABLED - Enable UART0 instance
+//==========================================================
+#ifndef UART0_ENABLED
+#define UART0_ENABLED 1
+#endif
+// <q> UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
+ 
+
+#ifndef UART0_CONFIG_USE_EASY_DMA
+#define UART0_CONFIG_USE_EASY_DMA 1
+#endif
+
+// </e>
+
+// <e> UART1_ENABLED - Enable UART1 instance
+//==========================================================
+#ifndef UART1_ENABLED
+#define UART1_ENABLED 0
+#endif
+// </e>
+
+// </e>
+
+// <e> USBD_ENABLED - nrf_drv_usbd - Software Component
+//==========================================================
+#ifndef USBD_ENABLED
+#define USBD_ENABLED 1
+#endif
+// <o> USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef USBD_CONFIG_IRQ_PRIORITY
+#define USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> USBD_CONFIG_DMASCHEDULER_MODE  - USBD SMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef USBD_CONFIG_DMASCHEDULER_MODE
+#define USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef USBD_CONFIG_ISO_IN_ZLP
+#define USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Libraries 
+
+//==========================================================
+// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
+//==========================================================
+#ifndef APP_SCHEDULER_ENABLED
+#define APP_SCHEDULER_ENABLED 1
+#endif
+// <q> APP_SCHEDULER_WITH_PAUSE  - Enabling pause feature
+ 
+
+#ifndef APP_SCHEDULER_WITH_PAUSE
+#define APP_SCHEDULER_WITH_PAUSE 1
+#endif
+
+// <q> APP_SCHEDULER_WITH_PROFILER  - Enabling scheduler profiling
+ 
+
+#ifndef APP_SCHEDULER_WITH_PROFILER
+#define APP_SCHEDULER_WITH_PROFILER 1
+#endif
+
+// </e>
+
+// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
+//==========================================================
+#ifndef APP_TIMER_ENABLED
+#define APP_TIMER_ENABLED 1
+#endif
+// <o> APP_TIMER_CONFIG_RTC_FREQUENCY  - Configure RTC prescaler.
+ 
+// <0=> 32768 Hz 
+// <1=> 16384 Hz 
+// <3=> 8192 Hz 
+// <7=> 4096 Hz 
+// <15=> 2048 Hz 
+// <31=> 1024 Hz 
+
+#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
+#define APP_TIMER_CONFIG_RTC_FREQUENCY 1
+#endif
+
+// <o> APP_TIMER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
+#define APP_TIMER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. 
+// <i> Size of the queue depends on how many timers are used
+// <i> in the system, how often timers are started and overall
+// <i> system latency. If queue size is too small app_timer calls
+// <i> will fail.
+
+#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
+#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
+#endif
+
+// <q> APP_TIMER_CONFIG_USE_SCHEDULER  - Enable scheduling app_timer events to app_scheduler
+ 
+
+#ifndef APP_TIMER_CONFIG_USE_SCHEDULER
+#define APP_TIMER_CONFIG_USE_SCHEDULER 0
+#endif
+
+// <q> APP_TIMER_KEEPS_RTC_ACTIVE  - Enable RTC always on
+ 
+
+// <i> If option is enabled RTC is kept running even if there is no active timers.
+// <i> This option can be used when app_timer is used for timestamping.
+
+#ifndef APP_TIMER_KEEPS_RTC_ACTIVE
+#define APP_TIMER_KEEPS_RTC_ACTIVE 0
+#endif
+
+// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. 
+// <i> Maximum possible timeout that can be set is reduced by safe window.
+// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
+// <i> Since RTC is not stopped when processor is halted in debugging session, this value
+// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
+// <i> without corrupting app_timer behavior.
+
+#ifndef APP_TIMER_SAFE_WINDOW_MS
+#define APP_TIMER_SAFE_WINDOW_MS 300000
+#endif
+
+// <h> App Timer Legacy configuration - Legacy configuration.
+
+//==========================================================
+// <q> APP_TIMER_WITH_PROFILER  - Enable app_timer profiling
+ 
+
+#ifndef APP_TIMER_WITH_PROFILER
+#define APP_TIMER_WITH_PROFILER 0
+#endif
+
+// <q> APP_TIMER_CONFIG_SWI_NUMBER  - Configure SWI instance used.
+ 
+
+#ifndef APP_TIMER_CONFIG_SWI_NUMBER
+#define APP_TIMER_CONFIG_SWI_NUMBER 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <e> APP_USBD_ENABLED - app_usbd - USB Device library
+//==========================================================
+#ifndef APP_USBD_ENABLED
+#define APP_USBD_ENABLED 1
+#endif
+// <s> APP_USBD_VID - Vendor ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Vendor ID ordered from USB IF: http://www.usb.org/developers/vendor/
+#ifndef APP_USBD_VID
+#define APP_USBD_VID 0x1915
+#endif
+
+// <s> APP_USBD_PID - Product ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Selected Product ID
+#ifndef APP_USBD_PID
+#define APP_USBD_PID 0xC00A
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MAJOR - Device version, major part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MAJOR
+#define APP_USBD_DEVICE_VER_MAJOR 1
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MINOR - Device version, minor part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MINOR
+#define APP_USBD_DEVICE_VER_MINOR 0
+#endif
+
+// <q> APP_USBD_CONFIG_SELF_POWERED  - Self-powered device, as opposed to bus-powered.
+ 
+
+#ifndef APP_USBD_CONFIG_SELF_POWERED
+#define APP_USBD_CONFIG_SELF_POWERED 1
+#endif
+
+// <o> APP_USBD_CONFIG_MAX_POWER - MaxPower field in configuration descriptor in milliamps.  <0-500> 
+
+
+#ifndef APP_USBD_CONFIG_MAX_POWER
+#define APP_USBD_CONFIG_MAX_POWER 100
+#endif
+
+// <q> APP_USBD_CONFIG_POWER_EVENTS_PROCESS  - Process power events.
+ 
+
+// <i> Enable processing power events in USB event handler.
+
+#ifndef APP_USBD_CONFIG_POWER_EVENTS_PROCESS
+#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1
+#endif
+
+// <e> APP_USBD_CONFIG_EVENT_QUEUE_ENABLE - Enable event queue.
+
+// <i> This is the default configuration when all the events are placed into internal queue.
+// <i> Disable it when an external queue is used like app_scheduler or if you wish to process all events inside interrupts.
+// <i> Processing all events from the interrupt level adds requirement not to call any functions that modifies the USBD library state from the context higher than USB interrupt context.
+// <i> Functions that modify USBD state are functions for sleep, wakeup, start, stop, enable, and disable.
+//==========================================================
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_ENABLE
+#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 1
+#endif
+// <o> APP_USBD_CONFIG_EVENT_QUEUE_SIZE - The size of the event queue.  <16-64> 
+
+
+// <i> The size of the queue for the events that would be processed in the main loop.
+
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_SIZE
+#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32
+#endif
+
+// <o> APP_USBD_CONFIG_SOF_HANDLING_MODE  - Change SOF events handling mode.
+ 
+
+// <i> Normal queue   - SOF events are pushed normally into the event queue.
+// <i> Compress queue - SOF events are counted and binded with other events or executed when the queue is empty.
+// <i>                  This prevents the queue from filling up with SOF events.
+// <i> Interrupt      - SOF events are processed in interrupt.
+// <0=> Normal queue 
+// <1=> Compress queue 
+// <2=> Interrupt 
+
+#ifndef APP_USBD_CONFIG_SOF_HANDLING_MODE
+#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1
+#endif
+
+// </e>
+
+// <q> APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE  - Provide a function that generates timestamps for logs based on the current SOF.
+ 
+
+// <i> The function app_usbd_sof_timestamp_get is implemented if the logger is enabled. 
+// <i> Use it when initializing the logger. 
+// <i> SOF processing is always enabled when this configuration parameter is active. 
+// <i> Note: This option is configured outside of APP_USBD_CONFIG_LOG_ENABLED. 
+// <i> This means that it works even if the logging in this very module is disabled. 
+
+#ifndef APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE
+#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0
+#endif
+
+// <o> APP_USBD_CONFIG_DESC_STRING_SIZE - Maximum size of the NULL-terminated string of the string descriptor.  <31-254> 
+
+
+// <i> 31 characters can be stored in the internal USB buffer used for transfers.
+// <i> Any value higher than 31 creates an additional buffer just for descriptor strings.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_SIZE
+#define APP_USBD_CONFIG_DESC_STRING_SIZE 31
+#endif
+
+// <q> APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED  - Enable UTF8 conversion.
+ 
+
+// <i> Enable UTF8-encoded characters. In normal processing, only ASCII characters are available.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED
+#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0
+#endif
+
+// <s> APP_USBD_STRINGS_LANGIDS - Supported languages identifiers.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of supported languages.
+#ifndef APP_USBD_STRINGS_LANGIDS
+#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US)
+#endif
+
+// <e> APP_USBD_STRING_ID_MANUFACTURER - Define manufacturer string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_MANUFACTURER
+#define APP_USBD_STRING_ID_MANUFACTURER 1
+#endif
+// <q> APP_USBD_STRINGS_MANUFACTURER_EXTERN  - Define whether @ref APP_USBD_STRINGS_MANUFACTURER is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_MANUFACTURER_EXTERN
+#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_MANUFACTURER - String descriptor for the manufacturer name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of manufacturer names for each defined language.
+// <i> Use @ref APP_USBD_STRING_DESC macro to create string descriptor from a NULL-terminated string.
+// <i> Use @ref APP_USBD_STRING_RAW8_DESC macro to create string descriptor from comma-separated uint8_t values.
+// <i> Use @ref APP_USBD_STRING_RAW16_DESC macro to create string descriptor from comma-separated uint16_t values.
+// <i> Alternatively, configure the macro to point to any internal variable pointer that already contains the descriptor.
+// <i> Setting string to NULL disables that string.
+// <i> The order of manufacturer names must be the same like in @ref APP_USBD_STRINGS_LANGIDS.
+#ifndef APP_USBD_STRINGS_MANUFACTURER
+#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_PRODUCT - Define product string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_PRODUCT
+#define APP_USBD_STRING_ID_PRODUCT 2
+#endif
+// <q> APP_USBD_STRINGS_PRODUCT_EXTERN  - Define whether @ref APP_USBD_STRINGS_PRODUCT is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_PRODUCT_EXTERN
+#define APP_USBD_STRINGS_PRODUCT_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_PRODUCT - String descriptor for the product name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> List of product names that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_PRODUCT
+#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("nRF52 Connectivity")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_SERIAL - Define serial number string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_SERIAL
+#define APP_USBD_STRING_ID_SERIAL 3
+#endif
+// <q> APP_USBD_STRING_SERIAL_EXTERN  - Define whether @ref APP_USBD_STRING_SERIAL is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRING_SERIAL_EXTERN
+#define APP_USBD_STRING_SERIAL_EXTERN 1
+#endif
+
+// <s> APP_USBD_STRING_SERIAL - String descriptor for the serial number.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Serial number that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRING_SERIAL
+#define APP_USBD_STRING_SERIAL g_extern_serial_number
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_CONFIGURATION - Define configuration string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_CONFIGURATION
+#define APP_USBD_STRING_ID_CONFIGURATION 4
+#endif
+// <q> APP_USBD_STRING_CONFIGURATION_EXTERN  - Define whether @ref APP_USBD_STRINGS_CONFIGURATION is created by macro or declared as global variable.
+ 
+
+#ifndef APP_USBD_STRING_CONFIGURATION_EXTERN
+#define APP_USBD_STRING_CONFIGURATION_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_CONFIGURATION - String descriptor for the device configuration.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Configuration string that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_CONFIGURATION
+#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration")
+#endif
+
+// </e>
+
+// <s> APP_USBD_STRINGS_USER - Default values for user strings.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> This value stores all application specific user strings with the default initialization.
+// <i> The setup is done by X-macros.
+// <i> Expected macro parameters:
+// <i> @code
+// <i> X(mnemonic, [=str_idx], ...)
+// <i> @endcode
+// <i> - @c mnemonic: Mnemonic of the string descriptor that would be added to
+// <i>                @ref app_usbd_string_desc_idx_t enumerator.
+// <i> - @c str_idx : String index value, can be set or left empty.
+// <i>                For example, WinUSB driver requires descriptor to be present on 0xEE index.
+// <i>                Then use X(USBD_STRING_WINUSB, =0xEE, (APP_USBD_STRING_DESC(...)))
+// <i> - @c ...     : List of string descriptors for each defined language.
+#ifndef APP_USBD_STRINGS_USER
+#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1"))
+#endif
+
+// </e>
+
+// <q> APP_USBD_NRF_DFU_TRIGGER_ENABLED  - app_usbd_nrf_dfu_trigger - USBD Nordic DFU Trigger class
+ 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_ENABLED 1
+#endif
+
+// <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
+ 
+
+#ifndef CRC16_ENABLED
+#define CRC16_ENABLED 1
+#endif
+
+// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
+//==========================================================
+#ifndef NRF_BALLOC_ENABLED
+#define NRF_BALLOC_ENABLED 1
+#endif
+// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
+#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
+#endif
+
+// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
+#endif
+
+// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED  - Enables basic checks in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
+#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED  - Enables double memory free check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED  - Enables free memory corruption check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_BALLOC_CLI_CMDS
+#define NRF_BALLOC_CLI_CMDS 0
+#endif
+
+// </e>
+
+// </e>
+
+// <q> NRF_MEMOBJ_ENABLED  - nrf_memobj - Linked memory allocator module
+ 
+
+#ifndef NRF_MEMOBJ_ENABLED
+#define NRF_MEMOBJ_ENABLED 1
+#endif
+
+// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
+//==========================================================
+#ifndef NRF_QUEUE_ENABLED
+#define NRF_QUEUE_ENABLED 1
+#endif
+// <q> NRF_QUEUE_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_QUEUE_CLI_CMDS
+#define NRF_QUEUE_CLI_CMDS 0
+#endif
+
+// </e>
+
+// <q> NRF_SECTION_ITER_ENABLED  - nrf_section_iter - Section iterator
+ 
+
+#ifndef NRF_SECTION_ITER_ENABLED
+#define NRF_SECTION_ITER_ENABLED 1
+#endif
+
+// <q> NRF_SORTLIST_ENABLED  - nrf_sortlist - Sorted list
+ 
+
+#ifndef NRF_SORTLIST_ENABLED
+#define NRF_SORTLIST_ENABLED 1
+#endif
+
+// <q> NRF_STRERROR_ENABLED  - nrf_strerror - Library for converting error code to string.
+ 
+
+#ifndef NRF_STRERROR_ENABLED
+#define NRF_STRERROR_ENABLED 1
+#endif
+
+// <h> app_usbd_cdc_acm - USB CDC ACM class
+
+//==========================================================
+// <q> APP_USBD_CDC_ACM_ENABLED  - Enabling USBD CDC ACM Class library
+ 
+
+#ifndef APP_USBD_CDC_ACM_ENABLED
+#define APP_USBD_CDC_ACM_ENABLED 1
+#endif
+
+// <q> APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE  - Send ZLP on write with same size as endpoint
+ 
+
+// <i> If enabled, CDC ACM class will automatically send a zero length packet after transfer which has the same size as endpoint.
+// <i> This may limit throughput if a lot of binary data is sent, but in terminal mode operation it makes sure that the data is always displayed right after it is sent.
+
+#ifndef APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE
+#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nrf_fprintf - fprintf function.
+
+//==========================================================
+// <q> NRF_FPRINTF_ENABLED  - Enable/disable fprintf module.
+ 
+
+#ifndef NRF_FPRINTF_ENABLED
+#define NRF_FPRINTF_ENABLED 1
+#endif
+
+// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED  - For each printed LF, function will add CR.
+ 
+
+#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
+#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Log 
+
+//==========================================================
+// <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_RTT_ENABLED
+#define NRF_LOG_BACKEND_RTT_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
+// <i> If RTT fails to accept any new data after retries
+// <i> module assumes that host is not active and on next
+// <i> request it will perform only one write attempt.
+// <i> On successful writing, module assumes that host is active
+// <i> and scheme with retry is applied again.
+
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
+#endif
+
+// </e>
+
+// <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_UART_ENABLED
+#define NRF_LOG_BACKEND_UART_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
+#ifndef NRF_LOG_BACKEND_UART_TX_PIN
+#define NRF_LOG_BACKEND_UART_TX_PIN 6
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
+#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
+#endif
+
+// </e>
+
+// <e> NRF_LOG_ENABLED - nrf_log - Logger
+//==========================================================
+#ifndef NRF_LOG_ENABLED
+#define NRF_LOG_ENABLED 0
+#endif
+// <h> Log message pool - Configuration of log message pool
+
+//==========================================================
+// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
+// <i> If a small value is set, then performance of logs processing
+// <i> is degraded because data is fragmented. Bigger value impacts
+// <i> RAM memory utilization. The size is set to fit a message with
+// <i> a timestamp and up to 2 arguments in a single memory object.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
+#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
+#endif
+
+// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
+// <i> If a small value is set, then it may lead to a deadlock
+// <i> in certain cases if backend has high latency and holds
+// <i> multiple messages for long time. Bigger value impacts
+// <i> RAM memory usage.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
+#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
+#endif
+
+// </h> 
+//==========================================================
+
+// <q> NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
+ 
+
+// <i> If set then oldest logs are overwritten. Otherwise a 
+// <i> marker is injected informing about overflow.
+
+#ifndef NRF_LOG_ALLOW_OVERFLOW
+#define NRF_LOG_ALLOW_OVERFLOW 1
+#endif
+
+// <o> NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
+ 
+
+// <i> Must be power of 2 and multiple of 4.
+// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+// <2048=> 2048 
+// <4096=> 4096 
+// <8192=> 8192 
+// <16384=> 16384 
+
+#ifndef NRF_LOG_BUFSIZE
+#define NRF_LOG_BUFSIZE 1024
+#endif
+
+// <q> NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
+ 
+
+#ifndef NRF_LOG_CLI_CMDS
+#define NRF_LOG_CLI_CMDS 0
+#endif
+
+// <o> NRF_LOG_DEFAULT_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LOG_DEFAULT_LEVEL
+#define NRF_LOG_DEFAULT_LEVEL 3
+#endif
+
+// <q> NRF_LOG_DEFERRED  - Enable deffered logger.
+ 
+
+// <i> Log data is buffered and can be processed in idle.
+
+#ifndef NRF_LOG_DEFERRED
+#define NRF_LOG_DEFERRED 1
+#endif
+
+// <q> NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
+ 
+
+#ifndef NRF_LOG_FILTERS_ENABLED
+#define NRF_LOG_FILTERS_ENABLED 0
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
+//==========================================================
+#ifndef NRF_LOG_USES_COLORS
+#define NRF_LOG_USES_COLORS 0
+#endif
+// <o> NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_COLOR_DEFAULT
+#define NRF_LOG_COLOR_DEFAULT 0
+#endif
+
+// <o> NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_ERROR_COLOR
+#define NRF_LOG_ERROR_COLOR 2
+#endif
+
+// <o> NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_WARNING_COLOR
+#define NRF_LOG_WARNING_COLOR 4
+#endif
+
+// </e>
+
+// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping
+
+// <i> Function for getting the timestamp is provided by the user
+//==========================================================
+#ifndef NRF_LOG_USES_TIMESTAMP
+#define NRF_LOG_USES_TIMESTAMP 0
+#endif
+// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
+#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
+#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
+#endif
+
+// </e>
+
+// <h> nrf_log module configuration 
+
+//==========================================================
+// <h> nrf_log in nRF_Core 
+
+//==========================================================
+// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
+#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
+#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
+#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
+#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
+#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
+#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
+#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
+#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
+#define TASK_MANAGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TASK_MANAGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
+#define TASK_MANAGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TASK_MANAGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_INFO_COLOR
+#define TASK_MANAGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
+#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Drivers 
+
+//==========================================================
+// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef CLOCK_CONFIG_LOG_ENABLED
+#define CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef CLOCK_CONFIG_LOG_LEVEL
+#define CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_INFO_COLOR
+#define CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_DEBUG_COLOR
+#define CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef COMP_CONFIG_LOG_ENABLED
+#define COMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> COMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef COMP_CONFIG_LOG_LEVEL
+#define COMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> COMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_INFO_COLOR
+#define COMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> COMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_DEBUG_COLOR
+#define COMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef GPIOTE_CONFIG_LOG_ENABLED
+#define GPIOTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef GPIOTE_CONFIG_LOG_LEVEL
+#define GPIOTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_INFO_COLOR
+#define GPIOTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_DEBUG_COLOR
+#define GPIOTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef LPCOMP_CONFIG_LOG_ENABLED
+#define LPCOMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> LPCOMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef LPCOMP_CONFIG_LOG_LEVEL
+#define LPCOMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> LPCOMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_INFO_COLOR
+#define LPCOMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> LPCOMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_DEBUG_COLOR
+#define LPCOMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
+#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
+#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
+#define MAX3421E_HOST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
+#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef NRFX_USBD_CONFIG_LOG_ENABLED
+#define NRFX_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_USBD_CONFIG_LOG_LEVEL
+#define NRFX_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_INFO_COLOR
+#define NRFX_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
+#define NRFX_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PDM_CONFIG_LOG_ENABLED
+#define PDM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PDM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PDM_CONFIG_LOG_LEVEL
+#define PDM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PDM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_INFO_COLOR
+#define PDM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PDM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_DEBUG_COLOR
+#define PDM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PPI_CONFIG_LOG_ENABLED
+#define PPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PPI_CONFIG_LOG_LEVEL
+#define PPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_INFO_COLOR
+#define PPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_DEBUG_COLOR
+#define PPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PWM_CONFIG_LOG_ENABLED
+#define PWM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PWM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PWM_CONFIG_LOG_LEVEL
+#define PWM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PWM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_INFO_COLOR
+#define PWM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PWM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_DEBUG_COLOR
+#define PWM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef QDEC_CONFIG_LOG_ENABLED
+#define QDEC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> QDEC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef QDEC_CONFIG_LOG_LEVEL
+#define QDEC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> QDEC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_INFO_COLOR
+#define QDEC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> QDEC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_DEBUG_COLOR
+#define QDEC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RNG_CONFIG_LOG_ENABLED
+#define RNG_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RNG_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RNG_CONFIG_LOG_LEVEL
+#define RNG_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RNG_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_INFO_COLOR
+#define RNG_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RNG_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_DEBUG_COLOR
+#define RNG_CONFIG_DEBUG_COLOR 0
+#endif
+
+// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED  - Enables logging of random numbers.
+ 
+
+#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
+#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
+#endif
+
+// </e>
+
+// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RTC_CONFIG_LOG_ENABLED
+#define RTC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RTC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RTC_CONFIG_LOG_LEVEL
+#define RTC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RTC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_INFO_COLOR
+#define RTC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RTC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_DEBUG_COLOR
+#define RTC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SAADC_CONFIG_LOG_ENABLED
+#define SAADC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SAADC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SAADC_CONFIG_LOG_LEVEL
+#define SAADC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SAADC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_INFO_COLOR
+#define SAADC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SAADC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_DEBUG_COLOR
+#define SAADC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPIS_CONFIG_LOG_ENABLED
+#define SPIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPIS_CONFIG_LOG_LEVEL
+#define SPIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_INFO_COLOR
+#define SPIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_DEBUG_COLOR
+#define SPIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPI_CONFIG_LOG_ENABLED
+#define SPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPI_CONFIG_LOG_LEVEL
+#define SPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_INFO_COLOR
+#define SPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_DEBUG_COLOR
+#define SPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TIMER_CONFIG_LOG_ENABLED
+#define TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TIMER_CONFIG_LOG_LEVEL
+#define TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_INFO_COLOR
+#define TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_DEBUG_COLOR
+#define TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWIS_CONFIG_LOG_ENABLED
+#define TWIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWIS_CONFIG_LOG_LEVEL
+#define TWIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_INFO_COLOR
+#define TWIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_DEBUG_COLOR
+#define TWIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWI_CONFIG_LOG_ENABLED
+#define TWI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWI_CONFIG_LOG_LEVEL
+#define TWI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_INFO_COLOR
+#define TWI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_DEBUG_COLOR
+#define TWI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef UART_CONFIG_LOG_ENABLED
+#define UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef UART_CONFIG_LOG_LEVEL
+#define UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_INFO_COLOR
+#define UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_DEBUG_COLOR
+#define UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef USBD_CONFIG_LOG_ENABLED
+#define USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef USBD_CONFIG_LOG_LEVEL
+#define USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_INFO_COLOR
+#define USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_DEBUG_COLOR
+#define USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef WDT_CONFIG_LOG_ENABLED
+#define WDT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> WDT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef WDT_CONFIG_LOG_LEVEL
+#define WDT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> WDT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_INFO_COLOR
+#define WDT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> WDT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_DEBUG_COLOR
+#define WDT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Libraries 
+
+//==========================================================
+// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_TIMER_CONFIG_LOG_ENABLED
+#define APP_TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_LOG_LEVEL
+#define APP_TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
+#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_INFO_COLOR
+#define APP_TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_DEBUG_COLOR
+#define APP_TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
+#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
+#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
+//==========================================================
+#ifndef APP_USBD_CONFIG_LOG_ENABLED
+#define APP_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CONFIG_LOG_LEVEL
+#define APP_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_INFO_COLOR
+#define APP_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_DEBUG_COLOR
+#define APP_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
+#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
+#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
+#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
+#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
+#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
+#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
+#define APP_USBD_MSC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
+#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
+#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
+#define NRF_ATFIFO_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
+#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
+#define NRF_BALLOC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_INFO_COLOR
+#define NRF_BALLOC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
+#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
+#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
+#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
+#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
+#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
+#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
+#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
+#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
+#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
+#define NRF_QUEUE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_QUEUE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_INFO_COLOR
+#define NRF_QUEUE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
+#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
+//==========================================================
+#ifndef NRF_SDH_ANT_LOG_ENABLED
+#define NRF_SDH_ANT_LOG_ENABLED 0
+#endif
+// <o> NRF_SDH_ANT_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_ANT_LOG_LEVEL
+#define NRF_SDH_ANT_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_ANT_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_INFO_COLOR
+#define NRF_SDH_ANT_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_ANT_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_DEBUG_COLOR
+#define NRF_SDH_ANT_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
+//==========================================================
+#ifndef NRF_SDH_BLE_LOG_ENABLED
+#define NRF_SDH_BLE_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_BLE_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_BLE_LOG_LEVEL
+#define NRF_SDH_BLE_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_BLE_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_INFO_COLOR
+#define NRF_SDH_BLE_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_BLE_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_DEBUG_COLOR
+#define NRF_SDH_BLE_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
+//==========================================================
+#ifndef NRF_SDH_LOG_ENABLED
+#define NRF_SDH_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_LOG_LEVEL
+#define NRF_SDH_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_INFO_COLOR
+#define NRF_SDH_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_DEBUG_COLOR
+#define NRF_SDH_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
+//==========================================================
+#ifndef NRF_SDH_SOC_LOG_ENABLED
+#define NRF_SDH_SOC_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_SOC_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_SOC_LOG_LEVEL
+#define NRF_SDH_SOC_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_SOC_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_INFO_COLOR
+#define NRF_SDH_SOC_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_SOC_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_DEBUG_COLOR
+#define NRF_SDH_SOC_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
+#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
+#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
+#define NRF_SORTLIST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
+#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
+#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
+#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
+#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
+#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
+//==========================================================
+#ifndef PM_LOG_ENABLED
+#define PM_LOG_ENABLED 1
+#endif
+// <o> PM_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PM_LOG_LEVEL
+#define PM_LOG_LEVEL 3
+#endif
+
+// <o> PM_LOG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_INFO_COLOR
+#define PM_LOG_INFO_COLOR 0
+#endif
+
+// <o> PM_LOG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_DEBUG_COLOR
+#define PM_LOG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Serialization 
+
+//==========================================================
+// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
+#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
+#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED  - nrf_log_str_formatter - Log string formatter
+ 
+
+#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
+#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Segger_RTT 
+
+//==========================================================
+// <h> segger_rtt - SEGGER RTT
+
+//==========================================================
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. 
+// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
+// <i> or this value is actually used. It depends on which one is bigger.
+
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. 
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE  - RTT behavior if the buffer is full.
+ 
+
+// <i> The following modes are supported:
+// <i> - SKIP  - Do not block, output nothing.
+// <i> - TRIM  - Do not block, output as much as fits.
+// <i> - BLOCK - Wait until there is space in the buffer.
+// <0=> SKIP 
+// <1=> TRIM 
+// <2=> BLOCK_IF_FIFO_FULL 
+
+#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
+#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_SoftDevice 
+
+//==========================================================
+// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler
+//==========================================================
+#ifndef NRF_SDH_BLE_ENABLED
+#define NRF_SDH_BLE_ENABLED 1
+#endif
+// <h> BLE Stack configuration - Stack configuration parameters
+
+// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set.
+// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set.
+//==========================================================
+// <o> NRF_SDH_BLE_GAP_DATA_LENGTH   <27-251> 
+
+
+// <i> Requested BLE GAP data length to be negotiated.
+
+#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH
+#define NRF_SDH_BLE_GAP_DATA_LENGTH 27
+#endif
+
+// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
+#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
+#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
+// <i> Maximum number of total concurrent connections using the default configuration.
+
+#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
+#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1
+#endif
+
+// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. 
+// <i> The time set aside for this connection on every connection interval in 1.25 ms units.
+
+#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
+#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6
+#endif
+
+// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. 
+#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
+#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 250
+#endif
+
+// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. 
+#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
+#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408
+#endif
+
+// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. 
+#ifndef NRF_SDH_BLE_VS_UUID_COUNT
+#define NRF_SDH_BLE_VS_UUID_COUNT 0
+#endif
+
+// <q> NRF_SDH_BLE_SERVICE_CHANGED  - Include the Service Changed characteristic in the Attribute Table.
+ 
+
+#ifndef NRF_SDH_BLE_SERVICE_CHANGED
+#define NRF_SDH_BLE_SERVICE_CHANGED 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> BLE Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. 
+// <i> This setting configures the number of priority levels available for BLE event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4
+#endif
+
+// <h> BLE Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_BLE_OBSERVER_PRIO
+#define BLE_ADV_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client.
+
+#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO
+#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_ANS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client.
+
+#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO
+#define BLE_ANS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service.
+
+#ifndef BLE_BAS_BLE_OBSERVER_PRIO
+#define BLE_BAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service Client.
+
+#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO
+#define BLE_BAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Blood Pressure Service.
+
+#ifndef BLE_BPS_BLE_OBSERVER_PRIO
+#define BLE_BPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection parameters module.
+
+#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO
+#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection State module.
+
+#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO
+#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0
+#endif
+
+// <o> BLE_CSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service.
+
+#ifndef BLE_CSCS_BLE_OBSERVER_PRIO
+#define BLE_CSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Current Time Service Client.
+
+#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO
+#define BLE_CTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Database Discovery module.
+
+#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO
+#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_BLE_OBSERVER_PRIO
+#define BLE_DFU_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DIS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Device Information Client.
+
+#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO
+#define BLE_DIS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_GLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Glucose Service.
+
+#ifndef BLE_GLS_BLE_OBSERVER_PRIO
+#define BLE_GLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HIDS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Human Interface Device Service.
+
+#ifndef BLE_HIDS_BLE_OBSERVER_PRIO
+#define BLE_HIDS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service.
+
+#ifndef BLE_HRS_BLE_OBSERVER_PRIO
+#define BLE_HRS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client.
+
+#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO
+#define BLE_HRS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Health Thermometer Service.
+
+#ifndef BLE_HTS_BLE_OBSERVER_PRIO
+#define BLE_HTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service.
+
+#ifndef BLE_IAS_BLE_OBSERVER_PRIO
+#define BLE_IAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client.
+
+#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO
+#define BLE_IAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service.
+
+#ifndef BLE_LBS_BLE_OBSERVER_PRIO
+#define BLE_LBS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service Client.
+
+#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO
+#define BLE_LBS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Link Loss Service.
+
+#ifndef BLE_LLS_BLE_OBSERVER_PRIO
+#define BLE_LLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LNS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Location Navigation Service.
+
+#ifndef BLE_LNS_BLE_OBSERVER_PRIO
+#define BLE_LNS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Service.
+
+#ifndef BLE_NUS_BLE_OBSERVER_PRIO
+#define BLE_NUS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Central Service.
+
+#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO
+#define BLE_NUS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service.
+
+#ifndef BLE_OTS_BLE_OBSERVER_PRIO
+#define BLE_OTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service client.
+
+#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO
+#define BLE_OTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service.
+
+#ifndef BLE_RSCS_BLE_OBSERVER_PRIO
+#define BLE_RSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client.
+
+#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO
+#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_TPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the TX Power Service.
+
+#ifndef BLE_TPS_BLE_OBSERVER_PRIO
+#define BLE_TPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BSP_BTN_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Button Control module.
+
+#ifndef BSP_BTN_BLE_OBSERVER_PRIO
+#define BSP_BTN_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Bond Management Service.
+
+#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service.
+
+#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Eddystone module.
+
+#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO
+#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT Service Client.
+
+#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT module.
+
+#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Queued writes module.
+
+#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO
+#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_SCAN_OBSERVER_PRIO  
+// <i> Priority for dispatching the BLE events to the Scanning Module.
+
+#ifndef NRF_BLE_SCAN_OBSERVER_PRIO
+#define NRF_BLE_SCAN_OBSERVER_PRIO 1
+#endif
+
+// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. 
+#ifndef PM_BLE_OBSERVER_PRIO
+#define PM_BLE_OBSERVER_PRIO 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler
+//==========================================================
+#ifndef NRF_SDH_ENABLED
+#define NRF_SDH_ENABLED 1
+#endif
+// <h> Dispatch model 
+
+// <i> This setting configures how Stack events are dispatched to the application.
+//==========================================================
+// <o> NRF_SDH_DISPATCH_MODEL
+ 
+
+// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context.
+// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler.
+// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually.
+// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT 
+// <1=> NRF_SDH_DISPATCH_MODEL_APPSH 
+// <2=> NRF_SDH_DISPATCH_MODEL_POLLING 
+
+#ifndef NRF_SDH_DISPATCH_MODEL
+#define NRF_SDH_DISPATCH_MODEL 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Clock - SoftDevice clock configuration
+
+//==========================================================
+// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
+ 
+// <0=> NRF_CLOCK_LF_SRC_RC 
+// <1=> NRF_CLOCK_LF_SRC_XTAL 
+// <2=> NRF_CLOCK_LF_SRC_SYNTH 
+
+#ifndef NRF_SDH_CLOCK_LF_SRC
+#define NRF_SDH_CLOCK_LF_SRC 1
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
+#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
+#define NRF_SDH_CLOCK_LF_RC_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
+// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
+// <i>  if the temperature has not changed.
+
+#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
+#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
+ 
+// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
+// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
+// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
+// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
+// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
+// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
+// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
+// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
+// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
+// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
+// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
+// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
+
+#ifndef NRF_SDH_CLOCK_LF_ACCURACY
+#define NRF_SDH_CLOCK_LF_ACCURACY 7
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> SDH Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC).
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2
+#endif
+
+
+// <h> State Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO
+#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO
+#define POWER_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> RNG_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to this module.
+
+#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO
+#define RNG_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Stack Event Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO
+#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO
+#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO
+#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler
+//==========================================================
+#ifndef NRF_SDH_SOC_ENABLED
+#define NRF_SDH_SOC_ENABLED 1
+#endif
+// <h> SoC Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. 
+// <i> This setting configures the number of priority levels available for the SoC event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <h> SoC Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_SOC_OBSERVER_PRIO
+#define BLE_ADV_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_SOC_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_SOC_OBSERVER_PRIO
+#define BLE_DFU_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO
+#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO
+#define POWER_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <<< end of configuration section >>>
+#endif //SDK_CONFIG_H
+
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emProject
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emProject
@@ -0,0 +1,174 @@
+<!DOCTYPE CrossStudio_Project_File>
+<solution Name="ble_connectivity_132v5_usb_hci_pca10056" target="8" version="2">
+  <project Name="ble_connectivity_132v5_usb_hci_pca10056">
+    <configuration
+      Name="Common"
+      arm_architecture="v7EM"
+      arm_core_type="Cortex-M4"
+      arm_endian="Little"
+      arm_fp_abi="Hard"
+      arm_fpu_type="FPv4-SP-D16"
+      arm_linker_heap_size="512"
+      arm_linker_process_stack_size="0"
+      arm_linker_stack_size="2048"
+      arm_linker_treat_warnings_as_errors="No"
+      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
+      arm_target_device_name="nRF52840_xxAA"
+      arm_target_interface_type="SWD"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/common;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/block_dev;../../../../../../components/libraries/bootloader/dfu;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/usbd/class/nrf_dfu_trigger;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s132v5/headers;../../../../../../components/softdevice/s132v5/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10056;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52840_XXAA;NRF_SD_BLE_API_VERSION=5;S132;SER_CONNECTIVITY;SER_PHY_HCI;SER_PHY_HCI_USB_CDC;SOFTDEVICE_PRESENT;"
+      debug_target_connection="J-Link"
+      gcc_entry_point="Reset_Handler"
+      macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
+      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52840.svd"
+      debug_additional_load_file="../../../../../../components/softdevice/s132v5/hex/s132_nrf52_5.1.0_softdevice.hex"
+      debug_start_from_entry_point_symbol="No"
+      gcc_debugging_level="Level 3"      linker_output_format="hex"
+      linker_printf_width_precision_supported="Yes"
+      linker_printf_fmt_level="long"
+      linker_scanf_fmt_level="long"
+      linker_section_placement_file="flash_placement.xml"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x23000;FLASH_SIZE=0xdd000;RAM_START=0x20019380;RAM_SIZE=0x26c80"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
+      project_directory=""
+      project_type="Executable" />
+      <folder Name="Segger Startup Files">
+        <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+      </folder>
+    <folder Name="nRF_Log">
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_uart.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_default_backends.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_frontend.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_str_formatter.c" />
+    </folder>
+    <folder Name="nRF_Libraries">
+      <file file_name="../../../../../../components/libraries/util/app_error.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_handler_gcc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_weak.c" />
+      <file file_name="../../../../../../components/libraries/scheduler/app_scheduler.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/app_timer2.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_core.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_serial_num.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_string_desc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
+      <file file_name="../../../../../../components/libraries/crc16/crc16.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/drv_rtc.c" />
+      <file file_name="../../../../../../components/libraries/util/nrf_assert.c" />
+      <file file_name="../../../../../../components/libraries/atomic_fifo/nrf_atfifo.c" />
+      <file file_name="../../../../../../components/libraries/atomic/nrf_atomic.c" />
+      <file file_name="../../../../../../components/libraries/balloc/nrf_balloc.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf_format.c" />
+      <file file_name="../../../../../../components/libraries/memobj/nrf_memobj.c" />
+      <file file_name="../../../../../../components/libraries/queue/nrf_queue.c" />
+      <file file_name="../../../../../../components/libraries/ringbuf/nrf_ringbuf.c" />
+      <file file_name="../../../../../../components/libraries/experimental_section_vars/nrf_section_iter.c" />
+      <file file_name="../../../../../../components/libraries/sortlist/nrf_sortlist.c" />
+      <file file_name="../../../../../../components/libraries/strerror/nrf_strerror.c" />
+    </folder>
+    <folder Name="None">
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52840.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52840.c" />
+    </folder>
+    <folder Name="Board Definition">
+      <file file_name="../../../../../../components/boards/boards.c" />
+      <file file_name="../../../../../../components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c" />
+    </folder>
+    <folder Name="nRF_Serialization">
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/ble_dtm_init.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/ble_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/cond_field_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/hal/dtm_uart.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_error_handling.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_event_encoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_handlers.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_pkt_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_reset_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/common/ser_dbg_sd_str.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_hal_transport.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c" />
+    </folder>
+    <folder Name="nRF_Drivers">
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_clock.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_power.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_power.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_systick.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_usbd.c" />
+    </folder>
+    <folder Name="Application">
+      <file file_name="../../../main.c" />
+      <file file_name="../config/sdk_config.h" />
+    </folder>
+    <folder Name="nRF_Segger_RTT">
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_Syscalls_SES.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_printf.c" />
+    </folder>
+    <folder Name="nRF_BLE">
+      <file file_name="../../../../../../components/ble/common/ble_advdata.c" />
+      <file file_name="../../../../../../components/ble/common/ble_conn_params.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm_hw_nrf52.c" />
+      <file file_name="../../../../../../components/ble/common/ble_srv_common.c" />
+    </folder>
+    <folder Name="UTF8/UTF16 converter">
+      <file file_name="../../../../../../external/utf_converter/utf.c" />
+    </folder>
+    <folder Name="nRF_SoftDevice">
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_ble.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
+    </folder>
+  </project>
+  <configuration Name="Release"
+    c_preprocessor_definitions="NDEBUG"
+    gcc_optimization_level="Optimize For Size" />
+  <configuration Name="Debug"
+    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
+    gcc_optimization_level="None"/>
+</solution>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emSession nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emSession
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/ble_connectivity_132v5_usb_hci_pca10056.emSession
@@ -0,0 +1,7 @@
+<!DOCTYPE CrossStudio_Session_File>
+<session>
+  <ARMCrossStudioWindow activeProject="ble_connectivity_132v5_usb_hci_pca10056" buildConfiguration="Release"/>
+  <Files>
+    <SessionOpenFile codecName="Default" debugPath="../../../main.c" left="0" name="unnamed" path="../../../main.c" selected="1" top="0" useBinaryEdit="0" useTextEdit="1" x="0" y="0"/>
+  </Files>
+</session>
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/flash_placement.xml
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s132v5_usb_hci/ses/flash_placement.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE Linker_Placement_File>
+<Root name="Flash Section Placement">
+  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
+    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
+    <ProgramSection alignment="4" load="Yes" name=".init" />
+    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".text" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
+    <ProgramSection alignment="4" load="Yes" name=".dtors" />
+    <ProgramSection alignment="4" load="Yes" name=".ctors" />
+    <ProgramSection alignment="4" load="Yes" name=".rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
+    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
+    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
+    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
+  </MemorySegment>
+  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
+    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
+    <ProgramSection alignment="4" load="No" name=".fast_run" />
+    <ProgramSection alignment="4" load="No" name=".data_run" />
+    <ProgramSection alignment="4" load="No" name=".tdata_run" />
+    <ProgramSection alignment="4" load="No" name=".bss" />
+    <ProgramSection alignment="4" load="No" name=".tbss" />
+    <ProgramSection alignment="4" load="No" name=".non_init" />
+    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
+    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
+    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
+  </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
+</Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/Makefile
@@ -88,6 +88,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
   $(PROJ_DIR)/main.c \
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -240,6 +307,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
 //==========================================================
 #ifndef NRFX_UARTE_ENABLED
@@ -530,6 +725,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -3917,12 +4242,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4223,132 +4548,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/ble_connectivity_s140_hci_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/ble_connectivity_s140_hci_pca10056.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/ble_connectivity_s140_hci_pca10056.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/ble_connectivity_s140_hci_pca10056.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -125,6 +125,7 @@
       <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
     </folder>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/Makefile
@@ -87,6 +87,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_gpiote.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_spis.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -347,6 +414,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> NRFX_SPIS_ENABLED - nrfx_spis - SPIS peripheral driver
 //==========================================================
 #ifndef NRFX_SPIS_ENABLED
@@ -745,6 +940,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4190,12 +4515,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4496,132 +4821,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/ble_connectivity_s140_spi_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/ble_connectivity_s140_spi_pca10056.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/ble_connectivity_s140_spi_pca10056.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/ble_connectivity_s140_spi_pca10056.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -124,6 +124,7 @@
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_gpiote.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_spis.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/Makefile
@@ -87,6 +87,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_gpiote.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_spis.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -347,6 +414,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> NRFX_SPIS_ENABLED - nrfx_spis - SPIS peripheral driver
 //==========================================================
 #ifndef NRFX_SPIS_ENABLED
@@ -745,6 +940,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4190,12 +4515,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4496,132 +4821,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/ble_connectivity_s140_spi_5W_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/ble_connectivity_s140_spi_5W_pca10056.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/ble_connectivity_s140_spi_5W_pca10056.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/ble_connectivity_s140_spi_5W_pca10056.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -124,6 +124,7 @@
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_gpiote.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_spis.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_spi_5W/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/Makefile
@@ -85,6 +85,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
   $(PROJ_DIR)/main.c \
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -240,6 +307,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
 //==========================================================
 #ifndef NRFX_UARTE_ENABLED
@@ -530,6 +725,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -3896,12 +4221,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4202,132 +4527,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/ble_connectivity_s140_uart_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/ble_connectivity_s140_uart_pca10056.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/ble_connectivity_s140_uart_pca10056.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/ble_connectivity_s140_uart_pca10056.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -122,6 +122,7 @@
       <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
     </folder>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_uart/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/Makefile
@@ -25,6 +25,7 @@ SRC_FILES += \
   $(SDK_ROOT)/components/libraries/usbd/app_usbd.c \
   $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c \
   $(SDK_ROOT)/components/libraries/usbd/app_usbd_core.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c \
   $(SDK_ROOT)/components/libraries/usbd/app_usbd_serial_num.c \
   $(SDK_ROOT)/components/libraries/usbd/app_usbd_string_desc.c \
   $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
@@ -44,6 +45,7 @@ SRC_FILES += \
   $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
   $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52840.c \
   $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c \
   $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
   $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
   $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
@@ -95,6 +97,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_power.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_systick.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
@@ -126,7 +129,7 @@ INC_FOLDERS += \
   $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
   $(SDK_ROOT)/integration/nrfx/legacy \
   $(SDK_ROOT)/components/libraries/crc16 \
-  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu \
   $(SDK_ROOT)/components/serialization/common \
   $(SDK_ROOT)/components/libraries/util \
   $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
@@ -134,6 +137,7 @@ INC_FOLDERS += \
   $(SDK_ROOT)/components/libraries/usbd/class/cdc \
   $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
   $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/ble/ble_dtm \
   $(SDK_ROOT)/components/libraries/ringbuf \
   $(SDK_ROOT)/modules/nrfx/hal \
   $(SDK_ROOT)/components/libraries/bsp \
@@ -153,11 +157,13 @@ INC_FOLDERS += \
   $(SDK_ROOT)/components/libraries/memobj \
   $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
   $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger \
   $(SDK_ROOT)/components/serialization/common/transport \
   $(SDK_ROOT)/components/libraries/timer/experimental \
   $(SDK_ROOT)/components/softdevice/common \
   $(SDK_ROOT)/components/softdevice/s140/headers/nrf52 \
   $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/components/libraries/block_dev \
   $(SDK_ROOT)/external/fprintf \
   $(SDK_ROOT)/components/libraries/log/src \
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/config/sdk_config.h
@@ -46,6 +46,102 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA "+" __DATE__ " " __TIME__
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> Board Definition 
+
+//==========================================================
+// <h> nrf_dfu_trigger_usb - USB DFU Trigger library
+
+//==========================================================
+// <q> NRF_DFU_TRIGGER_USB_USB_SHARED  - Flag indicating whether USB is used for other purposes in the application.
+ 
+
+#ifndef NRF_DFU_TRIGGER_USB_USB_SHARED
+#define NRF_DFU_TRIGGER_USB_USB_SHARED 1
+#endif
+
+// <o> NRF_DFU_TRIGGER_USB_INTERFACE_NUM - The USB interface to use for the DFU Trigger library.  <0-255> 
+
+
+// <i> According to the USB Specification, interface numbers cannot have
+// <i> gaps. Tailor this value to adhere to this limitation.
+
+#ifndef NRF_DFU_TRIGGER_USB_INTERFACE_NUM
+#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -280,6 +376,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <q> NRFX_SYSTICK_ENABLED  - nrfx_systick - ARM(R) SysTick driver
  
 
@@ -673,6 +897,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <q> SYSTICK_ENABLED  - nrf_drv_systick - ARM(R) SysTick driver - legacy layer
  
 
@@ -976,7 +1330,7 @@
 // <i> Note: This value is not editable in Configuration Wizard.
 // <i> Selected Product ID
 #ifndef APP_USBD_PID
-#define APP_USBD_PID 0x521B
+#define APP_USBD_PID 0xC00A
 #endif
 
 // <o> APP_USBD_DEVICE_VER_MAJOR - Device version, major part.  <0-99> 
@@ -1219,6 +1573,13 @@
 
 // </e>
 
+// <q> APP_USBD_NRF_DFU_TRIGGER_ENABLED  - app_usbd_nrf_dfu_trigger - USBD Nordic DFU Trigger class
+ 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_ENABLED 1
+#endif
+
 // <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
  
 
@@ -4407,12 +4768,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4713,132 +5074,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10056.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10056.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10056.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10056.emProject
@@ -15,7 +15,7 @@
       arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
       arm_target_device_name="nRF52840_xxAA"
       arm_target_interface_type="SWD"
-      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s140/headers;../../../../../../components/softdevice/s140/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/block_dev;../../../../../../components/libraries/bootloader/dfu;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/usbd/class/nrf_dfu_trigger;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s140/headers;../../../../../../components/softdevice/s140/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
       c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10056;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52840_XXAA;NRF_SD_BLE_API_VERSION=6;S140;SER_CONNECTIVITY;SER_PHY_HCI;SER_PHY_HCI_USB_CDC;SOFTDEVICE_PRESENT;"
       debug_target_connection="J-Link"
       gcc_entry_point="Reset_Handler"
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -52,6 +52,7 @@
       <file file_name="../../../../../../components/libraries/usbd/app_usbd.c" />
       <file file_name="../../../../../../components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c" />
       <file file_name="../../../../../../components/libraries/usbd/app_usbd_core.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c" />
       <file file_name="../../../../../../components/libraries/usbd/app_usbd_serial_num.c" />
       <file file_name="../../../../../../components/libraries/usbd/app_usbd_string_desc.c" />
       <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
@@ -77,6 +78,7 @@
     </folder>
     <folder Name="Board Definition">
       <file file_name="../../../../../../components/boards/boards.c" />
+      <file file_name="../../../../../../components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c" />
     </folder>
     <folder Name="nRF_Serialization">
       <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
@@ -132,6 +134,7 @@
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_power.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_systick.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056/ser_s140_usb_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20001210, LENGTH = 0x4df0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4211,132 +4408,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10056e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10056e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10056e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/ble_connectivity_s112_hci_pca10056e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20001210;RAM_SIZE=0x4df0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20001210, LENGTH = 0x4df0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -733,6 +800,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4470,132 +4667,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10056e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10056e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10056e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/ble_connectivity_s112_spi_pca10056e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20001210;RAM_SIZE=0x4df0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20001210, LENGTH = 0x4df0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -733,6 +800,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> SPIS_ENABLED - nrf_drv_spis - SPIS peripheral driver - legacy layer
 //==========================================================
 #ifndef SPIS_ENABLED
@@ -4470,132 +4667,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10056e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10056e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10056e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/ble_connectivity_s112_spi_5W_pca10056e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20001210;RAM_SIZE=0x4df0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_spi_5W/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0x17000
   RAM (rwx) :  ORIGIN = 0x20001210, LENGTH = 0x4df0
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -63,12 +71,6 @@ SECTIONS
     KEEP(*(SORT(.log_const_data*)))
     PROVIDE(__stop_log_const_data = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -81,6 +83,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/config/sdk_config.h
@@ -46,6 +46,73 @@
 #ifdef USE_APP_CONFIG
 #include "app_config.h"
 #endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA ""
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
 // <h> nRF_BLE 
 
 //==========================================================
@@ -525,6 +592,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 0
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
 //==========================================================
 #ifndef UART_ENABLED
@@ -4190,132 +4387,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10056e.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10056e.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10056e.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/ble_connectivity_s112_uart_pca10056e.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x19000;FLASH_SIZE=0x17000;RAM_START=0x20001210;RAM_SIZE=0x4df0"
-      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000"
+      linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10056e/ser_s112_uart/ses/flash_placement.xml
@@ -10,9 +10,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -42,4 +42,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/Makefile
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/Makefile
@@ -0,0 +1,290 @@
+PROJECT_NAME     := ble_connectivity_132v3_usb_hci_pca10059
+TARGETS          := nrf52840_xxaa
+OUTPUT_DIRECTORY := _build
+
+SDK_ROOT := ../../../../../..
+PROJ_DIR := ../../..
+
+$(OUTPUT_DIRECTORY)/nrf52840_xxaa.out: \
+  LINKER_SCRIPT  := ble_connectivity_gcc_nrf52.ld
+
+# Source files common to all targets
+SRC_FILES += \
+  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52840.S \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_uart.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
+  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
+  $(SDK_ROOT)/components/libraries/util/app_error.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
+  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
+  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/app_timer2.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_core.c \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_serial_num.c \
+  $(SDK_ROOT)/components/libraries/usbd/app_usbd_string_desc.c \
+  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
+  $(SDK_ROOT)/components/libraries/crc16/crc16.c \
+  $(SDK_ROOT)/components/libraries/timer/experimental/drv_rtc.c \
+  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
+  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
+  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
+  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
+  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
+  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
+  $(SDK_ROOT)/components/libraries/queue/nrf_queue.c \
+  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
+  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
+  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
+  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52840.c \
+  $(SDK_ROOT)/components/boards/boards.c \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/ble_dtm_init.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/ble_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/ble_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/common/cond_field_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c \
+  $(SDK_ROOT)/components/serialization/connectivity/hal/dtm_uart.c \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_error_handling.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_event_encoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_handlers.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_pkt_decoder.c \
+  $(SDK_ROOT)/components/serialization/connectivity/ser_conn_reset_cmd_decoder.c \
+  $(SDK_ROOT)/components/serialization/common/ser_dbg_sd_str.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_hal_transport.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci.c \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_power.c \
+  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
+  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_power.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_systick.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_usbd.c \
+  $(PROJ_DIR)/main.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
+  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
+  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm.c \
+  $(SDK_ROOT)/components/ble/ble_dtm/ble_dtm_hw_nrf52.c \
+  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
+  $(SDK_ROOT)/external/utf_converter/utf.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
+  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
+
+# Include folders common to all targets
+INC_FOLDERS += \
+  $(SDK_ROOT)/components \
+  $(SDK_ROOT)/components/serialization/connectivity/hal \
+  $(SDK_ROOT)/modules/nrfx/mdk \
+  $(SDK_ROOT)/components/libraries/scheduler \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/serializers \
+  $(SDK_ROOT)/components/toolchain/cmsis/include \
+  $(SDK_ROOT)/components/libraries/queue \
+  $(SDK_ROOT)/components/libraries/timer \
+  $(SDK_ROOT)/components/boards \
+  $(SDK_ROOT)/components/serialization/connectivity \
+  $(SDK_ROOT)/components/libraries/strerror \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/ble/middleware \
+  $(SDK_ROOT)/components/libraries/crc16 \
+  $(SDK_ROOT)/components/libraries/bootloader/dfu \
+  $(SDK_ROOT)/components/serialization/common \
+  $(SDK_ROOT)/components/libraries/util \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
+  ../config \
+  $(SDK_ROOT)/components/libraries/usbd/class/cdc \
+  $(SDK_ROOT)/components/ble/common \
+  $(SDK_ROOT)/integration/nrfx \
+  $(SDK_ROOT)/components/libraries/balloc \
+  $(SDK_ROOT)/components/ble/ble_dtm \
+  $(SDK_ROOT)/components/libraries/ringbuf \
+  $(SDK_ROOT)/modules/nrfx/hal \
+  $(SDK_ROOT)/components/libraries/bsp \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers/nrf52 \
+  $(SDK_ROOT)/components/libraries/log \
+  $(SDK_ROOT)/external/utf_converter \
+  $(SDK_ROOT)/modules/nrfx \
+  $(SDK_ROOT)/components/libraries/experimental_section_vars \
+  $(SDK_ROOT)/integration/nrfx/legacy \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy \
+  $(SDK_ROOT)/components/libraries/usbd \
+  $(SDK_ROOT)/components/serialization/connectivity/codecs/common \
+  $(SDK_ROOT)/components/libraries/delay \
+  $(SDK_ROOT)/external/segger_rtt \
+  $(SDK_ROOT)/components/libraries/atomic_fifo \
+  $(SDK_ROOT)/components/libraries/atomic \
+  $(SDK_ROOT)/components/libraries/sortlist \
+  $(SDK_ROOT)/components/libraries/memobj \
+  $(SDK_ROOT)/components/serialization/common/struct_ser/ble \
+  $(SDK_ROOT)/components/softdevice/s132v3/headers \
+  $(SDK_ROOT)/components/libraries/usbd/class/nrf_dfu_trigger \
+  $(SDK_ROOT)/components/serialization/common/transport \
+  $(SDK_ROOT)/components/libraries/timer/experimental \
+  $(SDK_ROOT)/components/softdevice/common \
+  $(SDK_ROOT)/components/serialization/common/transport/ser_phy/config \
+  $(SDK_ROOT)/modules/nrfx/drivers/include \
+  $(SDK_ROOT)/components/libraries/block_dev \
+  $(SDK_ROOT)/external/fprintf \
+  $(SDK_ROOT)/components/libraries/log/src \
+
+# Libraries common to all targets
+LIB_FILES += \
+
+# Optimization flags
+OPT = -Os -g3
+# Uncomment the line below to enable link time optimization
+#OPT += -flto
+
+# C flags common to all targets
+CFLAGS += $(OPT)
+CFLAGS += -DAPP_TIMER_V2
+CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+CFLAGS += -DBLE_STACK_SUPPORT_REQD
+CFLAGS += -DBOARD_PCA10059
+CFLAGS += -DBSP_DEFINES_ONLY
+CFLAGS += -DCONFIG_GPIO_AS_PINRESET
+CFLAGS += -DFLOAT_ABI_HARD
+CFLAGS += -DHCI_TIMER2
+CFLAGS += -DNRF52840_XXAA
+CFLAGS += -DNRF_SD_BLE_API_VERSION=3
+CFLAGS += -DS132
+CFLAGS += -DSER_CONNECTIVITY
+CFLAGS += -DSER_PHY_HCI
+CFLAGS += -DSER_PHY_HCI_USB_CDC
+CFLAGS += -DSOFTDEVICE_PRESENT
+CFLAGS += -mcpu=cortex-m4
+CFLAGS += -mthumb -mabi=aapcs
+CFLAGS += -Wall -Werror
+CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# keep every function in a separate section, this allows linker to discard unused ones
+CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
+CFLAGS += -fno-builtin -fshort-enums
+
+# C++ flags common to all targets
+CXXFLAGS += $(OPT)
+
+# Assembler flags common to all targets
+ASMFLAGS += -g3
+ASMFLAGS += -mcpu=cortex-m4
+ASMFLAGS += -mthumb -mabi=aapcs
+ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+ASMFLAGS += -DAPP_TIMER_V2
+ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
+ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
+ASMFLAGS += -DBOARD_PCA10059
+ASMFLAGS += -DBSP_DEFINES_ONLY
+ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
+ASMFLAGS += -DFLOAT_ABI_HARD
+ASMFLAGS += -DHCI_TIMER2
+ASMFLAGS += -DNRF52840_XXAA
+ASMFLAGS += -DNRF_SD_BLE_API_VERSION=3
+ASMFLAGS += -DS132
+ASMFLAGS += -DSER_CONNECTIVITY
+ASMFLAGS += -DSER_PHY_HCI
+ASMFLAGS += -DSER_PHY_HCI_USB_CDC
+ASMFLAGS += -DSOFTDEVICE_PRESENT
+
+# Linker flags
+LDFLAGS += $(OPT)
+LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
+LDFLAGS += -mcpu=cortex-m4
+LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
+# let linker dump unused sections
+LDFLAGS += -Wl,--gc-sections
+# use newlib in nano version
+LDFLAGS += --specs=nano.specs
+
+nrf52840_xxaa: CFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: CFLAGS += -D__STACK_SIZE=2048
+nrf52840_xxaa: ASMFLAGS += -D__HEAP_SIZE=512
+nrf52840_xxaa: ASMFLAGS += -D__STACK_SIZE=2048
+
+# Add standard libraries at the very end of the linker input, after all objects
+# that may need symbols provided by these libraries.
+LIB_FILES += -lc -lnosys -lm
+
+
+.PHONY: default help
+
+# Default target - first one defined
+default: nrf52840_xxaa
+
+# Print all targets that can be built
+help:
+	@echo following targets are available:
+	@echo		nrf52840_xxaa
+	@echo		flash_softdevice
+	@echo		sdk_config - starting external tool for editing sdk_config.h
+	@echo		flash      - flashing binary
+
+TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc
+
+
+include $(TEMPLATE_PATH)/Makefile.common
+
+$(foreach target, $(TARGETS), $(call define_target, $(target)))
+
+.PHONY: flash flash_softdevice erase
+
+# Flash the program
+flash: default
+	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex
+	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52840_xxaa.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+# Flash softdevice
+flash_softdevice:
+	@echo Flashing: s132_nrf52_3.0.0_softdevice.hex
+	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex --sectorerase
+	nrfjprog -f nrf52 --reset
+
+erase:
+	nrfjprog -f nrf52 --eraseall
+
+SDK_CONFIG_FILE := ../config/sdk_config.h
+CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
+sdk_config:
+	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -0,0 +1,108 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0xe1000
+  RAM (rwx) :  ORIGIN = 0x200199c0, LENGTH = 0x26640
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
+}
+
+SECTIONS
+{
+  . = ALIGN(4);
+  .mem_section_dummy_ram :
+  {
+  }
+  .log_dynamic_data :
+  {
+    PROVIDE(__start_log_dynamic_data = .);
+    KEEP(*(SORT(.log_dynamic_data*)))
+    PROVIDE(__stop_log_dynamic_data = .);
+  } > RAM
+  .log_filter_data :
+  {
+    PROVIDE(__start_log_filter_data = .);
+    KEEP(*(SORT(.log_filter_data*)))
+    PROVIDE(__stop_log_filter_data = .);
+  } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+  .mem_section_dummy_rom :
+  {
+  }
+  .sdh_ble_observers :
+  {
+    PROVIDE(__start_sdh_ble_observers = .);
+    KEEP(*(SORT(.sdh_ble_observers*)))
+    PROVIDE(__stop_sdh_ble_observers = .);
+  } > FLASH
+  .sdh_soc_observers :
+  {
+    PROVIDE(__start_sdh_soc_observers = .);
+    KEEP(*(SORT(.sdh_soc_observers*)))
+    PROVIDE(__stop_sdh_soc_observers = .);
+  } > FLASH
+    .nrf_queue :
+  {
+    PROVIDE(__start_nrf_queue = .);
+    KEEP(*(.nrf_queue))
+    PROVIDE(__stop_nrf_queue = .);
+  } > FLASH
+  .log_const_data :
+  {
+    PROVIDE(__start_log_const_data = .);
+    KEEP(*(SORT(.log_const_data*)))
+    PROVIDE(__stop_log_const_data = .);
+  } > FLASH
+    .nrf_balloc :
+  {
+    PROVIDE(__start_nrf_balloc = .);
+    KEEP(*(.nrf_balloc))
+    PROVIDE(__stop_nrf_balloc = .);
+  } > FLASH
+  .sdh_state_observers :
+  {
+    PROVIDE(__start_sdh_state_observers = .);
+    KEEP(*(SORT(.sdh_state_observers*)))
+    PROVIDE(__stop_sdh_state_observers = .);
+  } > FLASH
+  .sdh_stack_observers :
+  {
+    PROVIDE(__start_sdh_stack_observers = .);
+    KEEP(*(SORT(.sdh_stack_observers*)))
+    PROVIDE(__stop_sdh_stack_observers = .);
+  } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
+  .log_backends :
+  {
+    PROVIDE(__start_log_backends = .);
+    KEEP(*(SORT(.log_backends*)))
+    PROVIDE(__stop_log_backends = .);
+  } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "nrf_common.ld"
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/config/sdk_config.h
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/config/sdk_config.h
@@ -0,0 +1,5369 @@
+/**
+ * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#ifndef SDK_CONFIG_H
+#define SDK_CONFIG_H
+// <<< Use Configuration Wizard in Context Menu >>>\n
+#ifdef USE_APP_CONFIG
+#include "app_config.h"
+#endif
+// <h> Application 
+
+//==========================================================
+// <h> application_info - Software Component
+
+//==========================================================
+// <s> APP_NAME - Application name
+#ifndef APP_NAME
+#define APP_NAME "ble-connectivity"
+#endif
+
+// <o> APP_ID - Application ID 
+#ifndef APP_ID
+#define APP_ID 0
+#endif
+
+// <h> APP_VERSION - Application version (semantic versioning)
+
+//==========================================================
+// <o> APP_VERSION_MAJOR - Major version  <0-1000> 
+
+
+#ifndef APP_VERSION_MAJOR
+#define APP_VERSION_MAJOR 0
+#endif
+
+// <o> APP_VERSION_MINOR - Minor version  <0-1000> 
+
+
+#ifndef APP_VERSION_MINOR
+#define APP_VERSION_MINOR 1
+#endif
+
+// <o> APP_VERSION_PATCH - Patch version  <0-1000> 
+
+
+#ifndef APP_VERSION_PATCH
+#define APP_VERSION_PATCH 0
+#endif
+
+// <s> APP_VERSION_PRERELEASE - Prerelease, eg. "-1.alpha"
+
+// <i> If not empty, this string should include the leading hyphen (-).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_PRERELEASE
+#define APP_VERSION_PRERELEASE ""
+#endif
+
+// <s> APP_VERSION_METADATA - Metadata, e.g. "+some-string.01-01-2018-23-59-59"
+
+// <i> If not empty, this string should include the leading plus (+).
+// <i> This string might be normalized at run-time to not contain characters
+// <i> illegal in Semantic Versioning.
+#ifndef APP_VERSION_METADATA
+#define APP_VERSION_METADATA "+" __DATE__ " " __TIME__
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> Board Definition 
+
+//==========================================================
+// <h> nrf_dfu_trigger_usb - USB DFU Trigger library
+
+//==========================================================
+// <q> NRF_DFU_TRIGGER_USB_USB_SHARED  - Flag indicating whether USB is used for other purposes in the application.
+ 
+
+#ifndef NRF_DFU_TRIGGER_USB_USB_SHARED
+#define NRF_DFU_TRIGGER_USB_USB_SHARED 1
+#endif
+
+// <o> NRF_DFU_TRIGGER_USB_INTERFACE_NUM - The USB interface to use for the DFU Trigger library.  <0-255> 
+
+
+// <i> According to the USB Specification, interface numbers cannot have
+// <i> gaps. Tailor this value to adhere to this limitation.
+
+#ifndef NRF_DFU_TRIGGER_USB_INTERFACE_NUM
+#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_BLE 
+
+//==========================================================
+// <q> BLE_DTM_ENABLED  - ble_dtm - Module for testing RF/PHY using DTM commands
+ 
+
+#ifndef BLE_DTM_ENABLED
+#define BLE_DTM_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Drivers 
+
+//==========================================================
+// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
+//==========================================================
+#ifndef NRFX_CLOCK_ENABLED
+#define NRFX_CLOCK_ENABLED 1
+#endif
+// <o> NRFX_CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef NRFX_CLOCK_CONFIG_LF_SRC
+#define NRFX_CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
+#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
+#define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
+#define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
+#define NRFX_CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
+#define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver
+//==========================================================
+#ifndef NRFX_POWER_ENABLED
+#define NRFX_POWER_ENABLED 1
+#endif
+// <o> NRFX_POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_POWER_CONFIG_IRQ_PRIORITY
+#define NRFX_POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCEN
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> NRFX_POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef NRFX_POWER_CONFIG_DEFAULT_DCDCENHV
+#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
+//==========================================================
+#ifndef NRFX_PRS_ENABLED
+#define NRFX_PRS_ENABLED 1
+#endif
+// <q> NRFX_PRS_BOX_0_ENABLED  - Enables box 0 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_0_ENABLED
+#define NRFX_PRS_BOX_0_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_1_ENABLED  - Enables box 1 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_1_ENABLED
+#define NRFX_PRS_BOX_1_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_2_ENABLED  - Enables box 2 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_2_ENABLED
+#define NRFX_PRS_BOX_2_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_3_ENABLED  - Enables box 3 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_3_ENABLED
+#define NRFX_PRS_BOX_3_ENABLED 0
+#endif
+
+// <q> NRFX_PRS_BOX_4_ENABLED  - Enables box 4 in the module.
+ 
+
+#ifndef NRFX_PRS_BOX_4_ENABLED
+#define NRFX_PRS_BOX_4_ENABLED 1
+#endif
+
+// <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_PRS_CONFIG_LOG_ENABLED
+#define NRFX_PRS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_PRS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_PRS_CONFIG_LOG_LEVEL
+#define NRFX_PRS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_PRS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_INFO_COLOR
+#define NRFX_PRS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_PRS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
+#define NRFX_PRS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> NRFX_SYSTICK_ENABLED  - nrfx_systick - ARM(R) SysTick driver
+ 
+
+#ifndef NRFX_SYSTICK_ENABLED
+#define NRFX_SYSTICK_ENABLED 1
+#endif
+
+// <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
+//==========================================================
+#ifndef NRFX_UARTE_ENABLED
+#define NRFX_UARTE_ENABLED 1
+#endif
+// <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
+#ifndef NRFX_UARTE0_ENABLED
+#define NRFX_UARTE0_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE1_ENABLED - Enable UARTE1 instance 
+#ifndef NRFX_UARTE1_ENABLED
+#define NRFX_UARTE1_ENABLED 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
+#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
+#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10289152=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
+#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
+#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
+#define NRFX_UARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
+#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
+//==========================================================
+#ifndef NRFX_UART_ENABLED
+#define NRFX_UART_ENABLED 1
+#endif
+// <o> NRFX_UART0_ENABLED - Enable UART0 instance 
+#ifndef NRFX_UART0_ENABLED
+#define NRFX_UART0_ENABLED 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
+#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
+#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3866624=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7729152=> 28800 baud 
+// <8388608=> 31250 baud 
+// <10309632=> 38400 baud 
+// <15007744=> 56000 baud 
+// <15462400=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30924800=> 115200 baud 
+// <61845504=> 230400 baud 
+// <67108864=> 250000 baud 
+// <123695104=> 460800 baud 
+// <247386112=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
+#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
+#endif
+
+// <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRFX_UART_CONFIG_LOG_ENABLED
+#define NRFX_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_UART_CONFIG_LOG_LEVEL
+#define NRFX_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_INFO_COLOR
+#define NRFX_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
+#define NRFX_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </e>
+
+// <e> NRFX_USBD_ENABLED - nrfx_usbd - USBD peripheral driver
+//==========================================================
+#ifndef NRFX_USBD_ENABLED
+#define NRFX_USBD_ENABLED 1
+#endif
+// <o> NRFX_USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_USBD_CONFIG_IRQ_PRIORITY
+#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> NRFX_USBD_CONFIG_DMASCHEDULER_MODE  - USBD DMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_MODE
+#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> NRFX_USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef NRFX_USBD_CONFIG_ISO_IN_ZLP
+#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
+//==========================================================
+#ifndef NRF_CLOCK_ENABLED
+#define NRF_CLOCK_ENABLED 1
+#endif
+// <o> CLOCK_CONFIG_LF_SRC  - LF Clock Source
+ 
+// <0=> RC 
+// <1=> XTAL 
+// <2=> Synth 
+// <131073=> External Low Swing 
+// <196609=> External Full Swing 
+
+#ifndef CLOCK_CONFIG_LF_SRC
+#define CLOCK_CONFIG_LF_SRC 1
+#endif
+
+// <q> CLOCK_CONFIG_LF_CAL_ENABLED  - Calibration enable for LF Clock Source
+ 
+
+#ifndef CLOCK_CONFIG_LF_CAL_ENABLED
+#define CLOCK_CONFIG_LF_CAL_ENABLED 0
+#endif
+
+// <o> CLOCK_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef CLOCK_CONFIG_IRQ_PRIORITY
+#define CLOCK_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <e> POWER_ENABLED - nrf_drv_power - POWER peripheral driver - legacy layer
+//==========================================================
+#ifndef POWER_ENABLED
+#define POWER_ENABLED 1
+#endif
+// <o> POWER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef POWER_CONFIG_IRQ_PRIORITY
+#define POWER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCEN  - The default configuration of main DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCEN
+#define POWER_CONFIG_DEFAULT_DCDCEN 0
+#endif
+
+// <q> POWER_CONFIG_DEFAULT_DCDCENHV  - The default configuration of High Voltage DCDC regulator
+ 
+
+// <i> This settings means only that components for DCDC regulator are installed and it can be enabled.
+
+#ifndef POWER_CONFIG_DEFAULT_DCDCENHV
+#define POWER_CONFIG_DEFAULT_DCDCENHV 0
+#endif
+
+// </e>
+
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
+// <q> SYSTICK_ENABLED  - nrf_drv_systick - ARM(R) SysTick driver - legacy layer
+ 
+
+#ifndef SYSTICK_ENABLED
+#define SYSTICK_ENABLED 1
+#endif
+
+// <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
+//==========================================================
+#ifndef UART_ENABLED
+#define UART_ENABLED 1
+#endif
+// <o> UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
+ 
+// <0=> Disabled 
+// <1=> Enabled 
+
+#ifndef UART_DEFAULT_CONFIG_HWFC
+#define UART_DEFAULT_CONFIG_HWFC 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_PARITY  - Parity
+ 
+// <0=> Excluded 
+// <14=> Included 
+
+#ifndef UART_DEFAULT_CONFIG_PARITY
+#define UART_DEFAULT_CONFIG_PARITY 0
+#endif
+
+// <o> UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef UART_DEFAULT_CONFIG_BAUDRATE
+#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
+#endif
+
+// <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
+#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <q> UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
+ 
+
+#ifndef UART_EASY_DMA_SUPPORT
+#define UART_EASY_DMA_SUPPORT 1
+#endif
+
+// <q> UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
+ 
+
+#ifndef UART_LEGACY_SUPPORT
+#define UART_LEGACY_SUPPORT 1
+#endif
+
+// <e> UART0_ENABLED - Enable UART0 instance
+//==========================================================
+#ifndef UART0_ENABLED
+#define UART0_ENABLED 1
+#endif
+// <q> UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
+ 
+
+#ifndef UART0_CONFIG_USE_EASY_DMA
+#define UART0_CONFIG_USE_EASY_DMA 1
+#endif
+
+// </e>
+
+// <e> UART1_ENABLED - Enable UART1 instance
+//==========================================================
+#ifndef UART1_ENABLED
+#define UART1_ENABLED 0
+#endif
+// </e>
+
+// </e>
+
+// <e> USBD_ENABLED - nrf_drv_usbd - Software Component
+//==========================================================
+#ifndef USBD_ENABLED
+#define USBD_ENABLED 1
+#endif
+// <o> USBD_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef USBD_CONFIG_IRQ_PRIORITY
+#define USBD_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> USBD_CONFIG_DMASCHEDULER_MODE  - USBD SMA scheduler working scheme
+ 
+// <0=> Prioritized access 
+// <1=> Round Robin 
+
+#ifndef USBD_CONFIG_DMASCHEDULER_MODE
+#define USBD_CONFIG_DMASCHEDULER_MODE 0
+#endif
+
+// <q> USBD_CONFIG_DMASCHEDULER_ISO_BOOST  - Give priority to isochronous transfers
+ 
+
+// <i> This option gives priority to isochronous transfers.
+// <i> Enabling it assures that isochronous transfers are always processed,
+// <i> even if multiple other transfers are pending.
+// <i> Isochronous endpoints are prioritized before the usbd_dma_scheduler_algorithm
+// <i> function is called, so the option is independent of the algorithm chosen.
+
+#ifndef USBD_CONFIG_DMASCHEDULER_ISO_BOOST
+#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1
+#endif
+
+// <q> USBD_CONFIG_ISO_IN_ZLP  - Respond to an IN token on ISO IN endpoint with ZLP when no data is ready
+ 
+
+// <i> If set, ISO IN endpoint will respond to an IN token with ZLP when no data is ready to be sent.
+// <i> Else, there will be no response.
+
+#ifndef USBD_CONFIG_ISO_IN_ZLP
+#define USBD_CONFIG_ISO_IN_ZLP 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Libraries 
+
+//==========================================================
+// <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
+//==========================================================
+#ifndef APP_SCHEDULER_ENABLED
+#define APP_SCHEDULER_ENABLED 1
+#endif
+// <q> APP_SCHEDULER_WITH_PAUSE  - Enabling pause feature
+ 
+
+#ifndef APP_SCHEDULER_WITH_PAUSE
+#define APP_SCHEDULER_WITH_PAUSE 1
+#endif
+
+// <q> APP_SCHEDULER_WITH_PROFILER  - Enabling scheduler profiling
+ 
+
+#ifndef APP_SCHEDULER_WITH_PROFILER
+#define APP_SCHEDULER_WITH_PROFILER 1
+#endif
+
+// </e>
+
+// <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
+//==========================================================
+#ifndef APP_TIMER_ENABLED
+#define APP_TIMER_ENABLED 1
+#endif
+// <o> APP_TIMER_CONFIG_RTC_FREQUENCY  - Configure RTC prescaler.
+ 
+// <0=> 32768 Hz 
+// <1=> 16384 Hz 
+// <3=> 8192 Hz 
+// <7=> 4096 Hz 
+// <15=> 2048 Hz 
+// <31=> 1024 Hz 
+
+#ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
+#define APP_TIMER_CONFIG_RTC_FREQUENCY 1
+#endif
+
+// <o> APP_TIMER_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
+#define APP_TIMER_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue. 
+// <i> Size of the queue depends on how many timers are used
+// <i> in the system, how often timers are started and overall
+// <i> system latency. If queue size is too small app_timer calls
+// <i> will fail.
+
+#ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
+#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
+#endif
+
+// <q> APP_TIMER_CONFIG_USE_SCHEDULER  - Enable scheduling app_timer events to app_scheduler
+ 
+
+#ifndef APP_TIMER_CONFIG_USE_SCHEDULER
+#define APP_TIMER_CONFIG_USE_SCHEDULER 0
+#endif
+
+// <q> APP_TIMER_KEEPS_RTC_ACTIVE  - Enable RTC always on
+ 
+
+// <i> If option is enabled RTC is kept running even if there is no active timers.
+// <i> This option can be used when app_timer is used for timestamping.
+
+#ifndef APP_TIMER_KEEPS_RTC_ACTIVE
+#define APP_TIMER_KEEPS_RTC_ACTIVE 0
+#endif
+
+// <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event. 
+// <i> Maximum possible timeout that can be set is reduced by safe window.
+// <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
+// <i> Since RTC is not stopped when processor is halted in debugging session, this value
+// <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
+// <i> without corrupting app_timer behavior.
+
+#ifndef APP_TIMER_SAFE_WINDOW_MS
+#define APP_TIMER_SAFE_WINDOW_MS 300000
+#endif
+
+// <h> App Timer Legacy configuration - Legacy configuration.
+
+//==========================================================
+// <q> APP_TIMER_WITH_PROFILER  - Enable app_timer profiling
+ 
+
+#ifndef APP_TIMER_WITH_PROFILER
+#define APP_TIMER_WITH_PROFILER 0
+#endif
+
+// <q> APP_TIMER_CONFIG_SWI_NUMBER  - Configure SWI instance used.
+ 
+
+#ifndef APP_TIMER_CONFIG_SWI_NUMBER
+#define APP_TIMER_CONFIG_SWI_NUMBER 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <e> APP_USBD_ENABLED - app_usbd - USB Device library
+//==========================================================
+#ifndef APP_USBD_ENABLED
+#define APP_USBD_ENABLED 1
+#endif
+// <s> APP_USBD_VID - Vendor ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Vendor ID ordered from USB IF: http://www.usb.org/developers/vendor/
+#ifndef APP_USBD_VID
+#define APP_USBD_VID 0x1915
+#endif
+
+// <s> APP_USBD_PID - Product ID.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Selected Product ID
+#ifndef APP_USBD_PID
+#define APP_USBD_PID 0xC00A
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MAJOR - Device version, major part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MAJOR
+#define APP_USBD_DEVICE_VER_MAJOR 1
+#endif
+
+// <o> APP_USBD_DEVICE_VER_MINOR - Device version, minor part.  <0-99> 
+
+
+// <i> Device version, will be converted automatically to BCD notation. Use just decimal values.
+
+#ifndef APP_USBD_DEVICE_VER_MINOR
+#define APP_USBD_DEVICE_VER_MINOR 0
+#endif
+
+// <q> APP_USBD_CONFIG_SELF_POWERED  - Self-powered device, as opposed to bus-powered.
+ 
+
+#ifndef APP_USBD_CONFIG_SELF_POWERED
+#define APP_USBD_CONFIG_SELF_POWERED 1
+#endif
+
+// <o> APP_USBD_CONFIG_MAX_POWER - MaxPower field in configuration descriptor in milliamps.  <0-500> 
+
+
+#ifndef APP_USBD_CONFIG_MAX_POWER
+#define APP_USBD_CONFIG_MAX_POWER 100
+#endif
+
+// <q> APP_USBD_CONFIG_POWER_EVENTS_PROCESS  - Process power events.
+ 
+
+// <i> Enable processing power events in USB event handler.
+
+#ifndef APP_USBD_CONFIG_POWER_EVENTS_PROCESS
+#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1
+#endif
+
+// <e> APP_USBD_CONFIG_EVENT_QUEUE_ENABLE - Enable event queue.
+
+// <i> This is the default configuration when all the events are placed into internal queue.
+// <i> Disable it when an external queue is used like app_scheduler or if you wish to process all events inside interrupts.
+// <i> Processing all events from the interrupt level adds requirement not to call any functions that modifies the USBD library state from the context higher than USB interrupt context.
+// <i> Functions that modify USBD state are functions for sleep, wakeup, start, stop, enable, and disable.
+//==========================================================
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_ENABLE
+#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 1
+#endif
+// <o> APP_USBD_CONFIG_EVENT_QUEUE_SIZE - The size of the event queue.  <16-64> 
+
+
+// <i> The size of the queue for the events that would be processed in the main loop.
+
+#ifndef APP_USBD_CONFIG_EVENT_QUEUE_SIZE
+#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32
+#endif
+
+// <o> APP_USBD_CONFIG_SOF_HANDLING_MODE  - Change SOF events handling mode.
+ 
+
+// <i> Normal queue   - SOF events are pushed normally into the event queue.
+// <i> Compress queue - SOF events are counted and binded with other events or executed when the queue is empty.
+// <i>                  This prevents the queue from filling up with SOF events.
+// <i> Interrupt      - SOF events are processed in interrupt.
+// <0=> Normal queue 
+// <1=> Compress queue 
+// <2=> Interrupt 
+
+#ifndef APP_USBD_CONFIG_SOF_HANDLING_MODE
+#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1
+#endif
+
+// </e>
+
+// <q> APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE  - Provide a function that generates timestamps for logs based on the current SOF.
+ 
+
+// <i> The function app_usbd_sof_timestamp_get is implemented if the logger is enabled. 
+// <i> Use it when initializing the logger. 
+// <i> SOF processing is always enabled when this configuration parameter is active. 
+// <i> Note: This option is configured outside of APP_USBD_CONFIG_LOG_ENABLED. 
+// <i> This means that it works even if the logging in this very module is disabled. 
+
+#ifndef APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE
+#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0
+#endif
+
+// <o> APP_USBD_CONFIG_DESC_STRING_SIZE - Maximum size of the NULL-terminated string of the string descriptor.  <31-254> 
+
+
+// <i> 31 characters can be stored in the internal USB buffer used for transfers.
+// <i> Any value higher than 31 creates an additional buffer just for descriptor strings.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_SIZE
+#define APP_USBD_CONFIG_DESC_STRING_SIZE 31
+#endif
+
+// <q> APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED  - Enable UTF8 conversion.
+ 
+
+// <i> Enable UTF8-encoded characters. In normal processing, only ASCII characters are available.
+
+#ifndef APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED
+#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0
+#endif
+
+// <s> APP_USBD_STRINGS_LANGIDS - Supported languages identifiers.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of supported languages.
+#ifndef APP_USBD_STRINGS_LANGIDS
+#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US)
+#endif
+
+// <e> APP_USBD_STRING_ID_MANUFACTURER - Define manufacturer string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_MANUFACTURER
+#define APP_USBD_STRING_ID_MANUFACTURER 1
+#endif
+// <q> APP_USBD_STRINGS_MANUFACTURER_EXTERN  - Define whether @ref APP_USBD_STRINGS_MANUFACTURER is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_MANUFACTURER_EXTERN
+#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_MANUFACTURER - String descriptor for the manufacturer name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Comma-separated list of manufacturer names for each defined language.
+// <i> Use @ref APP_USBD_STRING_DESC macro to create string descriptor from a NULL-terminated string.
+// <i> Use @ref APP_USBD_STRING_RAW8_DESC macro to create string descriptor from comma-separated uint8_t values.
+// <i> Use @ref APP_USBD_STRING_RAW16_DESC macro to create string descriptor from comma-separated uint16_t values.
+// <i> Alternatively, configure the macro to point to any internal variable pointer that already contains the descriptor.
+// <i> Setting string to NULL disables that string.
+// <i> The order of manufacturer names must be the same like in @ref APP_USBD_STRINGS_LANGIDS.
+#ifndef APP_USBD_STRINGS_MANUFACTURER
+#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_PRODUCT - Define product string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_PRODUCT
+#define APP_USBD_STRING_ID_PRODUCT 2
+#endif
+// <q> APP_USBD_STRINGS_PRODUCT_EXTERN  - Define whether @ref APP_USBD_STRINGS_PRODUCT is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRINGS_PRODUCT_EXTERN
+#define APP_USBD_STRINGS_PRODUCT_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_PRODUCT - String descriptor for the product name.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> List of product names that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_PRODUCT
+#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("nRF52 Connectivity")
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_SERIAL - Define serial number string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_SERIAL
+#define APP_USBD_STRING_ID_SERIAL 3
+#endif
+// <q> APP_USBD_STRING_SERIAL_EXTERN  - Define whether @ref APP_USBD_STRING_SERIAL is created by macro or declared as a global variable.
+ 
+
+#ifndef APP_USBD_STRING_SERIAL_EXTERN
+#define APP_USBD_STRING_SERIAL_EXTERN 1
+#endif
+
+// <s> APP_USBD_STRING_SERIAL - String descriptor for the serial number.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Serial number that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRING_SERIAL
+#define APP_USBD_STRING_SERIAL g_extern_serial_number
+#endif
+
+// </e>
+
+// <e> APP_USBD_STRING_ID_CONFIGURATION - Define configuration string ID.
+
+// <i> Setting ID to 0 disables the string.
+//==========================================================
+#ifndef APP_USBD_STRING_ID_CONFIGURATION
+#define APP_USBD_STRING_ID_CONFIGURATION 4
+#endif
+// <q> APP_USBD_STRING_CONFIGURATION_EXTERN  - Define whether @ref APP_USBD_STRINGS_CONFIGURATION is created by macro or declared as global variable.
+ 
+
+#ifndef APP_USBD_STRING_CONFIGURATION_EXTERN
+#define APP_USBD_STRING_CONFIGURATION_EXTERN 0
+#endif
+
+// <s> APP_USBD_STRINGS_CONFIGURATION - String descriptor for the device configuration.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> Configuration string that is defined the same way like in @ref APP_USBD_STRINGS_MANUFACTURER.
+#ifndef APP_USBD_STRINGS_CONFIGURATION
+#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration")
+#endif
+
+// </e>
+
+// <s> APP_USBD_STRINGS_USER - Default values for user strings.
+
+// <i> Note: This value is not editable in Configuration Wizard.
+// <i> This value stores all application specific user strings with the default initialization.
+// <i> The setup is done by X-macros.
+// <i> Expected macro parameters:
+// <i> @code
+// <i> X(mnemonic, [=str_idx], ...)
+// <i> @endcode
+// <i> - @c mnemonic: Mnemonic of the string descriptor that would be added to
+// <i>                @ref app_usbd_string_desc_idx_t enumerator.
+// <i> - @c str_idx : String index value, can be set or left empty.
+// <i>                For example, WinUSB driver requires descriptor to be present on 0xEE index.
+// <i>                Then use X(USBD_STRING_WINUSB, =0xEE, (APP_USBD_STRING_DESC(...)))
+// <i> - @c ...     : List of string descriptors for each defined language.
+#ifndef APP_USBD_STRINGS_USER
+#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1"))
+#endif
+
+// </e>
+
+// <q> APP_USBD_NRF_DFU_TRIGGER_ENABLED  - app_usbd_nrf_dfu_trigger - USBD Nordic DFU Trigger class
+ 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_ENABLED 1
+#endif
+
+// <q> CRC16_ENABLED  - crc16 - CRC16 calculation routines
+ 
+
+#ifndef CRC16_ENABLED
+#define CRC16_ENABLED 1
+#endif
+
+// <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
+//==========================================================
+#ifndef NRF_BALLOC_ENABLED
+#define NRF_BALLOC_ENABLED 1
+#endif
+// <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
+#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
+#endif
+
+// <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard.  <0-255> 
+
+
+#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
+#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
+#endif
+
+// <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED  - Enables basic checks in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
+#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED  - Enables double memory free check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED  - Enables free memory corruption check in this module.
+ 
+
+#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
+#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
+#endif
+
+// <q> NRF_BALLOC_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_BALLOC_CLI_CMDS
+#define NRF_BALLOC_CLI_CMDS 0
+#endif
+
+// </e>
+
+// </e>
+
+// <q> NRF_MEMOBJ_ENABLED  - nrf_memobj - Linked memory allocator module
+ 
+
+#ifndef NRF_MEMOBJ_ENABLED
+#define NRF_MEMOBJ_ENABLED 1
+#endif
+
+// <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
+//==========================================================
+#ifndef NRF_QUEUE_ENABLED
+#define NRF_QUEUE_ENABLED 1
+#endif
+// <q> NRF_QUEUE_CLI_CMDS  - Enable CLI commands specific to the module
+ 
+
+#ifndef NRF_QUEUE_CLI_CMDS
+#define NRF_QUEUE_CLI_CMDS 0
+#endif
+
+// </e>
+
+// <q> NRF_SECTION_ITER_ENABLED  - nrf_section_iter - Section iterator
+ 
+
+#ifndef NRF_SECTION_ITER_ENABLED
+#define NRF_SECTION_ITER_ENABLED 1
+#endif
+
+// <q> NRF_SORTLIST_ENABLED  - nrf_sortlist - Sorted list
+ 
+
+#ifndef NRF_SORTLIST_ENABLED
+#define NRF_SORTLIST_ENABLED 1
+#endif
+
+// <q> NRF_STRERROR_ENABLED  - nrf_strerror - Library for converting error code to string.
+ 
+
+#ifndef NRF_STRERROR_ENABLED
+#define NRF_STRERROR_ENABLED 1
+#endif
+
+// <h> app_usbd_cdc_acm - USB CDC ACM class
+
+//==========================================================
+// <q> APP_USBD_CDC_ACM_ENABLED  - Enabling USBD CDC ACM Class library
+ 
+
+#ifndef APP_USBD_CDC_ACM_ENABLED
+#define APP_USBD_CDC_ACM_ENABLED 1
+#endif
+
+// <q> APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE  - Send ZLP on write with same size as endpoint
+ 
+
+// <i> If enabled, CDC ACM class will automatically send a zero length packet after transfer which has the same size as endpoint.
+// <i> This may limit throughput if a lot of binary data is sent, but in terminal mode operation it makes sure that the data is always displayed right after it is sent.
+
+#ifndef APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE
+#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nrf_fprintf - fprintf function.
+
+//==========================================================
+// <q> NRF_FPRINTF_ENABLED  - Enable/disable fprintf module.
+ 
+
+#ifndef NRF_FPRINTF_ENABLED
+#define NRF_FPRINTF_ENABLED 1
+#endif
+
+// <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED  - For each printed LF, function will add CR.
+ 
+
+#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
+#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Log 
+
+//==========================================================
+// <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_RTT_ENABLED
+#define NRF_LOG_BACKEND_RTT_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
+#endif
+
+// <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
+// <i> If RTT fails to accept any new data after retries
+// <i> module assumes that host is not active and on next
+// <i> request it will perform only one write attempt.
+// <i> On successful writing, module assumes that host is active
+// <i> and scheme with retry is applied again.
+
+#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
+#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
+#endif
+
+// </e>
+
+// <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
+//==========================================================
+#ifndef NRF_LOG_BACKEND_UART_ENABLED
+#define NRF_LOG_BACKEND_UART_ENABLED 0
+#endif
+// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
+#ifndef NRF_LOG_BACKEND_UART_TX_PIN
+#define NRF_LOG_BACKEND_UART_TX_PIN 31
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
+ 
+// <323584=> 1200 baud 
+// <643072=> 2400 baud 
+// <1290240=> 4800 baud 
+// <2576384=> 9600 baud 
+// <3862528=> 14400 baud 
+// <5152768=> 19200 baud 
+// <7716864=> 28800 baud 
+// <10289152=> 38400 baud 
+// <15400960=> 57600 baud 
+// <20615168=> 76800 baud 
+// <30801920=> 115200 baud 
+// <61865984=> 230400 baud 
+// <67108864=> 250000 baud 
+// <121634816=> 460800 baud 
+// <251658240=> 921600 baud 
+// <268435456=> 1000000 baud 
+
+#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
+#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
+#endif
+
+// <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
+// <i> Size of the buffer is a trade-off between RAM usage and processing.
+// <i> if buffer is smaller then strings will often be fragmented.
+// <i> It is recommended to use size which will fit typical log and only the
+// <i> longer one will be fragmented.
+
+#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
+#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
+#endif
+
+// </e>
+
+// <e> NRF_LOG_ENABLED - nrf_log - Logger
+//==========================================================
+#ifndef NRF_LOG_ENABLED
+#define NRF_LOG_ENABLED 0
+#endif
+// <h> Log message pool - Configuration of log message pool
+
+//==========================================================
+// <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
+// <i> If a small value is set, then performance of logs processing
+// <i> is degraded because data is fragmented. Bigger value impacts
+// <i> RAM memory utilization. The size is set to fit a message with
+// <i> a timestamp and up to 2 arguments in a single memory object.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
+#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
+#endif
+
+// <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
+// <i> If a small value is set, then it may lead to a deadlock
+// <i> in certain cases if backend has high latency and holds
+// <i> multiple messages for long time. Bigger value impacts
+// <i> RAM memory usage.
+
+#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
+#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
+#endif
+
+// </h> 
+//==========================================================
+
+// <q> NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
+ 
+
+// <i> If set then oldest logs are overwritten. Otherwise a 
+// <i> marker is injected informing about overflow.
+
+#ifndef NRF_LOG_ALLOW_OVERFLOW
+#define NRF_LOG_ALLOW_OVERFLOW 1
+#endif
+
+// <o> NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
+ 
+
+// <i> Must be power of 2 and multiple of 4.
+// <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+// <2048=> 2048 
+// <4096=> 4096 
+// <8192=> 8192 
+// <16384=> 16384 
+
+#ifndef NRF_LOG_BUFSIZE
+#define NRF_LOG_BUFSIZE 1024
+#endif
+
+// <q> NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
+ 
+
+#ifndef NRF_LOG_CLI_CMDS
+#define NRF_LOG_CLI_CMDS 0
+#endif
+
+// <o> NRF_LOG_DEFAULT_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LOG_DEFAULT_LEVEL
+#define NRF_LOG_DEFAULT_LEVEL 3
+#endif
+
+// <q> NRF_LOG_DEFERRED  - Enable deffered logger.
+ 
+
+// <i> Log data is buffered and can be processed in idle.
+
+#ifndef NRF_LOG_DEFERRED
+#define NRF_LOG_DEFERRED 1
+#endif
+
+// <q> NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
+ 
+
+#ifndef NRF_LOG_FILTERS_ENABLED
+#define NRF_LOG_FILTERS_ENABLED 0
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <o> NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
+ 
+// <16=> 16 
+// <32=> 32 
+// <64=> 64 
+// <128=> 128 
+// <256=> 256 
+// <512=> 512 
+// <1024=> 1024 
+
+#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
+#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
+#endif
+
+// <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
+//==========================================================
+#ifndef NRF_LOG_USES_COLORS
+#define NRF_LOG_USES_COLORS 0
+#endif
+// <o> NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_COLOR_DEFAULT
+#define NRF_LOG_COLOR_DEFAULT 0
+#endif
+
+// <o> NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_ERROR_COLOR
+#define NRF_LOG_ERROR_COLOR 2
+#endif
+
+// <o> NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LOG_WARNING_COLOR
+#define NRF_LOG_WARNING_COLOR 4
+#endif
+
+// </e>
+
+// <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping
+
+// <i> Function for getting the timestamp is provided by the user
+//==========================================================
+#ifndef NRF_LOG_USES_TIMESTAMP
+#define NRF_LOG_USES_TIMESTAMP 0
+#endif
+// <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
+#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
+#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
+#endif
+
+// </e>
+
+// <h> nrf_log module configuration 
+
+//==========================================================
+// <h> nrf_log in nRF_Core 
+
+//==========================================================
+// <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
+#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
+#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
+#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
+#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
+#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
+#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
+#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
+#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
+#define TASK_MANAGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TASK_MANAGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
+#define TASK_MANAGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TASK_MANAGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_INFO_COLOR
+#define TASK_MANAGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TASK_MANAGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
+#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Drivers 
+
+//==========================================================
+// <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef CLOCK_CONFIG_LOG_ENABLED
+#define CLOCK_CONFIG_LOG_ENABLED 0
+#endif
+// <o> CLOCK_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef CLOCK_CONFIG_LOG_LEVEL
+#define CLOCK_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> CLOCK_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_INFO_COLOR
+#define CLOCK_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> CLOCK_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef CLOCK_CONFIG_DEBUG_COLOR
+#define CLOCK_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef COMP_CONFIG_LOG_ENABLED
+#define COMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> COMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef COMP_CONFIG_LOG_LEVEL
+#define COMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> COMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_INFO_COLOR
+#define COMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> COMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef COMP_CONFIG_DEBUG_COLOR
+#define COMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef GPIOTE_CONFIG_LOG_ENABLED
+#define GPIOTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> GPIOTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef GPIOTE_CONFIG_LOG_LEVEL
+#define GPIOTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> GPIOTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_INFO_COLOR
+#define GPIOTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> GPIOTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef GPIOTE_CONFIG_DEBUG_COLOR
+#define GPIOTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef LPCOMP_CONFIG_LOG_ENABLED
+#define LPCOMP_CONFIG_LOG_ENABLED 0
+#endif
+// <o> LPCOMP_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef LPCOMP_CONFIG_LOG_LEVEL
+#define LPCOMP_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> LPCOMP_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_INFO_COLOR
+#define LPCOMP_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> LPCOMP_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef LPCOMP_CONFIG_DEBUG_COLOR
+#define LPCOMP_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
+#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> MAX3421E_HOST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
+#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
+#define MAX3421E_HOST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
+#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef NRFX_USBD_CONFIG_LOG_ENABLED
+#define NRFX_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRFX_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRFX_USBD_CONFIG_LOG_LEVEL
+#define NRFX_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRFX_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_INFO_COLOR
+#define NRFX_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRFX_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
+#define NRFX_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PDM_CONFIG_LOG_ENABLED
+#define PDM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PDM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PDM_CONFIG_LOG_LEVEL
+#define PDM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PDM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_INFO_COLOR
+#define PDM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PDM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PDM_CONFIG_DEBUG_COLOR
+#define PDM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PPI_CONFIG_LOG_ENABLED
+#define PPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PPI_CONFIG_LOG_LEVEL
+#define PPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_INFO_COLOR
+#define PPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PPI_CONFIG_DEBUG_COLOR
+#define PPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef PWM_CONFIG_LOG_ENABLED
+#define PWM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> PWM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PWM_CONFIG_LOG_LEVEL
+#define PWM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> PWM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_INFO_COLOR
+#define PWM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> PWM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PWM_CONFIG_DEBUG_COLOR
+#define PWM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef QDEC_CONFIG_LOG_ENABLED
+#define QDEC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> QDEC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef QDEC_CONFIG_LOG_LEVEL
+#define QDEC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> QDEC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_INFO_COLOR
+#define QDEC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> QDEC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef QDEC_CONFIG_DEBUG_COLOR
+#define QDEC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RNG_CONFIG_LOG_ENABLED
+#define RNG_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RNG_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RNG_CONFIG_LOG_LEVEL
+#define RNG_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RNG_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_INFO_COLOR
+#define RNG_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RNG_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RNG_CONFIG_DEBUG_COLOR
+#define RNG_CONFIG_DEBUG_COLOR 0
+#endif
+
+// <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED  - Enables logging of random numbers.
+ 
+
+#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
+#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
+#endif
+
+// </e>
+
+// <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef RTC_CONFIG_LOG_ENABLED
+#define RTC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> RTC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef RTC_CONFIG_LOG_LEVEL
+#define RTC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> RTC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_INFO_COLOR
+#define RTC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> RTC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef RTC_CONFIG_DEBUG_COLOR
+#define RTC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SAADC_CONFIG_LOG_ENABLED
+#define SAADC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SAADC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SAADC_CONFIG_LOG_LEVEL
+#define SAADC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SAADC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_INFO_COLOR
+#define SAADC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SAADC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SAADC_CONFIG_DEBUG_COLOR
+#define SAADC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPIS_CONFIG_LOG_ENABLED
+#define SPIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPIS_CONFIG_LOG_LEVEL
+#define SPIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_INFO_COLOR
+#define SPIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPIS_CONFIG_DEBUG_COLOR
+#define SPIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SPI_CONFIG_LOG_ENABLED
+#define SPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SPI_CONFIG_LOG_LEVEL
+#define SPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_INFO_COLOR
+#define SPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SPI_CONFIG_DEBUG_COLOR
+#define SPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TIMER_CONFIG_LOG_ENABLED
+#define TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TIMER_CONFIG_LOG_LEVEL
+#define TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_INFO_COLOR
+#define TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TIMER_CONFIG_DEBUG_COLOR
+#define TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWIS_CONFIG_LOG_ENABLED
+#define TWIS_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWIS_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWIS_CONFIG_LOG_LEVEL
+#define TWIS_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWIS_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_INFO_COLOR
+#define TWIS_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWIS_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWIS_CONFIG_DEBUG_COLOR
+#define TWIS_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef TWI_CONFIG_LOG_ENABLED
+#define TWI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> TWI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef TWI_CONFIG_LOG_LEVEL
+#define TWI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> TWI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_INFO_COLOR
+#define TWI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> TWI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef TWI_CONFIG_DEBUG_COLOR
+#define TWI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef UART_CONFIG_LOG_ENABLED
+#define UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef UART_CONFIG_LOG_LEVEL
+#define UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_INFO_COLOR
+#define UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef UART_CONFIG_DEBUG_COLOR
+#define UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
+//==========================================================
+#ifndef USBD_CONFIG_LOG_ENABLED
+#define USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef USBD_CONFIG_LOG_LEVEL
+#define USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_INFO_COLOR
+#define USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef USBD_CONFIG_DEBUG_COLOR
+#define USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef WDT_CONFIG_LOG_ENABLED
+#define WDT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> WDT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef WDT_CONFIG_LOG_LEVEL
+#define WDT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> WDT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_INFO_COLOR
+#define WDT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> WDT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef WDT_CONFIG_DEBUG_COLOR
+#define WDT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Libraries 
+
+//==========================================================
+// <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_TIMER_CONFIG_LOG_ENABLED
+#define APP_TIMER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_TIMER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_LOG_LEVEL
+#define APP_TIMER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
+#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> APP_TIMER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_INFO_COLOR
+#define APP_TIMER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_TIMER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_TIMER_CONFIG_DEBUG_COLOR
+#define APP_TIMER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
+#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
+#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
+#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
+//==========================================================
+#ifndef APP_USBD_CONFIG_LOG_ENABLED
+#define APP_USBD_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_CONFIG_LOG_LEVEL
+#define APP_USBD_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_INFO_COLOR
+#define APP_USBD_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_CONFIG_DEBUG_COLOR
+#define APP_USBD_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
+#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
+#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
+#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
+#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
+#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_MSC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
+#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
+#define APP_USBD_MSC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
+#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
+#endif
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
+#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
+#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_ATFIFO_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
+#define NRF_ATFIFO_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
+#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
+#define NRF_BALLOC_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BALLOC_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL  - Initial severity level if dynamic filtering is enabled.
+ 
+
+// <i> If module generates a lot of logs, initial log level can
+// <i> be decreased to prevent flooding. Severity level can be
+// <i> increased on instance basis.
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
+#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BALLOC_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_INFO_COLOR
+#define NRF_BALLOC_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BALLOC_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
+#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
+#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
+#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_CLI_UART_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
+#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
+#define NRF_CLI_UART_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
+#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
+#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
+#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
+#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
+#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
+#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
+#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
+#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
+#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
+#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
+#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
+#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
+#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
+#define NRF_QUEUE_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_QUEUE_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL  - Initial severity level if dynamic filtering is enabled
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
+#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
+#endif
+
+// <o> NRF_QUEUE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_INFO_COLOR
+#define NRF_QUEUE_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_QUEUE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
+#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
+//==========================================================
+#ifndef NRF_SDH_ANT_LOG_ENABLED
+#define NRF_SDH_ANT_LOG_ENABLED 0
+#endif
+// <o> NRF_SDH_ANT_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_ANT_LOG_LEVEL
+#define NRF_SDH_ANT_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_ANT_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_INFO_COLOR
+#define NRF_SDH_ANT_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_ANT_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_ANT_DEBUG_COLOR
+#define NRF_SDH_ANT_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
+//==========================================================
+#ifndef NRF_SDH_BLE_LOG_ENABLED
+#define NRF_SDH_BLE_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_BLE_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_BLE_LOG_LEVEL
+#define NRF_SDH_BLE_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_BLE_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_INFO_COLOR
+#define NRF_SDH_BLE_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_BLE_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_BLE_DEBUG_COLOR
+#define NRF_SDH_BLE_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
+//==========================================================
+#ifndef NRF_SDH_LOG_ENABLED
+#define NRF_SDH_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_LOG_LEVEL
+#define NRF_SDH_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_INFO_COLOR
+#define NRF_SDH_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_DEBUG_COLOR
+#define NRF_SDH_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
+//==========================================================
+#ifndef NRF_SDH_SOC_LOG_ENABLED
+#define NRF_SDH_SOC_LOG_ENABLED 1
+#endif
+// <o> NRF_SDH_SOC_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SDH_SOC_LOG_LEVEL
+#define NRF_SDH_SOC_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SDH_SOC_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_INFO_COLOR
+#define NRF_SDH_SOC_INFO_COLOR 0
+#endif
+
+// <o> NRF_SDH_SOC_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SDH_SOC_DEBUG_COLOR
+#define NRF_SDH_SOC_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
+#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_SORTLIST_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
+#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
+#define NRF_SORTLIST_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
+#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
+#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
+#endif
+// <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
+#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
+#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
+#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
+//==========================================================
+#ifndef PM_LOG_ENABLED
+#define PM_LOG_ENABLED 1
+#endif
+// <o> PM_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef PM_LOG_LEVEL
+#define PM_LOG_LEVEL 3
+#endif
+
+// <o> PM_LOG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_INFO_COLOR
+#define PM_LOG_INFO_COLOR 0
+#endif
+
+// <o> PM_LOG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef PM_LOG_DEBUG_COLOR
+#define PM_LOG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <h> nrf_log in nRF_Serialization 
+
+//==========================================================
+// <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
+//==========================================================
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
+#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
+#endif
+// <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL  - Default Severity level
+ 
+// <0=> Off 
+// <1=> Error 
+// <2=> Warning 
+// <3=> Info 
+// <4=> Debug 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
+#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
+#endif
+
+// <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
+ 
+// <0=> Default 
+// <1=> Black 
+// <2=> Red 
+// <3=> Green 
+// <4=> Yellow 
+// <5=> Blue 
+// <6=> Magenta 
+// <7=> Cyan 
+// <8=> White 
+
+#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
+#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
+#endif
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// </e>
+
+// <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED  - nrf_log_str_formatter - Log string formatter
+ 
+
+#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
+#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> nRF_Segger_RTT 
+
+//==========================================================
+// <h> segger_rtt - SEGGER RTT
+
+//==========================================================
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. 
+// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
+// <i> or this value is actually used. It depends on which one is bigger.
+
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. 
+#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
+#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
+#endif
+
+// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. 
+#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
+#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
+#endif
+
+// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE  - RTT behavior if the buffer is full.
+ 
+
+// <i> The following modes are supported:
+// <i> - SKIP  - Do not block, output nothing.
+// <i> - TRIM  - Do not block, output as much as fits.
+// <i> - BLOCK - Wait until there is space in the buffer.
+// <0=> SKIP 
+// <1=> TRIM 
+// <2=> BLOCK_IF_FIFO_FULL 
+
+#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
+#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+// <h> nRF_SoftDevice 
+
+//==========================================================
+// <e> NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler
+//==========================================================
+#ifndef NRF_SDH_BLE_ENABLED
+#define NRF_SDH_BLE_ENABLED 1
+#endif
+// <h> BLE Stack configuration - Stack configuration parameters
+
+// <i> The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set.
+// <i> Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set.
+//==========================================================
+// <o> NRF_SDH_BLE_GAP_DATA_LENGTH   <27-251> 
+
+
+// <i> Requested BLE GAP data length to be negotiated.
+
+#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH
+#define NRF_SDH_BLE_GAP_DATA_LENGTH 27
+#endif
+
+// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
+#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
+#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
+#endif
+
+// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
+// <i> Maximum number of total concurrent connections using the default configuration.
+
+#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
+#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1
+#endif
+
+// <o> NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. 
+// <i> The time set aside for this connection on every connection interval in 1.25 ms units.
+
+#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH
+#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6
+#endif
+
+// <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. 
+#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
+#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 250
+#endif
+
+// <o> NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. 
+#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE
+#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408
+#endif
+
+// <o> NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. 
+#ifndef NRF_SDH_BLE_VS_UUID_COUNT
+#define NRF_SDH_BLE_VS_UUID_COUNT 0
+#endif
+
+// <q> NRF_SDH_BLE_SERVICE_CHANGED  - Include the Service Changed characteristic in the Attribute Table.
+ 
+
+#ifndef NRF_SDH_BLE_SERVICE_CHANGED
+#define NRF_SDH_BLE_SERVICE_CHANGED 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> BLE Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. 
+// <i> This setting configures the number of priority levels available for BLE event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4
+#endif
+
+// <h> BLE Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_BLE_OBSERVER_PRIO
+#define BLE_ADV_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_ANCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Apple Notification Service Client.
+
+#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO
+#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_ANS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Alert Notification Service Client.
+
+#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO
+#define BLE_ANS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service.
+
+#ifndef BLE_BAS_BLE_OBSERVER_PRIO
+#define BLE_BAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Battery Service Client.
+
+#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO
+#define BLE_BAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_BPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Blood Pressure Service.
+
+#ifndef BLE_BPS_BLE_OBSERVER_PRIO
+#define BLE_BPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CONN_PARAMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection parameters module.
+
+#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO
+#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_CONN_STATE_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Connection State module.
+
+#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO
+#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0
+#endif
+
+// <o> BLE_CSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service.
+
+#ifndef BLE_CSCS_BLE_OBSERVER_PRIO
+#define BLE_CSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_CTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Current Time Service Client.
+
+#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO
+#define BLE_CTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DB_DISC_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Database Discovery module.
+
+#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO
+#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_BLE_OBSERVER_PRIO
+#define BLE_DFU_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_DIS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Device Information Client.
+
+#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO
+#define BLE_DIS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_GLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Glucose Service.
+
+#ifndef BLE_GLS_BLE_OBSERVER_PRIO
+#define BLE_GLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HIDS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Human Interface Device Service.
+
+#ifndef BLE_HIDS_BLE_OBSERVER_PRIO
+#define BLE_HIDS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service.
+
+#ifndef BLE_HRS_BLE_OBSERVER_PRIO
+#define BLE_HRS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HRS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Heart Rate Service Client.
+
+#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO
+#define BLE_HRS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_HTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Health Thermometer Service.
+
+#ifndef BLE_HTS_BLE_OBSERVER_PRIO
+#define BLE_HTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service.
+
+#ifndef BLE_IAS_BLE_OBSERVER_PRIO
+#define BLE_IAS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_IAS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Immediate Alert Service Client.
+
+#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO
+#define BLE_IAS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service.
+
+#ifndef BLE_LBS_BLE_OBSERVER_PRIO
+#define BLE_LBS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LBS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the LED Button Service Client.
+
+#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO
+#define BLE_LBS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LLS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Link Loss Service.
+
+#ifndef BLE_LLS_BLE_OBSERVER_PRIO
+#define BLE_LLS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_LNS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Location Navigation Service.
+
+#ifndef BLE_LNS_BLE_OBSERVER_PRIO
+#define BLE_LNS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Service.
+
+#ifndef BLE_NUS_BLE_OBSERVER_PRIO
+#define BLE_NUS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_NUS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the UART Central Service.
+
+#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO
+#define BLE_NUS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service.
+
+#ifndef BLE_OTS_BLE_OBSERVER_PRIO
+#define BLE_OTS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_OTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Object transfer service client.
+
+#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO
+#define BLE_OTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Service.
+
+#ifndef BLE_RSCS_BLE_OBSERVER_PRIO
+#define BLE_RSCS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_RSCS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Running Speed and Cadence Client.
+
+#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO
+#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BLE_TPS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the TX Power Service.
+
+#ifndef BLE_TPS_BLE_OBSERVER_PRIO
+#define BLE_TPS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> BSP_BTN_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Button Control module.
+
+#ifndef BSP_BTN_BLE_OBSERVER_PRIO
+#define BSP_BTN_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the NFC pairing library.
+
+#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
+#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Bond Management Service.
+
+#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_CGMS_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service.
+
+#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO
+#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_ES_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Eddystone module.
+
+#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO
+#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT Service Client.
+
+#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_GATT_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the GATT module.
+
+#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO
+#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1
+#endif
+
+// <o> NRF_BLE_QWR_BLE_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the Queued writes module.
+
+#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO
+#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2
+#endif
+
+// <o> NRF_BLE_SCAN_OBSERVER_PRIO  
+// <i> Priority for dispatching the BLE events to the Scanning Module.
+
+#ifndef NRF_BLE_SCAN_OBSERVER_PRIO
+#define NRF_BLE_SCAN_OBSERVER_PRIO 1
+#endif
+
+// <o> PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. 
+#ifndef PM_BLE_OBSERVER_PRIO
+#define PM_BLE_OBSERVER_PRIO 1
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler
+//==========================================================
+#ifndef NRF_SDH_ENABLED
+#define NRF_SDH_ENABLED 1
+#endif
+// <h> Dispatch model 
+
+// <i> This setting configures how Stack events are dispatched to the application.
+//==========================================================
+// <o> NRF_SDH_DISPATCH_MODEL
+ 
+
+// <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context.
+// <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler.
+// <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually.
+// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT 
+// <1=> NRF_SDH_DISPATCH_MODEL_APPSH 
+// <2=> NRF_SDH_DISPATCH_MODEL_POLLING 
+
+#ifndef NRF_SDH_DISPATCH_MODEL
+#define NRF_SDH_DISPATCH_MODEL 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Clock - SoftDevice clock configuration
+
+//==========================================================
+// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
+ 
+// <0=> NRF_CLOCK_LF_SRC_RC 
+// <1=> NRF_CLOCK_LF_SRC_XTAL 
+// <2=> NRF_CLOCK_LF_SRC_SYNTH 
+
+#ifndef NRF_SDH_CLOCK_LF_SRC
+#define NRF_SDH_CLOCK_LF_SRC 1
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
+#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
+#define NRF_SDH_CLOCK_LF_RC_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
+// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
+// <i>  if the temperature has not changed.
+
+#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
+#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
+#endif
+
+// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
+ 
+// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
+// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
+// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
+// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
+// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
+// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
+// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
+// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
+// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
+// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
+// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
+// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
+
+#ifndef NRF_SDH_CLOCK_LF_ACCURACY
+#define NRF_SDH_CLOCK_LF_ACCURACY 7
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> SDH Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice request event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice state event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <o> NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. 
+// <i> This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC).
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2
+#endif
+
+
+// <h> State Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> CLOCK_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO
+#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO
+#define POWER_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// <o> RNG_CONFIG_STATE_OBSERVER_PRIO  
+// <i> Priority with which state events are dispatched to this module.
+
+#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO
+#define RNG_CONFIG_STATE_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// <h> Stack Event Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> NRF_SDH_ANT_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which ANT events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO
+#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_BLE_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which BLE events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO
+#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0
+#endif
+
+// <o> NRF_SDH_SOC_STACK_OBSERVER_PRIO  
+// <i> This setting configures the priority with which SoC events are processed with respect to other events coming from the stack.
+// <i> Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE.
+// <i> Zero is the highest priority.
+
+#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO
+#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// <e> NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler
+//==========================================================
+#ifndef NRF_SDH_SOC_ENABLED
+#define NRF_SDH_SOC_ENABLED 1
+#endif
+// <h> SoC Observers - Observers and priority levels
+
+//==========================================================
+// <o> NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. 
+// <i> This setting configures the number of priority levels available for the SoC event handlers.
+// <i> The priority level of a handler determines the order in which it receives events, with respect to other handlers.
+
+#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS
+#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2
+#endif
+
+// <h> SoC Observers priorities - Invididual priorities
+
+//==========================================================
+// <o> BLE_ADV_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Advertising module.
+
+#ifndef BLE_ADV_SOC_OBSERVER_PRIO
+#define BLE_ADV_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> BLE_DFU_SOC_OBSERVER_PRIO  
+// <i> Priority with which BLE events are dispatched to the DFU Service.
+
+#ifndef BLE_DFU_SOC_OBSERVER_PRIO
+#define BLE_DFU_SOC_OBSERVER_PRIO 1
+#endif
+
+// <o> CLOCK_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Clock driver.
+
+#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO
+#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// <o> POWER_CONFIG_SOC_OBSERVER_PRIO  
+// <i> Priority with which SoC events are dispatched to the Power driver.
+
+#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO
+#define POWER_CONFIG_SOC_OBSERVER_PRIO 0
+#endif
+
+// </h> 
+//==========================================================
+
+// </h> 
+//==========================================================
+
+
+// </e>
+
+// </h> 
+//==========================================================
+
+// <<< end of configuration section >>>
+#endif //SDK_CONFIG_H
+
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emProject
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emProject
@@ -0,0 +1,173 @@
+<!DOCTYPE CrossStudio_Project_File>
+<solution Name="ble_connectivity_132v3_usb_hci_pca10059" target="8" version="2">
+  <project Name="ble_connectivity_132v3_usb_hci_pca10059">
+    <configuration
+      Name="Common"
+      arm_architecture="v7EM"
+      arm_core_type="Cortex-M4"
+      arm_endian="Little"
+      arm_fp_abi="Hard"
+      arm_fpu_type="FPv4-SP-D16"
+      arm_linker_heap_size="512"
+      arm_linker_process_stack_size="0"
+      arm_linker_stack_size="2048"
+      arm_linker_treat_warnings_as_errors="No"
+      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
+      arm_target_device_name="nRF52840_xxAA"
+      arm_target_interface_type="SWD"
+      c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/common;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/block_dev;../../../../../../components/libraries/bootloader/dfu;../../../../../../components/libraries/bsp;../../../../../../components/libraries/crc16;../../../../../../components/libraries/delay;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/memobj;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/strerror;../../../../../../components/libraries/timer;../../../../../../components/libraries/timer/experimental;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/usbd/class/nrf_dfu_trigger;../../../../../../components/libraries/util;../../../../../../components/serialization/common;../../../../../../components/serialization/common/struct_ser/ble;../../../../../../components/serialization/common/transport;../../../../../../components/serialization/common/transport/ser_phy;../../../../../../components/serialization/common/transport/ser_phy/config;../../../../../../components/serialization/connectivity;../../../../../../components/serialization/connectivity/codecs/ble/middleware;../../../../../../components/serialization/connectivity/codecs/ble/serializers;../../../../../../components/serialization/connectivity/codecs/common;../../../../../../components/serialization/connectivity/hal;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s132v3/headers;../../../../../../components/softdevice/s132v3/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
+      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10059;BSP_DEFINES_ONLY;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;HCI_TIMER2;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52840_XXAA;NRF_SD_BLE_API_VERSION=3;S132;SER_CONNECTIVITY;SER_PHY_HCI;SER_PHY_HCI_USB_CDC;SOFTDEVICE_PRESENT;"
+      debug_target_connection="J-Link"
+      gcc_entry_point="Reset_Handler"
+      macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
+      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52840.svd"
+      debug_additional_load_file="../../../../../../components/softdevice/s132v3/hex/s132_nrf52_3.0.0_softdevice.hex"
+      debug_start_from_entry_point_symbol="No"
+      gcc_debugging_level="Level 3"      linker_output_format="hex"
+      linker_printf_width_precision_supported="Yes"
+      linker_printf_fmt_level="long"
+      linker_scanf_fmt_level="long"
+      linker_section_placement_file="flash_placement.xml"
+      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x1f000;FLASH_SIZE=0xe1000;RAM_START=0x200199c0;RAM_SIZE=0x26640"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
+      project_directory=""
+      project_type="Executable" />
+      <folder Name="Segger Startup Files">
+        <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+      </folder>
+    <folder Name="nRF_Log">
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_uart.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_default_backends.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_frontend.c" />
+      <file file_name="../../../../../../components/libraries/log/src/nrf_log_str_formatter.c" />
+    </folder>
+    <folder Name="nRF_Libraries">
+      <file file_name="../../../../../../components/libraries/util/app_error.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_handler_gcc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_error_weak.c" />
+      <file file_name="../../../../../../components/libraries/scheduler/app_scheduler.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/app_timer2.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_core.c" />
+      <file file_name="../../../../../../components/libraries/usbd/class/nrf_dfu_trigger/app_usbd_nrf_dfu_trigger.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_serial_num.c" />
+      <file file_name="../../../../../../components/libraries/usbd/app_usbd_string_desc.c" />
+      <file file_name="../../../../../../components/libraries/util/app_util_platform.c" />
+      <file file_name="../../../../../../components/libraries/crc16/crc16.c" />
+      <file file_name="../../../../../../components/libraries/timer/experimental/drv_rtc.c" />
+      <file file_name="../../../../../../components/libraries/util/nrf_assert.c" />
+      <file file_name="../../../../../../components/libraries/atomic_fifo/nrf_atfifo.c" />
+      <file file_name="../../../../../../components/libraries/atomic/nrf_atomic.c" />
+      <file file_name="../../../../../../components/libraries/balloc/nrf_balloc.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf.c" />
+      <file file_name="../../../../../../external/fprintf/nrf_fprintf_format.c" />
+      <file file_name="../../../../../../components/libraries/memobj/nrf_memobj.c" />
+      <file file_name="../../../../../../components/libraries/queue/nrf_queue.c" />
+      <file file_name="../../../../../../components/libraries/ringbuf/nrf_ringbuf.c" />
+      <file file_name="../../../../../../components/libraries/experimental_section_vars/nrf_section_iter.c" />
+      <file file_name="../../../../../../components/libraries/sortlist/nrf_sortlist.c" />
+      <file file_name="../../../../../../components/libraries/strerror/nrf_strerror.c" />
+    </folder>
+    <folder Name="None">
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52840.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
+      <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52840.c" />
+    </folder>
+    <folder Name="Board Definition">
+      <file file_name="../../../../../../components/boards/boards.c" />
+      <file file_name="../../../../../../components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c" />
+    </folder>
+    <folder Name="nRF_Serialization">
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/ble_dtm_init.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_event_enc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatt_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gattc_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gattc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_gatts_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_gatts_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_conn.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/ble_l2cap_evt_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_l2cap_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/ble_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/ble_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/common/cond_field_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_gap_sec_keys.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_l2cap_sdu_pool.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/conn_ble_user_mem.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gattc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_gatts.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/middleware/conn_mw_ble_l2cap.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/common/conn_mw_nrf_soc.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/hal/dtm_uart.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/codecs/ble/serializers/nrf_soc_conn.c" />
+      <file file_name="../../../../../../components/serialization/common/struct_ser/ble/nrf_soc_struct_serialization.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_dtm_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_error_handling.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_event_encoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_handlers.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_pkt_decoder.c" />
+      <file file_name="../../../../../../components/serialization/connectivity/ser_conn_reset_cmd_decoder.c" />
+      <file file_name="../../../../../../components/serialization/common/ser_dbg_sd_str.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_hal_transport.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci.c" />
+      <file file_name="../../../../../../components/serialization/common/transport/ser_phy/ser_phy_hci_slip_cdc.c" />
+    </folder>
+    <folder Name="nRF_Drivers">
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_clock.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_power.c" />
+      <file file_name="../../../../../../integration/nrfx/legacy/nrf_drv_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_power.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_systick.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_usbd.c" />
+    </folder>
+    <folder Name="Application">
+      <file file_name="../../../main.c" />
+      <file file_name="../config/sdk_config.h" />
+    </folder>
+    <folder Name="nRF_Segger_RTT">
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_Syscalls_SES.c" />
+      <file file_name="../../../../../../external/segger_rtt/SEGGER_RTT_printf.c" />
+    </folder>
+    <folder Name="nRF_BLE">
+      <file file_name="../../../../../../components/ble/common/ble_advdata.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm.c" />
+      <file file_name="../../../../../../components/ble/ble_dtm/ble_dtm_hw_nrf52.c" />
+      <file file_name="../../../../../../components/ble/common/ble_srv_common.c" />
+    </folder>
+    <folder Name="UTF8/UTF16 converter">
+      <file file_name="../../../../../../external/utf_converter/utf.c" />
+    </folder>
+    <folder Name="nRF_SoftDevice">
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_ble.c" />
+      <file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
+    </folder>
+  </project>
+  <configuration Name="Release"
+    c_preprocessor_definitions="NDEBUG"
+    gcc_optimization_level="Optimize For Size" />
+  <configuration Name="Debug"
+    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
+    gcc_optimization_level="None"/>
+</solution>
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emSession nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emSession
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/ble_connectivity_132v3_usb_hci_pca10059.emSession
@@ -0,0 +1,7 @@
+<!DOCTYPE CrossStudio_Session_File>
+<session>
+  <ARMCrossStudioWindow activeProject="ble_connectivity_132v3_usb_hci_pca10059" buildConfiguration="Release"/>
+  <Files>
+    <SessionOpenFile codecName="Default" debugPath="../../../main.c" left="0" name="unnamed" path="../../../main.c" selected="1" top="0" useBinaryEdit="0" useTextEdit="1" x="0" y="0"/>
+  </Files>
+</session>
\ No newline at end of file
diff --git nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/flash_placement.xml
new file mode 100644
--- /dev/null
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s132v3_usb_hci/ses/flash_placement.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE Linker_Placement_File>
+<Root name="Flash Section Placement">
+  <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
+    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
+    <ProgramSection alignment="4" load="Yes" name=".init" />
+    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".text" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
+    <ProgramSection alignment="4" load="Yes" name=".dtors" />
+    <ProgramSection alignment="4" load="Yes" name=".ctors" />
+    <ProgramSection alignment="4" load="Yes" name=".rodata" />
+    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
+    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
+    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
+    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
+  </MemorySegment>
+  <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
+    <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
+    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
+    <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
+    <ProgramSection alignment="4" load="No" name=".fast_run" />
+    <ProgramSection alignment="4" load="No" name=".data_run" />
+    <ProgramSection alignment="4" load="No" name=".tdata_run" />
+    <ProgramSection alignment="4" load="No" name=".bss" />
+    <ProgramSection alignment="4" load="No" name=".tbss" />
+    <ProgramSection alignment="4" load="No" name=".non_init" />
+    <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
+    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
+    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
+  </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
+</Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/Makefile nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/Makefile
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/Makefile
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/Makefile
@@ -97,6 +97,7 @@ SRC_FILES += \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_power.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
+  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_qspi.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_systick.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
   $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/armgcc/ble_connectivity_gcc_nrf52.ld
@@ -7,10 +7,18 @@ MEMORY
 {
   FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xda000
   RAM (rwx) :  ORIGIN = 0x2001ad58, LENGTH = 0x252a8
+  connectivity_version_info (r) : ORIGIN = 0x50000, LENGTH = 0x18
 }
 
 SECTIONS
 {
+  . = ALIGN(4);
+  .connectivity_version_info :
+  {
+    PROVIDE(__start_connectivity_version_info = .);
+    KEEP(*(SORT(.connectivity_version_info*)))
+    PROVIDE(__stop_connectivity_version_info = .);
+  } > connectivity_version_info
 }
 
 SECTIONS
@@ -69,12 +77,6 @@ SECTIONS
     KEEP(*(.nrf_balloc))
     PROVIDE(__stop_nrf_balloc = .);
   } > FLASH
-  .sdh_req_observers :
-  {
-    PROVIDE(__start_sdh_req_observers = .);
-    KEEP(*(SORT(.sdh_req_observers*)))
-    PROVIDE(__stop_sdh_req_observers = .);
-  } > FLASH
   .sdh_state_observers :
   {
     PROVIDE(__start_sdh_state_observers = .);
@@ -87,6 +89,12 @@ SECTIONS
     KEEP(*(SORT(.sdh_stack_observers*)))
     PROVIDE(__stop_sdh_stack_observers = .);
   } > FLASH
+  .sdh_req_observers :
+  {
+    PROVIDE(__start_sdh_req_observers = .);
+    KEEP(*(SORT(.sdh_req_observers*)))
+    PROVIDE(__stop_sdh_req_observers = .);
+  } > FLASH
   .log_backends :
   {
     PROVIDE(__start_log_backends = .);
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/config/sdk_config.h nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/config/sdk_config.h
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/config/sdk_config.h
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/config/sdk_config.h
@@ -133,7 +133,7 @@
 // <i> gaps. Tailor this value to adhere to this limitation.
 
 #ifndef NRF_DFU_TRIGGER_USB_INTERFACE_NUM
-#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 2
+#define NRF_DFU_TRIGGER_USB_INTERFACE_NUM 0
 #endif
 
 // </h> 
@@ -376,6 +376,134 @@
 
 // </e>
 
+// <e> NRFX_QSPI_ENABLED - nrfx_qspi - QSPI peripheral driver
+//==========================================================
+#ifndef NRFX_QSPI_ENABLED
+#define NRFX_QSPI_ENABLED 1
+#endif
+// <o> NRFX_QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef NRFX_QSPI_CONFIG_SCK_DELAY
+#define NRFX_QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> NRFX_QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef NRFX_QSPI_CONFIG_XIP_OFFSET
+#define NRFX_QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef NRFX_QSPI_CONFIG_READOC
+#define NRFX_QSPI_CONFIG_READOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef NRFX_QSPI_CONFIG_WRITEOC
+#define NRFX_QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef NRFX_QSPI_CONFIG_ADDRMODE
+#define NRFX_QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef NRFX_QSPI_CONFIG_MODE
+#define NRFX_QSPI_CONFIG_MODE 0
+#endif
+
+// <o> NRFX_QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef NRFX_QSPI_CONFIG_FREQUENCY
+#define NRFX_QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> NRFX_QSPI_PIN_SCK - SCK pin value.
+#ifndef NRFX_QSPI_PIN_SCK
+#define NRFX_QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_CSN - CSN pin value.
+#ifndef NRFX_QSPI_PIN_CSN
+#define NRFX_QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO0 - IO0 pin value.
+#ifndef NRFX_QSPI_PIN_IO0
+#define NRFX_QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO1 - IO1 pin value.
+#ifndef NRFX_QSPI_PIN_IO1
+#define NRFX_QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO2 - IO2 pin value.
+#ifndef NRFX_QSPI_PIN_IO2
+#define NRFX_QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> NRFX_QSPI_PIN_IO3 - IO3 pin value.
+#ifndef NRFX_QSPI_PIN_IO3
+#define NRFX_QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> NRFX_QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef NRFX_QSPI_CONFIG_IRQ_PRIORITY
+#define NRFX_QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <q> NRFX_SYSTICK_ENABLED  - nrfx_systick - ARM(R) SysTick driver
  
 
@@ -769,6 +897,136 @@
 
 // </e>
 
+// <e> QSPI_ENABLED - nrf_drv_qspi - QSPI peripheral driver - legacy layer
+//==========================================================
+#ifndef QSPI_ENABLED
+#define QSPI_ENABLED 1
+#endif
+// <o> QSPI_CONFIG_SCK_DELAY - tSHSL, tWHSL and tSHWL in number of 16 MHz periods (62.5 ns).  <0-255> 
+
+
+#ifndef QSPI_CONFIG_SCK_DELAY
+#define QSPI_CONFIG_SCK_DELAY 1
+#endif
+
+// <o> QSPI_CONFIG_XIP_OFFSET - Address offset in the external memory for Execute in Place operation. 
+#ifndef QSPI_CONFIG_XIP_OFFSET
+#define QSPI_CONFIG_XIP_OFFSET 0
+#endif
+
+// <o> QSPI_CONFIG_READOC  - Number of data lines and opcode used for reading.
+ 
+// <0=> FastRead 
+// <1=> Read2O 
+// <2=> Read2IO 
+// <3=> Read4O 
+// <4=> Read4IO 
+
+#ifndef QSPI_CONFIG_READOC
+#define QSPI_CONFIG_READOC 0
+#endif
+
+// <o> QSPI_CONFIG_WRITEOC  - Number of data lines and opcode used for writing.
+ 
+// <0=> PP 
+// <1=> PP2O 
+// <2=> PP4O 
+// <3=> PP4IO 
+
+#ifndef QSPI_CONFIG_WRITEOC
+#define QSPI_CONFIG_WRITEOC 0
+#endif
+
+// <o> QSPI_CONFIG_ADDRMODE  - Addressing mode.
+ 
+// <0=> 24bit 
+// <1=> 32bit 
+
+#ifndef QSPI_CONFIG_ADDRMODE
+#define QSPI_CONFIG_ADDRMODE 0
+#endif
+
+// <o> QSPI_CONFIG_MODE  - SPI mode.
+ 
+// <0=> Mode 0 
+// <1=> Mode 1 
+
+#ifndef QSPI_CONFIG_MODE
+#define QSPI_CONFIG_MODE 0
+#endif
+
+// <o> QSPI_CONFIG_FREQUENCY  - Frequency divider.
+ 
+// <0=> 32MHz/1 
+// <1=> 32MHz/2 
+// <2=> 32MHz/3 
+// <3=> 32MHz/4 
+// <4=> 32MHz/5 
+// <5=> 32MHz/6 
+// <6=> 32MHz/7 
+// <7=> 32MHz/8 
+// <8=> 32MHz/9 
+// <9=> 32MHz/10 
+// <10=> 32MHz/11 
+// <11=> 32MHz/12 
+// <12=> 32MHz/13 
+// <13=> 32MHz/14 
+// <14=> 32MHz/15 
+// <15=> 32MHz/16 
+
+#ifndef QSPI_CONFIG_FREQUENCY
+#define QSPI_CONFIG_FREQUENCY 15
+#endif
+
+// <s> QSPI_PIN_SCK - SCK pin value.
+#ifndef QSPI_PIN_SCK
+#define QSPI_PIN_SCK NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_CSN - CSN pin value.
+#ifndef QSPI_PIN_CSN
+#define QSPI_PIN_CSN NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO0 - IO0 pin value.
+#ifndef QSPI_PIN_IO0
+#define QSPI_PIN_IO0 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO1 - IO1 pin value.
+#ifndef QSPI_PIN_IO1
+#define QSPI_PIN_IO1 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO2 - IO2 pin value.
+#ifndef QSPI_PIN_IO2
+#define QSPI_PIN_IO2 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <s> QSPI_PIN_IO3 - IO3 pin value.
+#ifndef QSPI_PIN_IO3
+#define QSPI_PIN_IO3 NRF_QSPI_PIN_NOT_CONNECTED
+#endif
+
+// <o> QSPI_CONFIG_IRQ_PRIORITY  - Interrupt priority
+ 
+
+// <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
+// <0=> 0 (highest) 
+// <1=> 1 
+// <2=> 2 
+// <3=> 3 
+// <4=> 4 
+// <5=> 5 
+// <6=> 6 
+// <7=> 7 
+
+#ifndef QSPI_CONFIG_IRQ_PRIORITY
+#define QSPI_CONFIG_IRQ_PRIORITY 6
+#endif
+
+// </e>
+
 // <q> SYSTICK_ENABLED  - nrf_drv_systick - ARM(R) SysTick driver - legacy layer
  
 
@@ -1072,7 +1330,7 @@
 // <i> Note: This value is not editable in Configuration Wizard.
 // <i> Selected Product ID
 #ifndef APP_USBD_PID
-#define APP_USBD_PID 0x521B
+#define APP_USBD_PID 0xC00A
 #endif
 
 // <o> APP_USBD_DEVICE_VER_MAJOR - Device version, major part.  <0-99> 
@@ -4510,12 +4768,12 @@
 
 // <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
 #ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
-#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 0
+#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
 #ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
-#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0
+#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 8
 #endif
 
 // <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
@@ -4816,132 +5074,6 @@
 #define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
 #endif
 
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
-// <o> NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO  
-// <i> Priority with which BLE events are dispatched to the NFC pairing library.
-
-#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO
-#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1
-#endif
-
 // <o> NRF_BLE_BMS_BLE_OBSERVER_PRIO  
 // <i> Priority with which BLE events are dispatched to the Bond Management Service.
 
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10059.emProject nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10059.emProject
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10059.emProject
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/ble_connectivity_s140_usb_hci_pca10059.emProject
@@ -29,7 +29,7 @@
       linker_scanf_fmt_level="long"
       linker_section_placement_file="flash_placement.xml"
       linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x26000;FLASH_SIZE=0xda000;RAM_START=0x2001ad58;RAM_SIZE=0x252a8"
-      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000"
+      linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;connectivity_version_info RX 0x50000 0x18"
       project_directory=""
       project_type="Executable" />
       <folder Name="Segger Startup Files">
@@ -134,6 +134,7 @@
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_power.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
+      <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_qspi.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_systick.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
       <file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
diff --git nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/flash_placement.xml nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/flash_placement.xml
--- nRF5_SDK_15.3.0_59ac345/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/flash_placement.xml
+++ nRF5_SDK_15.3.0_66869dd/examples/connectivity/ble_connectivity/pca10059/ser_s140_usb_hci/ses/flash_placement.xml
@@ -11,9 +11,9 @@
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
-    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
     <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
     <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
@@ -43,4 +43,7 @@
     <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
     <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
   </MemorySegment>
+  <MemorySegment name="connectivity_version_info" start="0x50000" size="0x18">
+    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".connectivity_version_info" address_symbol="__start_connectivity_version_info" end_symbol="__stop_connectivity_version_info" start = "0x50000" size="0x18" />
+  </MemorySegment>
 </Root>
diff --git nRF5_SDK_15.3.0_59ac345/examples/dfu/dfu_public_key.c nRF5_SDK_15.3.0_66869dd/examples/dfu/dfu_public_key.c
--- nRF5_SDK_15.3.0_59ac345/examples/dfu/dfu_public_key.c
+++ nRF5_SDK_15.3.0_66869dd/examples/dfu/dfu_public_key.c
@@ -1,30 +1,51 @@
+/**
+ * Copyright (c) 2010 - 2019, Nordic Semiconductor ASA
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form, except as embedded into a Nordic
+ *    Semiconductor ASA integrated circuit in a product or a software update for
+ *    such product, must reproduce the above copyright notice, this list of
+ *    conditions and the following disclaimer in the documentation and/or other
+ *    materials provided with the distribution.
+ *
+ * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * 4. This software, with or without modification, must only be used with a
+ *    Nordic Semiconductor ASA integrated circuit.
+ *
+ * 5. Any software provided in binary form under this license must not be reverse
+ *    engineered, decompiled, modified and/or disassembled.
+ *
+ * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* This file was automatically generated by nrfutil on 2016-11-23 (YY-MM-DD) at 13:02:58 */
 
-/* This file was automatically generated by nrfutil on 2019-02-14 (YY-MM-DD) at 14:06:19 */
-
-#include "sdk_config.h"
 #include "stdint.h"
 #include "compiler_abstraction.h"
 
-#if NRF_CRYPTO_BACKEND_OBERON_ENABLED
-/* Oberon backend is changing endianness thus public key must be kept in RAM. */
-#define _PK_CONST
-#else
-#define _PK_CONST const
-#endif
-
-
-/* This file was generated with a throwaway private key, that is only inteded for a debug version of the DFU project.
-  Please see https://github.com/NordicSemiconductor/pc-nrfutil/blob/master/README.md to generate a valid public key. */
-
-#ifdef NRF_DFU_DEBUG_VERSION 
-
 /** @brief Public key used to verify DFU images */
-__ALIGN(4) _PK_CONST uint8_t pk[64] =
+__ALIGN(4) const uint8_t pk[64] =
 {
-    0x0e, 0xdf, 0x9f, 0xc8, 0xe6, 0x7b, 0x4e, 0x1a, 0xce, 0xe8, 0x6f, 0x86, 0xe2, 0x91, 0xc2, 0x98, 0x42, 0xc0, 0x23, 0x72, 0xfc, 0x76, 0xe6, 0xd2, 0xf7, 0x74, 0xfc, 0x09, 0x9f, 0xbf, 0x88, 0x5a, 
-    0x79, 0x78, 0xd4, 0x2f, 0xcb, 0x27, 0x84, 0xb1, 0xd1, 0x82, 0x70, 0xf9, 0xe0, 0x14, 0xf9, 0x49, 0xa4, 0x47, 0xe9, 0x33, 0xaf, 0x7d, 0x07, 0x1d, 0xd0, 0x93, 0x4b, 0xd2, 0x93, 0x8b, 0xe6, 0x20
+    0xd4, 0x10, 0xff, 0xaa, 0x50, 0xff, 0x31, 0xc4, 0xb2, 0x6f, 0xca, 0x1c, 0x44, 0x68, 0x72, 0xf9, 0xb1, 0x40, 0xea, 0x3c, 0x22, 0xd1, 0x75, 0xe6, 0x29, 0xa5, 0xd3, 0xe5, 0x34, 0x87, 0x59, 0xd0,
+    0x44, 0x08, 0xa6, 0x27, 0xb9, 0x9d, 0x34, 0x44, 0x44, 0xff, 0xa3, 0x4b, 0x1c, 0xb5, 0xc7, 0xb3, 0x81, 0x2a, 0x80, 0xfe, 0x10, 0xd1, 0xbf, 0x6a, 0xa1, 0xdc, 0xb9, 0x4f, 0xbc, 0xc3, 0x22, 0x17
 };
 
-#else
-#error "Debug public key not valid for production. Please see https://github.com/NordicSemiconductor/pc-nrfutil/blob/master/README.md to generate it"
-#endif
diff --git nRF5_SDK_15.3.0_59ac345/examples/readme.txt nRF5_SDK_15.3.0_66869dd/examples/readme.txt
--- nRF5_SDK_15.3.0_59ac345/examples/readme.txt
+++ nRF5_SDK_15.3.0_66869dd/examples/readme.txt
@@ -1,942 +1,14 @@
 Matrix shows which board is supported by given example
 
-Example                                                                                              | pca10028 | pca10040 | pca10040e | pca10056 |
----------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\raw\first                                                                     |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\raw\second                                                                    |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\secure\first                                                                  |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\secure\second                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\components\libraries\csense_drv\test               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\components\libraries\usbd\test\usb_hosted\example  |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\config                                             |          |          |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_advanced_burst                                                                               |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_async_transmitter                                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_background_scanning                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_broadcast\rx                                                                                 |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_broadcast\tx                                                                                 |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_continuous_scanning_controller                                                               |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_cw_mode                                                                                      |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_debug                                                                                        |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_fs\client                                                                                    |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_hd_search_and_bs                                                                             |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_io_demo\ant_io_rx                                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_io_demo\ant_io_tx                                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_message_types\master                                                                         |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels\rx                                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels\tx                                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels_encrypted\rx                                                                  |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels_encrypted\tx                                                                  |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bpwr\bpwr_rx                                                                        |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bpwr\bpwr_tx                                                                        |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bsc\bsc_rx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bsc\bsc_tx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_hrm\hrm_rx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_hrm\hrm_tx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_sdm\sdm_rx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_sdm\sdm_tx                                                                          |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_relay_demo                                                                                   |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_scan_and_forward                                                                             |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_search_sharing                                                                               |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_search_uplink                                                                                |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_time_synchronization\rx                                                                      |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_time_synchronization\tx                                                                      |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_frequency_agility\ant_frequency_agility_rx                                      |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_frequency_agility\ant_frequency_agility_tx                                      |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_shared_channel\m2m                                                              |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_shared_channel\slave                                                            |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_blinky_c                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_gatts                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_hrs_c                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_ias                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_ipsp_initiator                                                                   |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_multilink_central                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_rscs_c                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_uart_c                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_app_hrs_nfc_c                                                           |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_app_ots_c                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_nfc_pairing_reference_c                                                 |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_att_mtu_throughput                                   |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_interactive                                          |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_multirole_lesc                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_alert_notification                                                            |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ancs_c                                                                        |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_beacon                                                                        |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_blinky                                                                        |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_bms                                                                           |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_bps                                                                           |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_buttonless_dfu                                                                |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_cscs                                                                          |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_cts_c                                                                         |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_eddystone                                                                     |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_gatts_c                                                                       |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_gls                                                                           |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hids_keyboard                                                                 |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hids_mouse                                                                    |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hrs                                                                           |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hrs_freertos                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hts                                                                           |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ias_c                                                                         |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ipsp_acceptor                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_proximity                                                                     |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_pwr_profiling                                                                 |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_rscs                                                                          |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_template                                                                      |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_uart                                                                          |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_cgms                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_cli                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_hids_keyboard_pairing_nfc                                        |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_hrs_nfc_pairing                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_lls                                                              |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_lns                                                              |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_multiperipheral                                                  |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_ots                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_queued_writes                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_nfc_pairing_reference                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\bluetoothds_template                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-connectivity\ble_connectivity                                                                        |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-connectivity\experimental_ant                                                                        |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\ifx_optiga_custom_example                                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\aes                                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\chacha_poly                                                                         |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\ecc                                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hash                                                                                |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hkdf                                                                                |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hmac                                                                                |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\rnd                                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\rsa                                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310_bl                                                                                  |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_all_cli                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_cbc_mac                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_cbc_with_padding                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_ccm                                                                        |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_ctr                                                                        |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\chacha_poly                                                                        |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\cli                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\ecdh                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\ecdsa                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\eddsa                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hash                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hkdf                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hmac                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\rng                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\test_app                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-dfu\open_bootloader                                                                                  |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-dfu\secure_bootloader                                                                                |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-dtm\direct_test_mode                                                                                 |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-dtm\dtm_serialization                                                                                |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\bootloader                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\client                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\client_observe                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server_block                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server_observe                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\client                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\client_observe                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server_block                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server_observe                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dns\ipv6                                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dtls\coap_client                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dtls\coap_server                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\icmp                                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\lwm2m\lwm2m_client                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\misc\iot_timer                                                                                   |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\mqtt\lwip\publisher                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\mqtt\lwip\subscriber                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\sntp                                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\socket\tcp\client                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tcp\client                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tcp\server                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tftp\background_dfu                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tftp\client                                                                                      |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\ipv6\client                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\ipv6\server                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\lwip\client                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\lwip\server                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-multiprotocol\ble_ant_app_hrm                                                                        |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-multiprotocol\ble_app_gzll                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\adafruit_tag_reader                                                                              |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\nfc_uart\poller                                                                                  |          |    *     |           |          |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\nfc_uart\tag                                                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_launch_app                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_text                                                                                      |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_url                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\wake_on_nfc                                                                                      |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\writable_ndef_msg                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky                                                                                    |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_freertos                                                                           |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_rtc_freertos                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_systick                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\bsp                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\cli                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\csense                                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\csense_drv                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\experimental_cli_libuarte                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\experimental_libuarte                                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\fatfs                                                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flash_fds                                                                                 |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flash_fstorage                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flashwrite                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\fpu_fft                                                                                   |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\gfx                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\gpiote                                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\i2s                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\led_softblink                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\low_power_pwm                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\lpcomp                                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\nrfx_spim                                                                                 |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pin_change_int                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\ppi                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\preflash                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwm_driver                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwm_library                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwr_mgmt                                                                                  |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qdec                                                                                      |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qspi                                                                                      |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qspi_bootloader                                                                           |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio\receiver                                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio\transmitter                                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio_test                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\ram_retention                                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\rng                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\rtc                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\saadc                                                                                     |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\serial                                                                                    |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\serial_uartes                                                                             |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\simple_timer                                                                              |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spi                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spi_master_using_nrf_spi_mngr                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spis                                                                                      |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\temperature                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\template_project                                                                          |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\timer                                                                                     |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_master_using_nrf_twi_mngr                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_master_with_twis_slave                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_scanner                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_sensor                                                                                |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\uart                                                                                      |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\uicr_config                                                                               |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd                                                                                      |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_audio                                                                                |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_ble_uart                                                                             |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_ble_uart_freertos                                                                    |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_cdc_acm                                                                              |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_hid_composite                                                                        |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_hid_generic                                                                          |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_msc                                                                                  |          |          |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\wdt                                                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_low_power_prx                                                                     |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_low_power_ptx                                                                     |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_prx                                                                               |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_ptx                                                                               |          |    *     |     *     |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzll_ack_payload\device                                                          |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzll_ack_payload\host                                                            |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_desktop_emulator                                                             |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_dynamic_pairing\device                                                       |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_dynamic_pairing\host                                                         |          |    *     |           |    *     |
----------------------------------------------------------------------------------------------------------------------------------------------------
+Example                        | pca10028 | pca10040 | pca10040e | pca10056 |
+-----------------------------------------------------------------------------
+connectivity\ble_connectivity  |          |    *     |     *     |    *     |
+-----------------------------------------------------------------------------
 
 
 Matrix shows which SoftDevice is supported by given example
 
-Example                                                                                              | s112 | s130 | s132 | s140 | s212 | None |
-------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\raw\first                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\raw\second                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\secure\first                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-802_15_4\wireless_uart\secure\second                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\components\libraries\csense_drv\test               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\components\libraries\usbd\test\usb_hosted\example  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-C:\bamboo\xml-data\build-dir\HP-CRWH6-CR\sdk\nrf5\config                                             |  *   |      |      |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_advanced_burst                                                                               |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_async_transmitter                                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_background_scanning                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_broadcast\rx                                                                                 |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_broadcast\tx                                                                                 |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_continuous_scanning_controller                                                               |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_cw_mode                                                                                      |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_debug                                                                                        |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_fs\client                                                                                    |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_hd_search_and_bs                                                                             |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_io_demo\ant_io_rx                                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_io_demo\ant_io_tx                                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_message_types\master                                                                         |      |      |      |      |  *   |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels\rx                                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels\tx                                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels_encrypted\rx                                                                  |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_multi_channels_encrypted\tx                                                                  |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bpwr\bpwr_rx                                                                        |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bpwr\bpwr_tx                                                                        |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bsc\bsc_rx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_bsc\bsc_tx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_hrm\hrm_rx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_hrm\hrm_tx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_sdm\sdm_rx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_plus\ant_sdm\sdm_tx                                                                          |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_relay_demo                                                                                   |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_scan_and_forward                                                                             |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_search_sharing                                                                               |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_search_uplink                                                                                |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_time_synchronization\rx                                                                      |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\ant_time_synchronization\tx                                                                      |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_frequency_agility\ant_frequency_agility_rx                                      |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_frequency_agility\ant_frequency_agility_tx                                      |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_shared_channel\m2m                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ant\experimental\ant_shared_channel\slave                                                            |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_blinky_c                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_gatts                                                                            |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_hrs_c                                                                            |      |      |  *   |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_ias                                                                              |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_ipsp_initiator                                                                   |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_multilink_central                                                                |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_rscs_c                                                                           |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\ble_app_uart_c                                                                           |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_app_hrs_nfc_c                                                           |      |      |  *   |      |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_app_ots_c                                                               |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central\experimental\ble_nfc_pairing_reference_c                                                 |      |      |  *   |      |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_att_mtu_throughput                                   |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay                                       |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_interactive                                          |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_central_and_peripheral\experimental\ble_app_multirole_lesc                                       |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_alert_notification                                                            |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ancs_c                                                                        |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_beacon                                                                        |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_blinky                                                                        |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_bms                                                                           |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_bps                                                                           |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_buttonless_dfu                                                                |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_cscs                                                                          |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_cts_c                                                                         |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_eddystone                                                                     |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_gatts_c                                                                       |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_gls                                                                           |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hids_keyboard                                                                 |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hids_mouse                                                                    |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hrs                                                                           |  *   |      |  *   |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hrs_freertos                                                                  |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_hts                                                                           |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ias_c                                                                         |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_ipsp_acceptor                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_proximity                                                                     |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_pwr_profiling                                                                 |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_rscs                                                                          |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_template                                                                      |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\ble_app_uart                                                                          |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_cgms                                                             |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_cli                                                              |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_hids_keyboard_pairing_nfc                                        |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_hrs_nfc_pairing                                                  |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_lls                                                              |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_lns                                                              |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_multiperipheral                                                  |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_ots                                                              |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_app_queued_writes                                                    |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\ble_nfc_pairing_reference                                                |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-ble_peripheral\experimental\bluetoothds_template                                                     |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-connectivity\ble_connectivity                                                                        |  *   |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-connectivity\experimental_ant                                                                        |      |      |      |      |  *   |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\ifx_optiga_custom_example                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\aes                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\chacha_poly                                                                         |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\ecc                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hash                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hkdf                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\hmac                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\rnd                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310\rsa                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_cc310_bl                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_all_cli                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_cbc_mac                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_cbc_with_padding                                                           |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_ccm                                                                        |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\aes\aes_ctr                                                                        |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\chacha_poly                                                                        |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\cli                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\ecdh                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\ecdsa                                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\eddsa                                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hash                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hkdf                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\hmac                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\rng                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-crypto\nrf_crypto\test_app                                                                           |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-dfu\open_bootloader                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-dfu\secure_bootloader                                                                                |  *   |      |  *   |  *   |  *   |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-dtm\direct_test_mode                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-dtm\dtm_serialization                                                                                |      |      |  *   |      |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\bootloader                                                                                       |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\client                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\client_observe                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server_block                                                                           |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\ipv6\server_observe                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\client                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\client_observe                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server_block                                                                           |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\coap\lwip\server_observe                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dns\ipv6                                                                                         |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dtls\coap_client                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\dtls\coap_server                                                                                 |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\icmp                                                                                             |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\lwm2m\lwm2m_client                                                                               |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\misc\iot_timer                                                                                   |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\mqtt\lwip\publisher                                                                              |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\mqtt\lwip\subscriber                                                                             |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\sntp                                                                                             |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\socket\tcp\client                                                                                |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tcp\client                                                                                       |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tcp\server                                                                                       |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tftp\background_dfu                                                                              |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\tftp\client                                                                                      |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\ipv6\client                                                                                  |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\ipv6\server                                                                                  |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\lwip\client                                                                                  |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-iot\udp\lwip\server                                                                                  |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-multiprotocol\ble_ant_app_hrm                                                                        |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-multiprotocol\ble_app_gzll                                                                           |      |      |  *   |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\adafruit_tag_reader                                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\nfc_uart\poller                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\nfc_uart\tag                                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_launch_app                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_text                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\record_url                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\wake_on_nfc                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-nfc\writable_ndef_msg                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky                                                                                    |      |      |  *   |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_freertos                                                                           |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_rtc_freertos                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\blinky_systick                                                                            |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\bsp                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\cli                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\csense                                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\csense_drv                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\experimental_cli_libuarte                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\experimental_libuarte                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\fatfs                                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flash_fds                                                                                 |      |      |  *   |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flash_fstorage                                                                            |      |      |  *   |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\flashwrite                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\fpu_fft                                                                                   |      |      |  *   |  *   |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\gfx                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\gpiote                                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\i2s                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\led_softblink                                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\low_power_pwm                                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\lpcomp                                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\nrfx_spim                                                                                 |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pin_change_int                                                                            |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\ppi                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\preflash                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwm_driver                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwm_library                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\pwr_mgmt                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qdec                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qspi                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\qspi_bootloader                                                                           |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio\receiver                                                                            |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio\transmitter                                                                         |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\radio_test                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\ram_retention                                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\rng                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\rtc                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\saadc                                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\serial                                                                                    |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\serial_uartes                                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\simple_timer                                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spi                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spi_master_using_nrf_spi_mngr                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\spis                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\temperature                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\template_project                                                                          |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\timer                                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_master_using_nrf_twi_mngr                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_master_with_twis_slave                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_scanner                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\twi_sensor                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\uart                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\uicr_config                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd                                                                                      |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_audio                                                                                |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_ble_uart                                                                             |      |      |      |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_ble_uart_freertos                                                                    |      |      |      |  *   |      |      |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_cdc_acm                                                                              |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_hid_composite                                                                        |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_hid_generic                                                                          |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\usbd_msc                                                                                  |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-peripheral\wdt                                                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_low_power_prx                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_low_power_ptx                                                                     |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_prx                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\esb_ptx                                                                               |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzll_ack_payload\device                                                          |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzll_ack_payload\host                                                            |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_desktop_emulator                                                             |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_dynamic_pairing\device                                                       |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
-proprietary_rf\gzll\gzp_dynamic_pairing\host                                                         |      |      |      |      |      |  *   |
-------------------------------------------------------------------------------------------------------------------------------------------------
+Example                        | s112 | s130 | s132 | s140 | s212 | None |
+--------------------------------------------------------------------------
+connectivity\ble_connectivity  |  *   |      |  *   |  *   |      |  *   |
+--------------------------------------------------------------------------
diff --git nRF5_SDK_15.3.0_59ac345/integration/nrfx/legacy/nrf_drv_power.c nRF5_SDK_15.3.0_66869dd/integration/nrfx/legacy/nrf_drv_power.c
--- nRF5_SDK_15.3.0_59ac345/integration/nrfx/legacy/nrf_drv_power.c
+++ nRF5_SDK_15.3.0_66869dd/integration/nrfx/legacy/nrf_drv_power.c
@@ -47,6 +47,14 @@
 #include "nrf_sdh_soc.h"
 #endif
 
+#if defined(SOFTDEVICE_PRESENT)
+#if defined(NRF_SD_BLE_API_VERSION) && NRF_SD_BLE_API_VERSION < 6
+#define POWER_USB_SD_API 0
+#else
+#define POWER_USB_SD_API 1
+#endif
+#endif
+
 #include <app_util.h>
 
 // The structure with default configuration data.
@@ -220,7 +228,7 @@ void nrf_drv_power_sleepevt_uninit(void)
 
 #if NRF_POWER_HAS_USBREG
 
-#ifdef SOFTDEVICE_PRESENT
+#if POWER_USB_SD_API
 static ret_code_t nrf_drv_power_sd_usbevt_enable(bool enable)
 {
     ret_code_t err_code;
@@ -248,7 +256,7 @@ ret_code_t nrf_drv_power_usbevt_init(nrf_drv_power_usbevt_config_t const * p_con
 {
     nrf_drv_power_usbevt_uninit();
     nrfx_power_usbevt_init(p_config);
-#ifdef SOFTDEVICE_PRESENT
+#if POWER_USB_SD_API
     if (nrf_sdh_is_enabled())
     {
         ret_code_t err_code = nrf_drv_power_sd_usbevt_enable(true);
@@ -283,7 +291,7 @@ ret_code_t nrf_drv_power_usbevt_init(nrf_drv_power_usbevt_config_t const * p_con
 
 void nrf_drv_power_usbevt_uninit(void)
 {
-#ifdef SOFTDEVICE_PRESENT
+#if POWER_USB_SD_API
     CRITICAL_REGION_ENTER();
     if (nrf_sdh_is_enabled())
     {
@@ -296,7 +304,7 @@ void nrf_drv_power_usbevt_uninit(void)
     {
         nrfx_power_usbevt_disable();
     }
-#ifdef SOFTDEVICE_PRESENT
+#if POWER_USB_SD_API
     CRITICAL_REGION_EXIT();
 #endif
     nrfx_power_usbevt_uninit();
@@ -326,7 +334,7 @@ static void nrf_drv_power_sdh_soc_evt_handler(uint32_t evt_id, void * p_context)
         pofwarn_handler();
     }
 
-#if NRF_POWER_HAS_USBREG
+#if NRF_POWER_HAS_USBREG && POWER_USB_SD_API
     nrfx_power_usb_event_handler_t usbevt_handler = nrfx_power_usb_handler_get();
     if (usbevt_handler != NULL)
     {
@@ -364,7 +372,7 @@ static void nrf_drv_power_on_sd_enable(void)
     }
     CRITICAL_REGION_EXIT();
 
-#if NRF_POWER_HAS_USBREG
+#if NRF_POWER_HAS_USBREG && POWER_USB_SD_API
     if (nrfx_power_usb_handler_get() != NULL)
     {
         ret_code_t err_code = nrf_drv_power_sd_usbevt_enable(true);
