From 967246f81ccc48ad98401300f8293ab96b087939 Mon Sep 17 00:00:00 2001 From: Martin Mueller <72937414+mmarti04@users.noreply.github.com> Date: Wed, 12 Aug 2026 15:50:57 +0200 Subject: [PATCH 01/21] gated Matterhorn on XCTB (#1516) * updated RegisterDefs.h, added trigger and gate option to XCTB * fix timing mode validation * fix test case --------- Co-authored-by: Martin Mueller --- python/slsdet/detector.py | 4 +- .../src/slsDetectorServer_funcs.c | 2 +- .../xilinx_ctbDetectorServer/RegisterDefs.h | 99 ++++++++++++++++++- .../slsDetectorFunctionList.c | 31 +++++- slsDetectorSoftware/generator/commands.yaml | 2 +- .../generator/extended_commands.yaml | 2 +- slsDetectorSoftware/include/sls/Detector.h | 4 +- slsDetectorSoftware/src/Caller.cpp | 4 +- slsDetectorSoftware/src/Detector.cpp | 4 + .../tests/Caller/test-Caller.cpp | 2 +- 10 files changed, 142 insertions(+), 12 deletions(-) diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 211ddc602..c0c95cd26 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -2347,8 +2347,8 @@ class Detector(CppDetectorApi): Note ----- Default: AUTO_TIMING \n - [Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] AUTO_TIMING, TRIGGER_EXPOSURE \n - [Mythen3] AUTO_TIMING, TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n + [Jungfrau][Moench][Ctb][Gotthard2] AUTO_TIMING, TRIGGER_EXPOSURE \n + [Mythen3][Xilinx Ctb] AUTO_TIMING, TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER """ return self.getTimingMode() diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 0a5bb400a..7e5521aed 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -786,7 +786,7 @@ int set_timing_mode(int file_des) { #ifdef EIGERD case GATED: case BURST_TRIGGER: -#elif MYTHEN3D +#elif defined(MYTHEN3D) || defined(XILINX_CHIPTESTBOARDD) case GATED: case TRIGGER_GATED: #endif diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h b/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h index d0a6e8bdb..83652bc5a 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h @@ -10,7 +10,76 @@ #ifndef __CHEBY__XCTB__H__ #define __CHEBY__XCTB__H__ -#define XCTB_SIZE 49924 /* 0xc304 */ +#define XCTB_SIZE 50244 /* 0xc444 */ + +/* REG CRC0_LSB */ +#define CRC0_LSB 0xc400UL +#define CRC0_LSB_PRESET 0x0UL + +/* REG CRC0_MSB */ +#define CRC0_MSB 0xc404UL +#define CRC0_MSB_PRESET 0x0UL + +/* REG CRC1_LSB */ +#define CRC1_LSB 0xc408UL +#define CRC1_LSB_PRESET 0x0UL + +/* REG CRC1_MSB */ +#define CRC1_MSB 0xc40cUL +#define CRC1_MSB_PRESET 0x0UL + +/* REG CRC2_LSB */ +#define CRC2_LSB 0xc410UL +#define CRC2_LSB_PRESET 0x0UL + +/* REG CRC2_MSB */ +#define CRC2_MSB 0xc414UL +#define CRC2_MSB_PRESET 0x0UL + +/* REG CRC3_LSB */ +#define CRC3_LSB 0xc418UL +#define CRC3_LSB_PRESET 0x0UL + +/* REG CRC3_MSB */ +#define CRC3_MSB 0xc41cUL +#define CRC3_MSB_PRESET 0x0UL + +/* REG SET_CRC0_LSB */ +#define SET_CRC0_LSB 0xc420UL +#define SET_CRC0_LSB_PRESET 0x0UL + +/* REG SET_CRC0_MSB */ +#define SET_CRC0_MSB 0xc424UL +#define SET_CRC0_MSB_PRESET 0x0UL + +/* REG SET_CRC1_LSB */ +#define SET_CRC1_LSB 0xc428UL +#define SET_CRC1_LSB_PRESET 0x0UL + +/* REG SET_CRC1_MSB */ +#define SET_CRC1_MSB 0xc42cUL +#define SET_CRC1_MSB_PRESET 0x0UL + +/* REG SET_CRC2_LSB */ +#define SET_CRC2_LSB 0xc430UL +#define SET_CRC2_LSB_PRESET 0x0UL + +/* REG SET_CRC2_MSB */ +#define SET_CRC2_MSB 0xc434UL +#define SET_CRC2_MSB_PRESET 0x0UL + +/* REG SET_CRC3_LSB */ +#define SET_CRC3_LSB 0xc438UL +#define SET_CRC3_LSB_PRESET 0x0UL + +/* REG SET_CRC3_MSB */ +#define SET_CRC3_MSB 0xc43cUL +#define SET_CRC3_MSB_PRESET 0x0UL + +/* REG CRC_write */ +#define CRC_WRITE 0xc440UL +#define CRC_WRITE_MSK 0xfUL +#define CRC_WRITE_OFST 0 /* REG CTRL_Reg */ #define CTRL_REG 0x8000UL @@ -677,6 +746,34 @@ #define OBUFDTS_ENA_MSK 0xffffUL #define OBUFDTS_ENA_OFST 0 +/* REG OBUFDTS_invert */ +#define OBUFDTS_INVERT 0xc020UL +#define OBUFDTS_INVERT_MSK 0xffffUL +#define OBUFDTS_INVERT_OFST 0 + +/* REG GATE_MASK_LSB */ +#define GATE_MASK_LSB 0xc024UL +#define GATE_MASK_LSB_PRESET 0x0UL + +/* REG GATE_MASK_MSB */ +#define GATE_MASK_MSB 0xc028UL +#define GATE_MASK_MSB_PRESET 0x0UL + +/* REG GATE_CTRL */ +#define GATE_CTRL 0xc02cUL +#define GATE_ENABLE 0x1UL +#define GATE_ENABLE_MSK 0x1UL +#define GATE_ENABLE_OFST 0 +#define GATE_OPEN 0x2UL +#define GATE_OPEN_MSK 0x2UL +#define GATE_OPEN_OFST 1 +#define GATE_INVERT 0x4UL +#define GATE_INVERT_MSK 0x4UL +#define GATE_INVERT_OFST 2 +#define GATE_VALUE_WHEN_CLOSED 0x8UL +#define GATE_VALUE_WHEN_CLOSED_MSK 0x8UL +#define GATE_VALUE_WHEN_CLOSED_OFST 3 + /* REG A_FIFO_Overflow_Status_Reg */ #define A_FIFO_OVERFLOW_STATUS_REG 0x9000UL #define A_FIFO_OVERFLOW_STATUS_REG_PRESET 0x0UL diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index 838a8f0ed..7f6563afb 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -1373,10 +1373,28 @@ void setTiming(enum timingMode arg) { case AUTO_TIMING: LOG(logINFO, ("Set Timing: Auto\n")); bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) & ~TRIGGER_ENABLE_MSK); + bus_w(GATE_CTRL, bus_r(GATE_CTRL) & ~GATE_ENABLE_MSK); break; case TRIGGER_EXPOSURE: LOG(logINFO, ("Set Timing: Trigger\n")); bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | TRIGGER_ENABLE_MSK); + bus_w(GATE_CTRL, bus_r(GATE_CTRL) & ~GATE_ENABLE_MSK); + break; + case GATED: + // chip-specific config needed, see example reg definitions in matterhorn chiptesting repo + // - a gate mask setting to specify which bits of the pattern are gated (GATE_MASK_LSB & GATE_MASK_MSB) + // - value of the pattern bit when gating is enabled but gate is closed (GATE_VALUE_WHEN_CLOSED) + // - a gate inversion setting (GATE_INVERT_MSK) + LOG(logINFO, ("Set Timing: Gated\n")); + bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) & ~TRIGGER_ENABLE_MSK); + bus_w(GATE_CTRL, bus_r(GATE_CTRL) | GATE_ENABLE_MSK); + break; + case TRIGGER_GATED: + // trigger + gate --> trigger will start a pattern and the output of the pattern is gated. + // NOT A GATED TRIGGER !! (this is not: "trigger starts a pattern only if the gate is open") + LOG(logINFO, ("Set Timing: Trigger Gated\n")); + bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | TRIGGER_ENABLE_MSK); + bus_w(GATE_CTRL, bus_r(GATE_CTRL) | GATE_ENABLE_MSK); break; default: LOG(logERROR, ("Unknown timing mode %d\n", arg)); @@ -1384,8 +1402,19 @@ void setTiming(enum timingMode arg) { } enum timingMode getTiming() { - if (bus_r(FLOW_CONTROL_REG) == TRIGGER_ENABLE_MSK) + uint32_t extTrigger = (bus_r(FLOW_CONTROL_REG) & TRIGGER_ENABLE_MSK); + uint32_t extGate = (bus_r(GATE_CTRL) & GATE_ENABLE_MSK); + + if (extTrigger) { + if (extGate) { + return TRIGGER_GATED; + } return TRIGGER_EXPOSURE; + } + + if (extGate) { + return GATED; + } return AUTO_TIMING; } diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index 2fd884845..87ca6ad0b 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -741,7 +741,7 @@ column: function: setColumn timing: - help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\t[Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\t[Eiger] [auto|trigger|gating|burst_trigger]" + help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\t[Jungfrau][Moench][Ctb][Gotthard2] [auto|trigger]\n\t[Mythen3][Xilinx Ctb] [auto|trigger|gating|trigger_gating]\n\t[Eiger] [auto|trigger|gating|burst_trigger]" inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: diff --git a/slsDetectorSoftware/generator/extended_commands.yaml b/slsDetectorSoftware/generator/extended_commands.yaml index a47bc1582..0134cf5ed 100644 --- a/slsDetectorSoftware/generator/extended_commands.yaml +++ b/slsDetectorSoftware/generator/extended_commands.yaml @@ -11347,7 +11347,7 @@ timing: command_name: timing function_alias: timing help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\ - \t[Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\ + \t[Jungfrau][Moench][Ctb][Gotthard2] [auto|trigger]\n\t[Mythen3][Xilinx Ctb] [auto|trigger|gating|trigger_gating]\n\ \t[Eiger] [auto|trigger|gating|burst_trigger]" infer_action: true template: true diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index b3669a6a3..b0cdb518d 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -371,8 +371,8 @@ class Detector { Result getTimingMode(Positions pos = {}) const; /** - * [Jungfrau][Moench][CTB][Gotthard2][Xilinx CTB] - * Options: AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3] Options: AUTO_TIMING, + * [Jungfrau][Moench][CTB][Gotthard2] + * Options: AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3][Xilinx CTB] Options: AUTO_TIMING, * TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] Options: AUTO_TIMING, * TRIGGER_EXPOSURE, GATED, BURST_TRIGGER */ diff --git a/slsDetectorSoftware/src/Caller.cpp b/slsDetectorSoftware/src/Caller.cpp index 3278b0889..690387c81 100644 --- a/slsDetectorSoftware/src/Caller.cpp +++ b/slsDetectorSoftware/src/Caller.cpp @@ -13897,8 +13897,8 @@ std::string Caller::timing(int action) { if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([auto|trigger|gating|burst_trigger|trigger_gating] Timing Mode of detector. - [Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger] - [Mythen3] [auto|trigger|gating|trigger_gating] + [Jungfrau][Moench][Ctb][Gotthard2] [auto|trigger] + [Mythen3][Xilinx Ctb] [auto|trigger|gating|trigger_gating] [Eiger] [auto|trigger|gating|burst_trigger] )V0G0N" << std::endl; return os.str(); diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index dde062e27..405f3914f 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -616,6 +616,10 @@ std::vector Detector::getTimingModeList() const { return std::vector{defs::AUTO_TIMING, defs::TRIGGER_EXPOSURE, defs::GATED, defs::TRIGGER_GATED}; + case defs::XILINX_CHIPTESTBOARD: + return std::vector{defs::AUTO_TIMING, + defs::TRIGGER_EXPOSURE, + defs::GATED, defs::TRIGGER_GATED}; default: return std::vector{defs::AUTO_TIMING, defs::TRIGGER_EXPOSURE}; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index 77a1bd240..cac3bdb7f 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -1079,7 +1079,7 @@ TEST_CASE("timing", "[.detectorintegration]") { REQUIRE(oss2.str() == "timing burst_trigger\n"); } REQUIRE_THROWS(caller.call("timing", {"trigger_gating"}, -1, PUT)); - } else if (det_type == defs::MYTHEN3) { + } else if (det_type == defs::MYTHEN3 || det_type == defs::XILINX_CHIPTESTBOARD) { { std::ostringstream oss1, oss2; caller.call("timing", {"gating"}, -1, PUT, oss1); From f26fa86a7e3b7f5d5c8c90ed4b91316d237d1441 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 13 Aug 2026 10:27:10 +0200 Subject: [PATCH 02/21] Dev/xctb format and binary (#1519) * formatting * updated firmware versioning * updated binary and server version --- .../bin/xilinx_ctbDetectorServer_developer | Bin 306352 -> 306352 bytes .../slsDetectorFunctionList.c | 14 +++++++++----- .../slsDetectorServer_defs.h | 2 +- slsDetectorSoftware/include/sls/Detector.h | 6 +++--- .../tests/Caller/test-Caller.cpp | 3 ++- slsSupportLib/include/sls/versionAPI.h | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 175991ee81ab2843d89c3453e95246b305e0f362..2e28eddb433284dc3754b1998587a05232736ee8 100755 GIT binary patch delta 74270 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
  • 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

    Nq~ESrPW%ne9gA{TF9b21b7 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 delta 73505 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 trigger will start a pattern and the output of the pattern is gated. - // NOT A GATED TRIGGER !! (this is not: "trigger starts a pattern only if the gate is open") + // trigger + gate --> trigger will start a pattern and the output of the + // pattern is gated. NOT A GATED TRIGGER !! (this is not: "trigger + // starts a pattern only if the gate is open") LOG(logINFO, ("Set Timing: Trigger Gated\n")); bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | TRIGGER_ENABLE_MSK); bus_w(GATE_CTRL, bus_r(GATE_CTRL) | GATE_ENABLE_MSK); diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h index adf4691bc..393bb6874 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h @@ -4,7 +4,7 @@ #include "RegisterDefs.h" #include "sls/sls_detector_defs.h" -#define REQRD_FRMWRE_VRSN (0x250203) +#define REQRD_FRMWRE_VRSN (0x260813) #define KERNEL_DATE_VRSN "Wed Nov 29 17:32:14 CET 2023" #define LINKED_SERVER_NAME "xilinx_ctbDetectorServer" diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index b0cdb518d..f5118e9e6 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -372,9 +372,9 @@ class Detector { /** * [Jungfrau][Moench][CTB][Gotthard2] - * Options: AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3][Xilinx CTB] Options: AUTO_TIMING, - * TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] Options: AUTO_TIMING, - * TRIGGER_EXPOSURE, GATED, BURST_TRIGGER + * Options: AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3][Xilinx CTB] Options: + * AUTO_TIMING, TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] Options: + * AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER */ void setTimingMode(defs::timingMode value, Positions pos = {}); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index cac3bdb7f..bc6122f0a 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -1079,7 +1079,8 @@ TEST_CASE("timing", "[.detectorintegration]") { REQUIRE(oss2.str() == "timing burst_trigger\n"); } REQUIRE_THROWS(caller.call("timing", {"trigger_gating"}, -1, PUT)); - } else if (det_type == defs::MYTHEN3 || det_type == defs::XILINX_CHIPTESTBOARD) { + } else if (det_type == defs::MYTHEN3 || + det_type == defs::XILINX_CHIPTESTBOARD) { { std::ostringstream oss1, oss2; caller.call("timing", {"gating"}, -1, PUT, oss1); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 1bf107977..03fa8b555 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -7,7 +7,7 @@ #define APIGOTTHARD2 "0.0.0 0x260427" #define APIMOENCH "0.0.0 0x260424" #define APIEIGER "0.0.0 0x260807" -#define APIXILINXCTB "0.0.0 0x260506" +#define APIXILINXCTB "0.0.0 0x260813" #define APIJUNGFRAU "0.0.0 0x260424" #define APIMYTHEN3 "0.0.0 0x260506" #define APIMATTERHORN "0.0.0 0x260529" From 3d7b97953a929383390b251a9abc3cdda3c291bc Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 14 Aug 2026 12:00:52 +0200 Subject: [PATCH 03/21] Dev/jf chip version1.2 part 1 (#1520) * chipversion changed to chipversioninfpga, chipindex, vals and type introduced with string for 3 different types for chip v1.2 and 1.3. * changed chipversion to chipindex (more apt?) and refactored * fix without the list.h * formatting * scanning string instead of int from server config file for version * scan works in config now * chip versions =1.2 divided again * minor refactoring * formating * startup set features allowed with chip index * fixed existing features * updated features for chip (dacs not done) * fixed a test * fixed another test and removed and unused reg * fixed check for storage cell feature * jf binary in * removed a comment * formatting * changed some minor comments specifying v1.1 * minor * removed comment. minor * use has feature functions and fix reverse bits using configuration * minor * minor * binary in * remaining from updated features for chip (dacs not done) * binary in * binary in * moved storage cell delay also to storage cell reg and removed 2 reg field defines that is not used anymore * binary in --- python/slsdet/detector.py | 2 +- .../jungfrauDetectorServer/RegisterDefs.h | 49 +- .../bin/config_jungfrau.txt | 11 +- .../bin/jungfrauDetectorServer_developer | Bin 317988 -> 320416 bytes .../config_jungfrau.txt | 11 +- .../slsDetectorFunctionList.c | 561 ++++++++++++------ .../slsDetectorFunctionList.h | 30 +- .../slsDetectorServer_defs.h | 22 +- .../src/slsDetectorServer_funcs.c | 345 ++++++----- slsDetectorSoftware/generator/commands.yaml | 2 +- .../tests/Caller/test-Caller-jungfrau.cpp | 12 +- .../tests/Caller/test-Caller.cpp | 12 +- slsSupportLib/include/sls/versionAPI.h | 2 +- 13 files changed, 673 insertions(+), 386 deletions(-) diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index c0c95cd26..2ea303d53 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -2738,7 +2738,7 @@ class Detector(CppDetectorApi): @element def chipversion(self): """ - [Jungfrau] Chip version of module. Can be 1.0 or 1.1. + [Jungfrau] Chip version of module. Can be 1.0, 1.1 or 1.2. Example ------- diff --git a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h index f1f81d863..6ea71da55 100644 --- a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h @@ -108,6 +108,12 @@ #define CONFIG_V11_STATUS_FLTR_CLL_MSK (0x00000FFF << CONFIG_V11_STATUS_FLTR_CLL_OFST) #define CONFIG_V11_STATUS_STRG_CLL_OFST (12) #define CONFIG_V11_STATUS_STRG_CLL_MSK (0x0000000F << CONFIG_V11_STATUS_STRG_CLL_OFST) + +// replacing for v1.2 +#define CONFIG_V12_STATUS_STRG_CLL_OFST (0) +#define CONFIG_V12_STATUS_STRG_CLL_MSK (0x0000FFFF << CONFIG_V12_STATUS_STRG_CLL_OFST) + + // CSM mode = high current (100%), low current (16%) #define CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST (19) #define CONFIG_V11_STATUS_CRRNT_SRC_LOW_MSK (0x00000001 << CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST) @@ -236,8 +242,6 @@ #define CONTROL_ACQ_FIFO_CLR_MSK (0x00000001 << CONTROL_ACQ_FIFO_CLR_OFST) #define CONTROL_MASTER_OFST (15) #define CONTROL_MASTER_MSK (0x00000001 << CONTROL_MASTER_OFST) -#define CONTROL_STORAGE_CELL_NUM_OFST (16) -#define CONTROL_STORAGE_CELL_NUM_MSK (0x0000000F << CONTROL_STORAGE_CELL_NUM_OFST) #define CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST (20) #define CONTROL_RX_ADDTNL_ENDPTS_NUM_MSK (0x0000003F << CONTROL_RX_ADDTNL_ENDPTS_NUM_OFST) #define CONTROL_RX_ENDPTS_START_OFST (26) @@ -261,6 +265,21 @@ #define PLL_CNTRL_ADDR_MSK (0x0000003F << PLL_CNTRL_ADDR_OFST) +/** Storage cell Register */ +#define STORAGE_CELL_REG (0x56 << MEM_MAP_SHIFT) + +#define STORAGE_CELL_START_OFST (0) +#define STORAGE_CELL_START_MSK (0x000000FF << STORAGE_CELL_START_OFST) +#define STORAGE_CELL_NUM_ADDTNL_OFST (8) +#define STORAGE_CELL_NUM_ADDTNL_MSK (0x000000FF << STORAGE_CELL_NUM_ADDTNL_OFST) +// tET = (ET + 1) * 25ns (increase timeout range between 2 consecutive storage +// cells) +#define STORAGE_CELL_EXPSRE_TMR_OFST (16) +#define STORAGE_CELL_EXPSRE_TMR_MSK (0x0000FFFF << STORAGE_CELL_EXPSRE_TMR_OFST) +#define STORAGE_CELL_EXPSRE_TMR_MAX_VAL (0x0000FFFF / (CLK_RUN * 1E-3)) + + + /* Pedestal Mode Regiser */ #define PEDESTAL_MODE_REG (0x57 << MEM_MAP_SHIFT) @@ -271,13 +290,18 @@ #define PEDESTAL_MODE_ENBLE_OFST (31) #define PEDESTAL_MODE_ENBLE_MSK (0x00000001 << PEDESTAL_MODE_ENBLE_OFST) -/* Config Register for chip 1.1 */ +/* Config Register for chip 1.1 and chip 1.2 */ #define CONFIG_V11_REG (0x58 << MEM_MAP_SHIFT) #define CONFIG_V11_FLTR_CLL_OFST (0) #define CONFIG_V11_FLTR_CLL_MSK (0x00000FFF << CONFIG_V11_FLTR_CLL_OFST) #define CONFIG_V11_STRG_CLL_OFST (12) #define CONFIG_V11_STRG_CLL_MSK (0x0000000F << CONFIG_V11_STRG_CLL_OFST) +// replacing for v1.2 +#define CONFIG_V12_STRG_CLL_OFST (0) +#define CONFIG_V12_STRG_CLL_MSK (0x0000FFFF << CONFIG_V12_STRG_CLL_OFST) + + // CSM mode = high current (100%), low current (16%) #define CONFIG_V11_CRRNT_SRC_LOW_OFST (19) #define CONFIG_V11_CRRNT_SRC_LOW_MSK (0x00000001 << CONFIG_V11_CRRNT_SRC_LOW_OFST) @@ -336,6 +360,7 @@ #define SAMPLE_DECMT_FACTOR_HALF_VAL ((0x1 << SAMPLE_DGTL_DECMT_FACTOR_OFST) & SAMPLE_DGTL_DECMT_FACTOR_MSK) #define SAMPLE_DECMT_FACTOR_QUARTER_VAL ((0x2 << SAMPLE_DGTL_DECMT_FACTOR_OFST) & SAMPLE_DGTL_DECMT_FACTOR_MSK) + /** Current Source Column 0 (0 - 31)) */ #define CRRNT_SRC_COL_LSB_REG (0x5A << MEM_MAP_SHIFT) @@ -366,10 +391,11 @@ #define DAQ_FIX_GAIN_STG_2_VAL ((0x3 << DAQ_FIX_GAIN_OFST) & DAQ_FIX_GAIN_MSK) #define DAQ_CMP_RST_OFST (4) #define DAQ_CMP_RST_MSK (0x00000001 << DAQ_CMP_RST_OFST) -#define DAQ_CHIP11_VRSN_OFST (7) -#define DAQ_CHIP11_VRSN_MSK (0x00000001 << DAQ_CHIP11_VRSN_OFST) -#define DAQ_STRG_CELL_SLCT_OFST (8) -#define DAQ_STRG_CELL_SLCT_MSK (0x0000000F << DAQ_STRG_CELL_SLCT_OFST) +#define DAQ_CHIP_VRSN_OFST (5) +#define DAQ_CHIP_VRSN_MSK (0x00000007 << DAQ_CHIP_VRSN_OFST) +#define DAQ_CHIP_VRSN_v1_0_VAL (0x0) +#define DAQ_CHIP_VRSN_v1_1_VAL (0x1) +#define DAQ_CHIP_VRSN_v1_2_VAL (0x2) #define DAQ_FRCE_SWTCH_GAIN_OFST (12) #define DAQ_FRCE_SWTCH_GAIN_MSK (0x00000003 << DAQ_FRCE_SWTCH_GAIN_OFST) #define DAQ_FRCE_GAIN_STG_0_VAL ((0x0 << DAQ_FRCE_SWTCH_GAIN_OFST) & DAQ_FRCE_SWTCH_GAIN_MSK) @@ -406,9 +432,7 @@ #define TEMP_CTRL_OVR_TMP_EVNT_OFST (31) #define TEMP_CTRL_OVR_TMP_EVNT_MSK (0x00000001 << TEMP_CTRL_OVR_TMP_EVNT_OFST) -/* Set Delay 64 bit register */ -#define SET_DELAY_LSB_REG (0x60 << MEM_MAP_SHIFT) // different kind of delay -#define SET_DELAY_MSB_REG (0x61 << MEM_MAP_SHIFT) // different kind of delay + /* Set Triggers 64 bit register */ #define SET_CYCLES_LSB_REG (0x62 << MEM_MAP_SHIFT) @@ -472,11 +496,6 @@ Time before end of exposure when comparator is disabled */ #define ASIC_CTRL_DS_TMR_MSK (0x000000FF << ASIC_CTRL_DS_TMR_OFST) #define ASIC_CTRL_DS_TMR_VAL ((0x1F << ASIC_CTRL_DS_TMR_OFST) & ASIC_CTRL_DS_TMR_MSK) #define ASIC_CTRL_DS_TMR_CHIP1_1_VAL ((0xFF << ASIC_CTRL_DS_TMR_OFST) & ASIC_CTRL_DS_TMR_MSK) -// tET = (ET + 1) * 25ns (increase timeout range between 2 consecutive storage -// cells) -#define ASIC_CTRL_EXPSRE_TMR_OFST (16) -#define ASIC_CTRL_EXPSRE_TMR_MSK (0x0000FFFF << ASIC_CTRL_EXPSRE_TMR_OFST) -#define ASIC_CTRL_EXPSRE_TMR_MAX_VAL (0x0000FFFF / (CLK_RUN * 1E-3)) /* ADC 0 Deserializer Control */ #define ADC_DSRLZR_0_REG (0xF0 << MEM_MAP_SHIFT) diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/config_jungfrau.txt b/slsDetectorServers/jungfrauDetectorServer/bin/config_jungfrau.txt index 48fea871e..2e1997cb1 100755 --- a/slsDetectorServers/jungfrauDetectorServer/bin/config_jungfrau.txt +++ b/slsDetectorServers/jungfrauDetectorServer/bin/config_jungfrau.txt @@ -1,4 +1,9 @@ +#chipversion Options +#"v1.0" +#"v1.1" +#"v1.2 Normal" +#"v1.2 Low Noise" +#"v1.2 HDR" +#"v1.3 Burst Mode" - -#chip version version (multiplied by 10) -chipversion 11 +chipversion "v1.1" diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 5223b431900f20bc3a91826bdb7d4e2e2c9f9aff..b03476a285248f01ad75c5824689616afd3abebc 100755 GIT binary patch literal 320416 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

    UqA|_b^Qt2Tj-6+Qv2AYFka`q7-O4 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 R4ef2x*QO2(!MQ&U{~xgSA1?p^ literal 317988 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

    tj*o(P{CJu4 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%0A97C0S&iBDmkF~A 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 diff --git a/slsDetectorServers/jungfrauDetectorServer/config_jungfrau.txt b/slsDetectorServers/jungfrauDetectorServer/config_jungfrau.txt index 48fea871e..2e1997cb1 100755 --- a/slsDetectorServers/jungfrauDetectorServer/config_jungfrau.txt +++ b/slsDetectorServers/jungfrauDetectorServer/config_jungfrau.txt @@ -1,4 +1,9 @@ +#chipversion Options +#"v1.0" +#"v1.1" +#"v1.2 Normal" +#"v1.2 Low Noise" +#"v1.2 HDR" +#"v1.3 Burst Mode" - -#chip version version (multiplied by 10) -chipversion 11 +chipversion "v1.1" diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 8d0d1379f..576b67f58 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -46,6 +46,7 @@ int virtual_moduleid = 0; #endif enum detectorSettings thisSettings = UNINITIALIZED; +static enum CHIPINDEX chipIndex = v1_0; int highvoltage = 0; int dacValues[NDAC] = {}; int defaultDacValues[] = DEFAULT_DAC_VALS; @@ -53,11 +54,20 @@ int defaultDacValue_G0[] = SPECIAL_DEFAULT_DYNAMIC_GAIN_VALS; int defaultDacValue_HG0[] = SPECIAL_DEFAULT_DYNAMICHG0_GAIN_VALS; int32_t clkPhase[NUM_CLOCKS] = {}; int detPos[4] = {}; -int chipConfigured = 0; +bool chipConfigured = false; uint64_t normal_mode_frames = -1; uint64_t normal_mode_triggers = -1; +bool has_configure_chip = false; +bool has_storage_cells = false; +bool has_filter_resistor = false; +bool has_filter_cells = false; +bool has_current_src_normal = false; +bool has_current_src_64bit_selection = false; +bool has_current_src_reverse_bits_selection = false; +bool has_storage_start_in_chip_config = false; + int isInitCheckDone() { return initCheckDone; } int getInitResult(char **mess) { @@ -319,23 +329,160 @@ int isHardwareVersion_1_0() { return ((getHardwareVersionNumber() == hwNumberList[0]) ? 1 : 0); } -int getChipVersion() { - // chip v1.1 - if (bus_r(DAQ_REG) & DAQ_CHIP11_VRSN_MSK) { - return 11; +int getChipVersionInFPGA() { + const int vals[] = CHIP_VALS; + int val = ((bus_r(DAQ_REG) & DAQ_CHIP_VRSN_MSK) >> DAQ_CHIP_VRSN_OFST); + switch (val) { + case 0: + return vals[(int)v1_0]; + case 1: + return vals[(int)v1_1]; + case 2: + return vals[(int)v1_2_NORMAL] / 10; + default: + LOG(logERROR, + ("Read undefined value as chip version from FPGA: %d\n", val)); + return -1; } - // chip v1.0 - return 10; } -void setChipVersion(int version) { - LOG(logINFO, - ("Setting chip version to %0.1f in FPGA\n", (double)version / 10.0)); - if (version == 11) { - bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_CHIP11_VRSN_MSK); - } else { - bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_CHIP11_VRSN_MSK); +int findChipIndex(enum CHIPINDEX *ind, char *cval, char *mess) { + if (cval == NULL) { + sprintf(mess, "String value is NULL. Cannot find chip version.\n"); + LOG(logERROR, (mess)); + return FAIL; } + char *chip_names[] = {CHIP_NAMES}; + for (enum CHIPINDEX ichip = v1_0; ichip != NUM_CHIP_INDICES; ++ichip) { + if (strcmp(chip_names[ichip], cval) == 0) { + *ind = ichip; + return OK; + } + } + sprintf(mess, "Unknown chip version '%s'. Options: %s\n", cval, + CHIP_VALS_HELP); + LOG(logERROR, (mess)); + return FAIL; +} + +/** For backwards compatibility */ +int setChipVersionIntFromConfigFile(int val, char *mess) { + const int vals[] = CHIP_VALS; + if (val == vals[(int)v1_0]) + return setChipIndex(v1_0, mess); + else if (val == vals[(int)v1_1]) + return setChipIndex(v1_1, mess); + else { + sprintf(mess, "Invalid chip version %d. Options: %d and %d.\n", val, + vals[(int)v1_0], vals[(int)v1_1]); + LOG(logERROR, (mess)); + return FAIL; + } +} + +int setChipVersionStringFromConfigFile(char *cval, char *mess) { + enum CHIPINDEX ind = NUM_CHIP_INDICES; + if (findChipIndex(&ind, cval, mess) == FAIL) { + return FAIL; + } + return setChipIndex(ind, mess); +} + +int setChipIndex(enum CHIPINDEX ind, char *mess) { + if (validateChipIndex(ind, mess) == FAIL) { + return FAIL; + } + chipIndex = ind; + setChipIndexAllowedFeatures(); + return setChipVersionInFPGA(mess); +} + +int validateChipIndex(enum CHIPINDEX ind, char *mess) { + if (ind < 0 || ind >= NUM_CHIP_INDICES) { + sprintf(mess, "Invalid chip index %d. Options: %s\n", (int)ind, + CHIP_VALS_HELP); + LOG(logERROR, (mess)); + return FAIL; + } + + // chipversion > 1.0 and HW 1.0 is incompatible + if (ind > v1_0 && isHardwareVersion_1_0()) { + char *chip_names[] = {CHIP_NAMES}; + sprintf(mess, + "Chip index %d (%s) is incompatible with hardware version " + "v1.0. Please update board or correct chip index.\n", + (int)ind, chip_names[ind]); + return FAIL; + } + return OK; +} + +void setChipIndexAllowedFeatures() { + switch (chipIndex) { + case v1_0: + has_configure_chip = false; + has_storage_cells = true; + has_filter_resistor = false; + has_filter_cells = false; + has_current_src_normal = false; + has_current_src_64bit_selection = false; + has_current_src_reverse_bits_selection = false; + has_storage_start_in_chip_config = false; + break; + case v1_1: + has_configure_chip = true; + has_storage_cells = false; + has_filter_resistor = true; + has_filter_cells = true; + has_current_src_normal = true; + has_current_src_64bit_selection = true; + has_current_src_reverse_bits_selection = true; + has_storage_start_in_chip_config = true; + break; + case v1_2_NORMAL: + case v1_2_LOW_NOISE: + case v1_2_HDR: + has_configure_chip = true; + has_storage_cells = true; + has_filter_resistor = true; + has_filter_cells = false; + has_current_src_normal = true; + has_current_src_64bit_selection = true; + has_current_src_reverse_bits_selection = false; + has_storage_start_in_chip_config = true; + break; + default: + LOG(logERROR, ("Unknown chip index %d\n", (int)chipIndex)); + } +} + +int setChipVersionInFPGA(char *mess) { + uint32_t val = 0; + switch (chipIndex) { + case v1_0: + LOG(logINFO, ("Setting Chip Version 1.0 in FPGA\n")); + val = DAQ_CHIP_VRSN_v1_0_VAL; + break; + case v1_1: + LOG(logINFO, ("Setting Chip Version 1.1 in FPGA\n")); + val = DAQ_CHIP_VRSN_v1_1_VAL; + break; + case v1_2_NORMAL: + case v1_2_LOW_NOISE: + case v1_2_HDR: + LOG(logINFO, ("Setting Chip Version 1.2 in FPGA\n")); + val = DAQ_CHIP_VRSN_v1_2_VAL; + break; + default: + sprintf(mess, "Unknown chip index %d\n", (int)chipIndex); + LOG(logERROR, (mess)); + return FAIL; + } + + bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_CHIP_VRSN_MSK); + bus_w(DAQ_REG, + bus_r(DAQ_REG) | ((val << DAQ_CHIP_VRSN_OFST) & DAQ_CHIP_VRSN_MSK)); + return OK; } u_int32_t getDetectorNumber() { @@ -460,7 +607,7 @@ void setupDetector() { for (int i = 0; i < NUM_CLOCKS; ++i) { clkPhase[i] = 0; } - chipConfigured = 0; + chipConfigured = false; #ifdef VIRTUAL if (isControlServer) { sharedMemory_setStatus(IDLE); @@ -549,14 +696,6 @@ void setupDetector() { setExpTime(DEFAULT_EXPTIME); setPeriod(DEFAULT_PERIOD); setDelayAfterTrigger(DEFAULT_DELAY); - if (getChipVersion() == 11) { - selectStoragecellStart(DEFAULT_STRG_CLL_STRT_CHIP11); - } else { - setNumAdditionalStorageCells(DEFAULT_NUM_STRG_CLLS); - selectStoragecellStart(DEFAULT_STRG_CLL_STRT); - // not applicable for chipv1.1 - setStorageCellDelay(DEFAULT_STRG_CLL_DLY); - } setTiming(DEFAULT_TIMING_MODE); setNextFrameNumber(DEFAULT_STARTING_FRAME_NUMBER); @@ -564,10 +703,20 @@ void setupDetector() { setTemperatureControl(DEFAULT_TMP_CNTRL); setThresholdTemperature(DEFAULT_TMP_THRSHLD); setTemperatureEvent(0); - if (getChipVersion() == 11) { - setFilterResistor(DEFAULT_FILTER_RESISTOR); - setNumberOfFilterCells(DEFAULT_FILTER_CELL); + + // chip specific features + if (hasStorageCellsFeature()) { + setNumAdditionalStorageCells(DEFAULT_NUM_STRG_CLLS); + setStorageCellDelay(DEFAULT_STRG_CLL_DLY); + setStorageCellStart(DEFAULT_STRG_CLL_STRT); + } else { + setStorageCellStart(DEFAULT_STRG_CLL_STRT_CHIP11); } + if (hasFilterResistorFeature()) + setFilterResistor(DEFAULT_FILTER_RESISTOR); + if (hasFilterCellsFeature()) + setNumberOfFilterCells(DEFAULT_FILTER_CELL); + if (!isHardwareVersion_1_0()) { setFlipRows(DEFAULT_FLIP_ROWS); setReadNRows(MAX_ROWS_PER_READOUT); @@ -793,35 +942,41 @@ int readConfigFile() { // chipversion command if (!strncmp(line, "chipversion", strlen("chipversion"))) { - int version = 0; + int val = 0; + char chipversion[SHORT_STR_LENGTH] = {0}; - // cannot scan values - if (sscanf(line, "%s %d", command, &version) != 2) { - sprintf( - initErrorMessage, - "Could not scan chipversion commands from on-board server " - "config file. Line:[%s].\n", - line); - break; + // backward compatibility: takes an int + if (sscanf(line, "%s %d", command, &val) == 2) { + if (setChipVersionIntFromConfigFile(val, initErrorMessage) == + FAIL) { + strcat(initErrorMessage, + "Could not set chip version from on-board server " + "config " + "file. For higher chip versions, use string " + "arguments from example server config file. " + "Line:[%s].\n"); + break; + } } - // validations - if (version != 10 && version != 11) { + + // updated argument takes a string without quotes + else if (sscanf(line, "%s \"%[^\"]\"", command, chipversion) == 2) { + if (setChipVersionStringFromConfigFile( + chipversion, initErrorMessage) == FAIL) { + strcat(initErrorMessage, + "Could not set chip version from on-board server " + "config file. Line:[%s].\n"); + break; + } + } + + else { sprintf(initErrorMessage, - "Could not set chip version from on-board server " - "config file. Invalid chip version %d. Line:[%s].\n", - version, line); + "Could not scan chipversion command from on-board " + "server config file. Line:[%s].\n", + line); break; } - // chipversion 1.1 and HW 1.0 is incompatible - if (version == 11 && isHardwareVersion_1_0()) { - strcpy(initErrorMessage, - "Chip version 1.1 (from on-board config file) is " - "incompatible with hardware version v1.0. Please update " - "board or correct on-board config file.\n"); - break; - } - - setChipVersion(version); } // other commands @@ -910,65 +1065,97 @@ uint32_t getADCInvertRegister() { } /* parameters - timer */ -int selectStoragecellStart(int pos) { - int value = pos; - uint32_t addr = DAQ_REG; - uint32_t mask = DAQ_STRG_CELL_SLCT_MSK; - int offset = DAQ_STRG_CELL_SLCT_OFST; - if (getChipVersion() == 11) { - // set the bit - value = 1 << pos; - addr = CONFIG_V11_REG; - mask = CONFIG_V11_STRG_CLL_MSK; - offset = CONFIG_V11_STRG_CLL_OFST; - } - if (pos >= 0) { - LOG(logINFO, ("Setting storage cell start: %d\n", pos)); - bus_w(addr, bus_r(addr) & ~mask); - bus_w(addr, bus_r(addr) | ((value << offset) & mask)); - // should not do a get to verify (status register does not update - // immediately during acquisition) - if (getChipVersion() == 11) { - return pos; - } - } - - // read value back - // chipv1.1, writing and reading registers are different -#ifndef VIRTUAL - if (getChipVersion() == 11) { - addr = CONFIG_V11_STATUS_REG; - mask = CONFIG_V11_STATUS_STRG_CLL_MSK; - offset = CONFIG_V11_STATUS_STRG_CLL_OFST; - } -#endif - uint32_t regval = bus_r(addr); -#ifndef VIRTUAL - // flip all contents of register //TODO FIRMWARE FIX - if (getChipVersion() == 11) { - regval ^= BIT32_MASK; - } -#endif - uint32_t retval = ((regval & mask) >> offset); - if (getChipVersion() == 11) { - // get which bit - int max = getMaxStoragecellStart(); - for (int i = 0; i != max + 1; ++i) { - if (retval & (1 << i)) { - return i; - } - } - } - // chip v1.0 - return retval; +int getStorageCellStartFromStorageCellReg() { + return ((bus_r(STORAGE_CELL_REG) & STORAGE_CELL_START_MSK) >> + STORAGE_CELL_START_OFST); } -int getMaxStoragecellStart() { - if (getChipVersion() == 11) { - return MAX_STORAGE_CELL_CHIP11_VAL; - } else { - return MAX_STORAGE_CELL_VAL; +void setStorageCellStartFromStorageCellReg(int pos) { + bus_w(STORAGE_CELL_REG, bus_r(STORAGE_CELL_REG) & ~STORAGE_CELL_START_MSK); + bus_w(STORAGE_CELL_REG, + bus_r(STORAGE_CELL_REG) | + ((pos << STORAGE_CELL_START_OFST) & STORAGE_CELL_START_MSK)); +} + +int getStorageCellStartFromChipConfig() { + // read from config status reg + uint32_t addr = CONFIG_V11_STATUS_REG; + uint32_t mask = CONFIG_V11_STATUS_STRG_CLL_MSK; + int offset = CONFIG_V11_STATUS_STRG_CLL_OFST; + if (chipIndex > v1_1) { + offset = CONFIG_V12_STATUS_STRG_CLL_OFST; + mask = CONFIG_V12_STATUS_STRG_CLL_MSK; } + + // get which bit + uint32_t regval = bus_r(addr); + // firmware fix: flip all contents of reg + regval ^= BIT32_MASK; // TODO for chipv1.2?? + uint32_t retval = ((regval & mask) >> offset); + int max = getMaxStorageCellStart(); + for (int i = 0; i != max + 1; ++i) { + if (retval & (1 << i)) { + return i; + } + } + LOG(logERROR, ("Could not read storage cell start from config status reg. " + "Read 0x%x, returning -1\n", + regval)); + return -1; +} + +void setStorageCellStartFromChipConfig(int pos) { + // write to chip config reg, which will later update status reg + uint32_t addr = CONFIG_V11_REG; + uint32_t mask = CONFIG_V11_STRG_CLL_MSK; + int offset = CONFIG_V11_STRG_CLL_OFST; + int value = 1 << pos; + + if (chipIndex > v1_1) { + offset = CONFIG_V12_STRG_CLL_OFST; + mask = CONFIG_V12_STRG_CLL_MSK; + } + + uint32_t regval = bus_r(addr); + bus_w(addr, regval & ~mask); + bus_w(addr, bus_r(addr) | ((value << offset) & mask)); +} + +int getStorageCellStart() { + bool using_chip_config = hasStorageCellStartInChipConfig(); +#ifdef VIRTUAL + using_chip_config = false; +#endif + if (using_chip_config) { + return getStorageCellStartFromChipConfig(); + } + return getStorageCellStartFromStorageCellReg(); +} + +int setStorageCellStart(int pos) { + LOG(logINFO, ("Setting storage cell start: %d\n", pos)); + setStorageCellStartFromStorageCellReg(pos); + + int retval = getStorageCellStartFromStorageCellReg(); + if (retval != pos) { + LOG(logERROR, ("Could not set storage cell start! Wrote %d, read %d\n", + pos, retval)); + return FAIL; + } + + if (!hasStorageCellStartInChipConfig()) + return OK; + + setStorageCellStartFromChipConfig(pos); + // not validating because the status register might not update during + return OK; +} + +int getMaxStorageCellStart() { + if (hasStorageCellsFeature()) + return MAX_STORAGE_CELL_VAL; + else + return MAX_STORAGE_CELL_CHIP11_VAL; } int setNextFrameNumber(uint64_t value) { @@ -1101,18 +1288,21 @@ int64_t getDelayAfterTrigger() { } void setNumAdditionalStorageCells(int val) { - if (val >= 0) { - LOG(logINFO, ("Setting number of addl. storage cells %d\n", val)); - bus_w(CONTROL_REG, - (bus_r(CONTROL_REG) & ~CONTROL_STORAGE_CELL_NUM_MSK) | - ((val << CONTROL_STORAGE_CELL_NUM_OFST) & - CONTROL_STORAGE_CELL_NUM_MSK)); + if (val < 0) { + LOG(logERROR, ("Invalid number of addl. storage cells %d\n", val)); + return; } + + LOG(logINFO, ("Setting number of addl. storage cells %d\n", val)); + bus_w(STORAGE_CELL_REG, + (bus_r(STORAGE_CELL_REG) & ~STORAGE_CELL_NUM_ADDTNL_MSK) | + ((val << STORAGE_CELL_NUM_ADDTNL_OFST) & + STORAGE_CELL_NUM_ADDTNL_MSK)); } int getNumAdditionalStorageCells() { - return ((bus_r(CONTROL_REG) & CONTROL_STORAGE_CELL_NUM_MSK) >> - CONTROL_STORAGE_CELL_NUM_OFST); + return ((bus_r(STORAGE_CELL_REG) & STORAGE_CELL_NUM_ADDTNL_MSK) >> + STORAGE_CELL_NUM_ADDTNL_OFST); } int setStorageCellDelay(int64_t val) { @@ -1123,9 +1313,10 @@ int setStorageCellDelay(int64_t val) { } LOG(logINFO, ("Setting storage cell delay %lld ns\n", (long long int)val)); val *= (1E-3 * CLK_RUN); - bus_w(ASIC_CTRL_REG, - (bus_r(ASIC_CTRL_REG) & ~ASIC_CTRL_EXPSRE_TMR_MSK) | - ((val << ASIC_CTRL_EXPSRE_TMR_OFST) & ASIC_CTRL_EXPSRE_TMR_MSK)); + bus_w(STORAGE_CELL_REG, + (bus_r(STORAGE_CELL_REG) & ~STORAGE_CELL_EXPSRE_TMR_MSK) | + ((val << STORAGE_CELL_EXPSRE_TMR_OFST) & + STORAGE_CELL_EXPSRE_TMR_MSK)); // validate for tolerance int64_t retval = getStorageCellDelay(); @@ -1137,9 +1328,10 @@ int setStorageCellDelay(int64_t val) { } int64_t getStorageCellDelay() { - return (((int64_t)((bus_r(ASIC_CTRL_REG) & ASIC_CTRL_EXPSRE_TMR_MSK) >> - ASIC_CTRL_EXPSRE_TMR_OFST)) / - (1E-3 * CLK_RUN)); + return ( + ((int64_t)((bus_r(STORAGE_CELL_REG) & STORAGE_CELL_EXPSRE_TMR_MSK) >> + STORAGE_CELL_EXPSRE_TMR_OFST)) / + (1E-3 * CLK_RUN)); } int64_t getNumFramesLeft() { @@ -1229,7 +1421,6 @@ int setSettings(enum detectorSettings sett, char *mess) { return FAIL; } - // if chipv1.1 and powered on configureChip(); return OK; @@ -1992,7 +2183,7 @@ int powerChip(int on) { bus_w(CHIP_POWER_REG, bus_r(CHIP_POWER_REG) & ~CHIP_POWER_ENABLE_MSK); - chipConfigured = 0; + chipConfigured = false; } } #ifdef VIRTUAL @@ -2003,11 +2194,32 @@ int powerChip(int on) { CHIP_POWER_STATUS_OFST); } -int isChipConfigured() { return chipConfigured; } +bool requireChipConfiguration() { return has_configure_chip; } + +bool hasStorageCellsFeature() { return has_storage_cells; } + +bool hasFilterResistorFeature() { return has_filter_resistor; } + +bool hasFilterCellsFeature() { return has_filter_cells; } + +bool hasCurrentSourceNormalFeature() { return has_current_src_normal; } + +bool hasCurrentSource64BitSelectionFeature() { + return has_current_src_64bit_selection; +} + +bool hasCurrentSourceReverseBitsSelectionFeature() { + return has_current_src_reverse_bits_selection; +} + +bool hasStorageCellStartInChipConfig() { + return has_storage_start_in_chip_config; +} + +bool isChipConfigured() { return chipConfigured; } void configureChip() { - // only for chipv1.1 and chip is powered on - if (getChipVersion() == 11 && powerChip(-1)) { + if (requireChipConfiguration() && powerChip(-1)) { LOG(logINFOBLUE, ("\tConfiguring chip\n")); // waiting 500 ms before configuring selection @@ -2026,7 +2238,7 @@ void configureChip() { bus_w(CONFIG_V11_REG, bus_r(CONFIG_V11_REG)); LOG(logINFOBLUE, ("\tChip configured\n")); - chipConfigured = 1; + chipConfigured = true; } } @@ -2074,9 +2286,10 @@ void configureASICTimer() { bus_w(ASIC_CTRL_REG, (bus_r(ASIC_CTRL_REG) & ~ASIC_CTRL_PRCHRG_TMR_MSK) | ASIC_CTRL_PRCHRG_TMR_VAL); - uint32_t val = ASIC_CTRL_DS_TMR_VAL; - if (getChipVersion() == 11) { - val = ASIC_CTRL_DS_TMR_CHIP1_1_VAL; + uint32_t val = ASIC_CTRL_DS_TMR_CHIP1_1_VAL; + // TODO: value of chipindex v1_2 value to be decided. + if (chipIndex == v1_0) { + val = ASIC_CTRL_DS_TMR_VAL; } bus_w(ASIC_CTRL_REG, (bus_r(ASIC_CTRL_REG) & ~ASIC_CTRL_DS_TMR_MSK) | val); LOG(logINFO, ("Configured ASIC Timer [0x%x]\n", bus_r(ASIC_CTRL_REG))); @@ -2095,14 +2308,14 @@ int setReadoutSpeed(int val) { uint32_t config = CONFIG_FULL_SPEED_40MHZ_VAL; switch (val) { - + // tODO: calculate values for chip v1.2 case FULL_SPEED: if (isHardwareVersion_1_0()) { LOG(logERROR, ("Cannot set full speed. Should not be here\n")); return FAIL; } LOG(logINFO, ("Setting Full Speed (40 MHz):\n")); - if (getChipVersion() == 10) { + if (chipIndex == v1_0) { sampleAdcSpeed = SAMPLE_ADC_FULL_SPEED_CHIP10; adcPhase = ADC_PHASE_FULL_SPEED_CHIP10; dbitPhase = DBIT_PHASE_FULL_SPEED_CHIP10; @@ -2123,7 +2336,7 @@ int setReadoutSpeed(int val) { sampleAdcSpeed = SAMPLE_ADC_HALF_SPEED_BOARD2; adcPhase = ADC_PHASE_HALF_SPEED_BOARD2; dbitPhase = DBIT_PHASE_HALF_SPEED_BOARD2; - } else if (getChipVersion() == 10) { + } else if (chipIndex == v1_0) { adcOfst = ADC_OFST_HALF_SPEED_VAL_CHIP10; sampleAdcSpeed = SAMPLE_ADC_HALF_SPEED_CHIP10; adcPhase = ADC_PHASE_HALF_SPEED_CHIP10; @@ -2144,7 +2357,7 @@ int setReadoutSpeed(int val) { sampleAdcSpeed = SAMPLE_ADC_QUARTER_SPEED_BOARD2; adcPhase = ADC_PHASE_QUARTER_SPEED_BOARD2; dbitPhase = DBIT_PHASE_QUARTER_SPEED_BOARD2; - } else if (getChipVersion() == 10) { + } else if (chipIndex == v1_0) { adcOfst = ADC_OFST_QUARTER_SPEED_VAL_CHIP10; sampleAdcSpeed = SAMPLE_ADC_QUARTER_SPEED_CHIP10; adcPhase = ADC_PHASE_QUARTER_SPEED_CHIP10; @@ -2490,7 +2703,7 @@ void disableCurrentSource() { LOG(logINFO, ("Disabling Current Source\n")); // set default values for current source first - if (getChipVersion() == 11) { + if (hasCurrentSource64BitSelectionFeature()) { LOG(logINFO, ("\tSetting default values for selection\n")) bus_w(CRRNT_SRC_COL_LSB_REG, BIT32_MASK); bus_w(CRRNT_SRC_COL_MSB_REG, BIT32_MASK); @@ -2504,15 +2717,8 @@ void disableCurrentSource() { void enableCurrentSource(int fix, uint64_t select, int normal) { disableCurrentSource(); - - if (getChipVersion() == 11) { - LOG(logINFO, ("Enabling current source [fix:%d, select:0x%lx]\n", fix, - (long unsigned int)select)); - } else { - LOG(logINFO, - ("Enabling current source [fix:%d, select:%ld, normal:%d]\n", fix, - (long int)select, normal)); - } + LOG(logINFO, ("Enabling current source [fix:%d, select:0x%lx, normal:%d]\n", + fix, (long unsigned int)select, normal)); // fix if (fix) { LOG(logINFO, ("\tEnabling fix\n")); @@ -2521,29 +2727,39 @@ void enableCurrentSource(int fix, uint64_t select, int normal) { LOG(logINFO, ("\tDisabling fix\n")); bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_CRRNT_SRC_CLMN_FIX_MSK); } - if (getChipVersion() == 10) { - // select + + // select (not 64 bits) + if (!hasCurrentSource64BitSelectionFeature()) { LOG(logINFO, ("\tSetting selection to %ld\n", (long int)select)); bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_CRRNT_SRC_CLMN_SLCT_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | ((select << DAQ_CRRNT_SRC_CLMN_SLCT_OFST) & DAQ_CRRNT_SRC_CLMN_SLCT_MSK)); - } else { - // select - // invert select first - uint64_t tmp = select; - uint64_t inverted = 0; - for (int i = 0; i != 64; ++i) { - // get each bit from LSB side - uint64_t bit = (tmp >> i) & 0x1; - // push the bit into MSB side - inverted |= (bit << (63 - i)); - } - LOG(logINFO, ("\tSetting selection to 0x%lx (inverted from 0x%lx)\n", - (long unsigned int)inverted, (long unsigned int)select)); - set64BitReg(inverted, CRRNT_SRC_COL_LSB_REG, CRRNT_SRC_COL_MSB_REG); + } + // select (64 bits) + else { + uint64_t retval = 0; + // reverse bits select first + if (hasCurrentSourceReverseBitsSelectionFeature()) { + uint64_t tmp = select; + for (int i = 0; i != 64; ++i) { + // get each bit from LSB side + uint64_t bit = (tmp >> i) & 0x1; + // push the bit into MSB side + retval |= (bit << (63 - i)); + } + } else { + retval = select; + } + + LOG(logINFO, ("\tSetting selection to 0x%lx (inverted from 0x%lx)\n", + (long unsigned int)retval, (long unsigned int)select)); + set64BitReg(retval, CRRNT_SRC_COL_LSB_REG, CRRNT_SRC_COL_MSB_REG); + } + + if (hasCurrentSourceNormalFeature()) { // normal if (normal) { LOG(logINFO, ("\tEnabling normal\n")) @@ -2555,6 +2771,7 @@ void enableCurrentSource(int fix, uint64_t select, int normal) { bus_r(CONFIG_V11_REG) | CONFIG_V11_CRRNT_SRC_LOW_MSK); } } + // validating before enabling current source if (getFixCurrentSource() != fix || getSelectCurrentSource() != select) { LOG(logERROR, @@ -2582,7 +2799,7 @@ int getFixCurrentSource() { } int getNormalCurrentSource() { - if (getChipVersion() == 11) { + if (hasCurrentSourceNormalFeature()) { int low = ((bus_r(CONFIG_V11_STATUS_REG) & CONFIG_V11_STATUS_CRRNT_SRC_LOW_MSK) >> CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST); @@ -2592,23 +2809,27 @@ int getNormalCurrentSource() { } uint64_t getSelectCurrentSource() { - if (getChipVersion() == 10) { + if (!hasCurrentSourceNormalFeature()) { return ((bus_r(DAQ_REG) & DAQ_CRRNT_SRC_CLMN_SLCT_MSK) >> DAQ_CRRNT_SRC_CLMN_SLCT_OFST); } else { // invert the select - uint64_t retval = + uint64_t regval = get64BitReg(CRRNT_SRC_COL_LSB_REG, CRRNT_SRC_COL_MSB_REG); - uint64_t tmp = retval; - uint64_t inverted = 0; - for (int i = 0; i != 64; ++i) { - // get each bit from LSB side - uint64_t bit = (tmp >> i) & 0x1; - // push the bit into MSB side - inverted |= (bit << (63 - i)); + uint64_t retval = regval; + if (hasCurrentSourceReverseBitsSelectionFeature()) { + uint64_t tmp = regval; + uint64_t inverted = 0; + for (int i = 0; i != 64; ++i) { + // get each bit from LSB side + uint64_t bit = (tmp >> i) & 0x1; + // push the bit into MSB side + inverted |= (bit << (63 - i)); + } + retval = inverted; } - return inverted; + return retval; } } diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h index b775ff0e1..4bf1e385d 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h @@ -57,8 +57,15 @@ void getHardwareVersion(char *version); u_int16_t getHardwareVersionNumber(); u_int16_t getHardwareSerialNumber(); int isHardwareVersion_1_0(); -int getChipVersion(); -void setChipVersion(int version); +int getChipVersionInFPGA(); +int findChipIndex(enum CHIPINDEX *ind, char *cval, char *mess); +int setChipVersionIntFromConfigFile(int val, + char *mess); // for backward compatibility +int setChipVersionStringFromConfigFile(char *cval, char *mess); +int setChipIndex(enum CHIPINDEX ind, char *mess); +int validateChipIndex(enum CHIPINDEX ind, char *mess); +void setChipIndexAllowedFeatures(); +int setChipVersionInFPGA(char *mess); u_int32_t getDetectorNumber(); int getModuleId(int *ret, char *mess); int updateModuleId(); @@ -89,8 +96,13 @@ void setADCInvertRegister(uint32_t val); uint32_t getADCInvertRegister(); // parameters - timer -int selectStoragecellStart(int pos); -int getMaxStoragecellStart(); +int getStorageCellStartFromStorageCellReg(); +void setStorageCellStartFromStorageCellReg(int pos); +int getStorageCellStartFromChipConfig(); +void setStorageCellStartFromChipConfig(int pos); +int getStorageCellStart(); +int setStorageCellStart(int pos); +int getMaxStorageCellStart(); int setNextFrameNumber(uint64_t value); int getNextFrameNumber(uint64_t *value); void setNumFrames(int64_t val); @@ -169,7 +181,15 @@ int setReadNRows(int value); int getReadNRows(); void initReadoutConfiguration(); int powerChip(int on); -int isChipConfigured(); +bool requireChipConfiguration(); +bool hasStorageCellsFeature(); +bool hasFilterResistorFeature(); +bool hasFilterCellsFeature(); +bool hasCurrentSourceNormalFeature(); +bool hasCurrentSource64BitSelectionFeature(); +bool hasCurrentSourceReverseBitsSelectionFeature(); +bool hasStorageCellStartInChipConfig(); +bool isChipConfigured(); void configureChip(); int autoCompDisable(int on); int setComparatorDisableTime(int64_t val); diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index cc2b0928b..580e3d295 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -5,8 +5,8 @@ #include "sls/sls_detector_defs.h" #define MIN_REQRD_VRSN_T_RD_API 0x171220 -#define REQRD_FRMWRE_VRSN_BOARD2 0x250209 // 1.0 pcb (version = 010) -#define REQRD_FRMWRE_VRSN 0x250208 // 2.0 pcb (version = 011) +#define REQRD_FRMWRE_VRSN_BOARD2 0x260814 // 1.0 pcb (version = 010) +#define REQRD_FRMWRE_VRSN 0x260813 // 2.0 pcb (version = 011) #define NUM_HARDWARE_VERSIONS (2) #define HARDWARE_VERSION_NUMBERS \ @@ -78,7 +78,7 @@ #define MAX_THRESHOLD_TEMP_VAL (127999) // millidegrees #define MAX_STORAGE_CELL_VAL (15) // 0xF #define MAX_STORAGE_CELL_CHIP11_VAL (3) -#define MAX_STORAGE_CELL_DLY_NS_VAL (ASIC_CTRL_EXPSRE_TMR_MAX_VAL) +#define MAX_STORAGE_CELL_DLY_NS_VAL (STORAGE_CELL_EXPSRE_TMR_MAX_VAL) #define ACQ_TIME_MIN_CLOCK (2) #define ASIC_FILTER_MAX_RES_VALUE (1) #define MAX_SELECT_CHIP10_VAL (63) @@ -211,6 +211,22 @@ enum DACINDEX { 420 /* J_VREF_COMP */ \ }; +enum CHIPINDEX { + v1_0, + v1_1, + v1_2_NORMAL, + v1_2_LOW_NOISE, + v1_2_HDR, + v1_3_BURST_MODE, + NUM_CHIP_INDICES +}; + +#define CHIP_VALS {10, 11, 120, 121, 122, 13}; +#define CHIP_VALS_HELP "10, 11, 120, 121, 122, 13" +#define CHIP_NAMES \ + "v1.0", "v1.1", "v1.2 Normal", "v1.2 Low Noise", "v1.2 HDR", \ + "v1.3 Burst Mode" + enum MASTERINDEX { MASTER_HARDWARE, OW_MASTER, OW_SLAVE }; #define MASTER_NAMES "hardware", "master", "slave" diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 7e5521aed..5f8617afa 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -1859,108 +1859,103 @@ int acquire(int blocking, int file_des) { else #endif #if defined(JUNGFRAUD) - // chipv1.1 has to be configured before acquisition - if (getChipVersion() == 11 && !isChipConfigured()) { - ret = FAIL; - strcpy(mess, - "Could not start acquisition. Chip is not configured. " - "Power it on to configure it.\n"); - LOG(logERROR, (mess)); - } else + if (requireChipConfiguration() && !isChipConfigured()) { + ret = FAIL; + strcpy(mess, "Could not start acquisition. Chip is not configured. " + "Power it on to configure it.\n"); + LOG(logERROR, (mess)); + } else #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) - if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == ANALOG_ONLY) && - (getNumAnalogSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of analog " - "samples: %d.\n", - getNumAnalogSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == DIGITAL_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumDigitalSamples() <= 0)) { - ret = FAIL; - sprintf( - mess, + if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == ANALOG_ONLY) && + (getNumAnalogSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of analog " + "samples: %d.\n", + getNumAnalogSamples()); + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == DIGITAL_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumDigitalSamples() <= 0)) { + ret = FAIL; + sprintf(mess, "Could not start acquisition. Invalid number of digital " "samples: %d.\n", getNumDigitalSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == TRANSCEIVER_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumTransceiverSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of " - "transceiver " - "samples: %d.\n", - getNumTransceiverSamples()); - LOG(logERROR, (mess)); - } else + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == TRANSCEIVER_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumTransceiverSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of " + "transceiver " + "samples: %d.\n", + getNumTransceiverSamples()); + LOG(logERROR, (mess)); + } else #endif #ifdef EIGERD - // check for hardware mac and hardware ip - if (udpDetails[0].srcmac != getDetectorMAC()) { - ret = FAIL; - uint64_t sourcemac = getDetectorMAC(); - char src_mac[MAC_ADDRESS_SIZE]; - getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); - sprintf(mess, - "Invalid udp source mac address for this detector. " - "Must be " - "same as hardware detector mac address %s\n", - src_mac); - LOG(logERROR, (mess)); - } else if (!enableTenGigabitEthernet(GET_FLAG) && - (udpDetails[0].srcip != getDetectorIP())) { - ret = FAIL; - uint32_t sourceip = getDetectorIP(); - char src_ip[INET_ADDRSTRLEN]; - getIpAddressinString(src_ip, sourceip); - sprintf( - mess, + // check for hardware mac and hardware ip + if (udpDetails[0].srcmac != getDetectorMAC()) { + ret = FAIL; + uint64_t sourcemac = getDetectorMAC(); + char src_mac[MAC_ADDRESS_SIZE]; + getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); + sprintf(mess, + "Invalid udp source mac address for this detector. " + "Must be " + "same as hardware detector mac address %s\n", + src_mac); + LOG(logERROR, (mess)); + } else if (!enableTenGigabitEthernet(GET_FLAG) && + (udpDetails[0].srcip != getDetectorIP())) { + ret = FAIL; + uint32_t sourceip = getDetectorIP(); + char src_ip[INET_ADDRSTRLEN]; + getIpAddressinString(src_ip, sourceip); + sprintf(mess, "Invalid udp source ip address for this detector. Must " "be " "same as hardware detector ip address %s in 1G readout " "mode \n", src_ip); - LOG(logERROR, (mess)); - } else + LOG(logERROR, (mess)); + } else #endif - if (configured == FAIL) { + if (configured == FAIL) { + ret = FAIL; + strcpy(mess, "Could not start acquisition because "); + strcat(mess, configureMessage); + LOG(logERROR, (mess)); + } else if (sharedMemory_getScanStatus() == RUNNING) { + ret = FAIL; + strcpy(mess, "Could not start acquisition because a scan is " + "already running!\n"); + LOG(logERROR, (mess)); + } else { + memset(scanErrMessage, 0, MAX_STR_LENGTH); + sharedMemory_setScanStop(0); + sharedMemory_setScanStatus(IDLE); // if it was error + if (pthread_create(&pthread_tid, NULL, &start_state_machine, + &blocking)) { ret = FAIL; - strcpy(mess, "Could not start acquisition because "); - strcat(mess, configureMessage); - LOG(logERROR, (mess)); - } else if (sharedMemory_getScanStatus() == RUNNING) { - ret = FAIL; - strcpy(mess, - "Could not start acquisition because a scan is " - "already running!\n"); + strcpy(mess, "Could not start acquisition thread!\n"); LOG(logERROR, (mess)); } else { - memset(scanErrMessage, 0, MAX_STR_LENGTH); - sharedMemory_setScanStop(0); - sharedMemory_setScanStatus(IDLE); // if it was error - if (pthread_create(&pthread_tid, NULL, &start_state_machine, - &blocking)) { - ret = FAIL; - strcpy(mess, "Could not start acquisition thread!\n"); - LOG(logERROR, (mess)); - } else { - // wait for blocking always (scan or not) - // non blocking-no scan also wait (for error message) - // non blcoking-scan dont wait (there is - // scanErrorMessage) - if (blocking || !scan) { - pthread_join(pthread_tid, NULL); - } else - pthread_detach(pthread_tid); - } + // wait for blocking always (scan or not) + // non blocking-no scan also wait (for error message) + // non blcoking-scan dont wait (there is + // scanErrorMessage) + if (blocking || !scan) { + pthread_join(pthread_tid, NULL); + } else + pthread_detach(pthread_tid); } + } } return Server_SendResult(file_des, INT32, NULL, 0); } @@ -2282,15 +2277,15 @@ int set_num_additional_storage_cells(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (getChipVersion() == 11) { + if (!hasStorageCellsFeature()) { ret = FAIL; - sprintf(mess, - "Cannot set addl. number of storage cells for chip v1.1\n"); + sprintf(mess, "Cannot set addl. number of storage cells for this " + "chip version\n"); LOG(logERROR, (mess)); - } else if (arg > getMaxStoragecellStart()) { + } else if (arg > getMaxStorageCellStart()) { ret = FAIL; sprintf(mess, "Max Storage cell number should not exceed %d\n", - getMaxStoragecellStart()); + getMaxStorageCellStart()); LOG(logERROR, (mess)); } else { setNumAdditionalStorageCells(arg); @@ -2750,9 +2745,10 @@ int get_storage_cell_delay(int file_des) { functionNotImplemented(); #else // get only - if (getChipVersion() == 11) { + if (!hasStorageCellsFeature()) { ret = FAIL; - strcpy(mess, "Storage cell delay is not applicable for chipv 1.1\n"); + strcpy(mess, + "Storage cell delay is not applicable for this chip version\n"); LOG(logERROR, (mess)); } else { retval = getStorageCellDelay(); @@ -2778,10 +2774,11 @@ int set_storage_cell_delay(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (getChipVersion() == 11) { + if (!hasStorageCellsFeature()) { ret = FAIL; - strcpy(mess, - "Storage cell delay is not applicable for chipv 1.1\n"); + strcpy( + mess, + "Storage cell delay is not applicable for this chip version\n"); LOG(logERROR, (mess)); } else if (arg > MAX_STORAGE_CELL_DLY_NS_VAL) { ret = FAIL; @@ -4131,15 +4128,22 @@ int storage_cell_start(int file_des) { #else // set & get if ((arg == GET_FLAG) || (Server_VerifyLock() == OK)) { - if (arg > getMaxStoragecellStart()) { + if (arg > getMaxStorageCellStart()) { ret = FAIL; sprintf(mess, "Max Storage cell number should not exceed %d\n", - getMaxStoragecellStart()); + getMaxStorageCellStart()); LOG(logERROR, (mess)); } else { - retval = selectStoragecellStart(arg); - LOG(logDEBUG1, ("Storage cell start: %d\n", retval)); - validate(&ret, mess, arg, retval, "set storage cell start", DEC); + if (arg >= 0) { + ret = setStorageCellStart(arg); + if (ret == FAIL) { + strcpy(mess, "Could not set storage cell start\n"); + LOG(logERROR, (mess)); + } + } else { + retval = getStorageCellStart(); + LOG(logDEBUG1, ("Storage cell start: %d\n", retval)); + } } } #endif @@ -6734,17 +6738,20 @@ int set_current_source(int file_des) { strcpy(mess, "Could not enable/disable current source. Enable can " "be 0 or 1 only.\n"); LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); } // disable - else if (enable == 0 && (fix != -1 || normal != -1)) { - ret = FAIL; - strcpy( - mess, - "Could not disable current source. Requires no parameters.\n"); - LOG(logERROR, (mess)); + if (enable == 0) { + if (fix != -1 || normal != -1) { + ret = FAIL; + strcpy(mess, "Could not disable current source. Requires no " + "parameters.\n"); + LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); + } } // enable - else if (enable == 1) { + else { #ifdef GOTTHARD2D // no parameters allowed if (fix != -1 || normal != -1) { @@ -6752,65 +6759,60 @@ int set_current_source(int file_des) { strcpy(mess, "Could not enable current source. Fix and normal " "are invalid parameters for this detector.\n"); LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); } #else - int chipVersion = getChipVersion(); - if (ret == OK) { - if (chipVersion == 11) { - // require both - if ((fix != 0 && fix != 1) || - (normal != 0 && normal != 1)) { - ret = FAIL; - strcpy(mess, "Could not enable current source. Invalid " - "or insufficient parameters (fix or " - "normal). or Options: 0 or 1.\n"); - LOG(logERROR, (mess)); - } - } - // chipv1.0 - else { - // require only fix - if (fix != 0 && fix != 1) { - ret = FAIL; - strcpy(mess, - "Could not enable current source. Invalid value " - "for parameter (fix). Options: 0 or 1.\n"); - LOG(logERROR, (mess)); - } else if (normal != -1) { - ret = FAIL; - strcpy(mess, "Could not enable current source. Invalid " - "parmaeter (normal). Require only fix and " - "select for chipv1.0.\n"); - LOG(logERROR, (mess)); - } - // select can only be 0-63 - else if (select > MAX_SELECT_CHIP10_VAL) { - ret = FAIL; - strcpy(mess, - "Could not enable current source. Invalid value " - "for parameter (select). Options: 0-63.\n"); - LOG(logERROR, (mess)); - } + // fix + if (fix != 0 && fix != 1) { + ret = FAIL; + strcpy(mess, "Could not enable current source. Invalid value " + "for parameter (fix). Options: 0 or 1.\n"); + LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); + } + + // normal + if (hasCurrentSourceNormalFeature()) { + if (normal != 0 && normal != 1) { + ret = FAIL; + strcpy(mess, + "Could not enable current source. Invalid value for " + "parameter (normal). Options: 0 or 1.\n"); + LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); } + } else if (normal != -1) { + ret = FAIL; + strcpy(mess, + "Could not enable current source. Invalid parameter " + "(normal). Not supported for this chip version.\n"); + LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); + } + + // select (only 0-63) + if (!hasCurrentSource64BitSelectionFeature() && + select > MAX_SELECT_CHIP10_VAL) { + ret = FAIL; + strcpy(mess, "Could not enable current source. Invalid value " + "for parameter (select). Options: 0-63.\n"); + LOG(logERROR, (mess)); + return Server_SendResult(file_des, INT32, NULL, 0); } #endif } - if (ret == OK) { #if defined(JUNGFRAUD) - if (enable == 0) { - disableCurrentSource(); - } else { - enableCurrentSource(fix, select, normal); - } + if (enable == 0) + disableCurrentSource(); + else + enableCurrentSource(fix, select, normal); #else - setCurrentSource(enable); + setCurrentSource(enable); #endif - int retval = getCurrentSource(); - LOG(logDEBUG1, ("current source enable retval: %u\n", retval)); - validate(&ret, mess, enable, retval, "set current source enable", - DEC); - } + int retval = getCurrentSource(); + LOG(logDEBUG1, ("current source enable retval: %u\n", retval)); + validate(&ret, mess, enable, retval, "set current source enable", DEC); } #endif return Server_SendResult(file_des, INT32, NULL, 0); @@ -7923,10 +7925,10 @@ int get_filter_resistor(int file_des) { #else // get only #if defined(JUNGFRAUD) - if (getChipVersion() == 10) { + if (!hasFilterResistorFeature()) { ret = FAIL; - strcpy(mess, "Could not get filter cell. Not available for this chip " - "version 1.0.\n"); + strcpy(mess, "Could not get filter resistor. Not available for this " + "chip version.\n"); LOG(logERROR, (mess)); } #endif @@ -7962,10 +7964,11 @@ int set_filter_resistor(int file_des) { LOG(logERROR, (mess)); } #if defined(JUNGFRAUD) - else if (getChipVersion() == 10) { + else if (!hasFilterResistorFeature()) { ret = FAIL; - strcpy(mess, "Could not set filter cell. Not available for this " - "chip version 1.0.\n"); + strcpy(mess, + "Could not set filter resistor. Not available for this " + "chip version.\n"); LOG(logERROR, (mess)); } #endif @@ -8701,7 +8704,7 @@ int get_chip_version(int file_des) { #if !defined(JUNGFRAUD) functionNotImplemented(); #else - retval = getChipVersion(); + retval = getChipVersionInFPGA(); #endif LOG(logDEBUG1, ("chip version retval: %d\n", retval)); return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); @@ -8981,11 +8984,10 @@ int get_num_filter_cells(int file_des) { functionNotImplemented(); #else // get only - // only for chipv1.1 - if (getChipVersion() == 10) { + if (!hasFilterCellsFeature()) { ret = FAIL; - strcpy(mess, "Could not get number of filter cells. Only available for " - "chip version 1.1\n"); + strcpy(mess, "Could not get number of filter cells. Not available for " + "this chip version.\n"); LOG(logERROR, (mess)); } else { retval = getNumberOfFilterCells(); @@ -9018,13 +9020,10 @@ int set_num_filter_cells(int file_des) { "0 - %d\n", arg, MAX_FILTER_CELL_VAL); LOG(logERROR, (mess)); - } - // only for chipv1.1 - else if (getChipVersion() == 10) { + } else if (!hasFilterCellsFeature()) { ret = FAIL; - strcpy(mess, - "Could not set number of filter cells. Only available for " - "chip version 1.1\n"); + strcpy(mess, "Could not set number of filter cells. Not available " + "for this chip version.\n"); LOG(logERROR, (mess)); } else { setNumberOfFilterCells(arg); diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index 87ca6ad0b..6b84ffff1 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -1969,7 +1969,7 @@ rx_threads: chipversion: inherit_actions: GET_COMMAND - help: "\n\t[Jungfrau] Returns chip version. Can be 1.0 or 1.1" + help: "\n\t[Jungfrau] Returns chip version. Can be 1.0, 1.1 or 1.2" actions: GET: function: getChipVersion diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp index 629757728..acfc88521 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp @@ -285,8 +285,9 @@ TEST_CASE("extrastoragecells", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { - // chip version 1.0 - if (det.getChipVersion().squash() * 10 == 10) { + auto chipVersion = det.getChipVersion().squash() * 10; + // chip version 1.0 and 1.2 + if (chipVersion == 10 || chipVersion == 12) { auto prev_val = det.getNumberOfAdditionalStorageCells().tsquash( "inconsistent #additional storage cells to test"); { @@ -373,8 +374,9 @@ TEST_CASE("storagecell_delay", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { - // chip version 1.0 - if (det.getChipVersion().squash() * 10 == 10) { + // chip version 1.0 and 1.2 + auto chipVersion = det.getChipVersion().squash() * 10; + if (chipVersion == 10 || chipVersion == 12) { auto prev_val = det.getStorageCellDelay(); { std::ostringstream oss; @@ -491,7 +493,7 @@ TEST_CASE("filtercells", "[.detectorintegration]") { det.setNumberOfFilterCells(prev_val[i], {i}); } } - // chip version 1.0 + // chip version 1.0 and 1.2 else { // cannot set/get filter cell REQUIRE_THROWS(caller.call("filtercells", {"1"}, -1, PUT)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index bc6122f0a..aa3df3402 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -1694,13 +1694,13 @@ TEST_CASE("filterresistor", "[.detectorintegration]") { auto det_type = det.getDetectorType().squash(); // only for chipv1.1 - bool chip11 = false; - if (det_type == defs::JUNGFRAU && - det.getChipVersion().squash() * 10 == 11) { - chip11 = true; + bool hasFeature = false; + if (det_type == defs::JUNGFRAU) { + auto chipVersion = det.getChipVersion().squash() * 10; + hasFeature = (chipVersion == 11 || chipVersion == 12); } - if (det_type == defs::GOTTHARD2 || chip11) { + if (det_type == defs::GOTTHARD2 || hasFeature) { auto prev_val = det.getFilterResistor(); { std::ostringstream oss; @@ -1910,7 +1910,7 @@ TEST_CASE("currentsource", "[.detectorintegration]") { "currentsource [enabled, nofix, 63]\n"); } } - // chipv1.1 + // chipv1.1 abd chip v1.2 else { REQUIRE_THROWS(caller.call("currentsource", {"1"}, -1, PUT)); REQUIRE_THROWS( diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 03fa8b555..489e4b038 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -8,6 +8,6 @@ #define APIMOENCH "0.0.0 0x260424" #define APIEIGER "0.0.0 0x260807" #define APIXILINXCTB "0.0.0 0x260813" -#define APIJUNGFRAU "0.0.0 0x260424" +#define APIJUNGFRAU "0.0.0 0x260814" #define APIMYTHEN3 "0.0.0 0x260506" #define APIMATTERHORN "0.0.0 0x260529" From ed6024c0267afc3f7816f433132bb32997e8f911 Mon Sep 17 00:00:00 2001 From: Leonid Lunin Date: Fri, 14 Aug 2026 14:06:37 +0200 Subject: [PATCH 04/21] Use svg images in docs, fix typos (#1487) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * replaced png images with svg * fixed docs typos * fix filename * fix image references, filename in index * fixed drawio svg export, upd drawio plots --------- Co-authored-by: Dhanya Thattil Co-authored-by: Erik Fröjdh --- docs/CMakeLists.txt | 2 +- docs/images_src/detector_data_format.drawio | 1818 +++++++++-------- .../system_communication_architecture.drawio | 1013 ++++----- docs/src/Testing.rst | 4 +- docs/src/configcommands.rst | 26 +- docs/src/consuming.rst | 2 +- docs/src/dataformat.rst | 64 +- docs/src/examples.rst | 2 +- docs/src/fileformat.rst | 2 +- docs/src/firmware.rst | 14 +- docs/src/images/Client_architecture.png | Bin 113572 -> 0 bytes docs/src/images/Client_architecture.svg | 3 + docs/src/images/Client_module_commands.png | Bin 46378 -> 0 bytes docs/src/images/Client_module_commands.svg | 3 + docs/src/images/Client_receiver_commands.png | Bin 43598 -> 0 bytes docs/src/images/Client_receiver_commands.svg | 3 + docs/src/images/Eiger_bottom_1.png | Bin 33980 -> 0 bytes docs/src/images/Eiger_bottom_1.svg | 3 + docs/src/images/Eiger_bottom_2.png | Bin 37222 -> 0 bytes docs/src/images/Eiger_bottom_2.svg | 3 + docs/src/images/Eiger_bottom_3.png | Bin 37009 -> 0 bytes docs/src/images/Eiger_bottom_3.svg | 3 + docs/src/images/Eiger_bottom_4.png | Bin 34597 -> 0 bytes docs/src/images/Eiger_bottom_4.svg | 3 + docs/src/images/Eiger_module.png | Bin 120352 -> 0 bytes docs/src/images/Eiger_module.svg | 3 + docs/src/images/Eiger_quad.png | Bin 36130 -> 0 bytes docs/src/images/Eiger_quad.svg | 3 + docs/src/images/Eiger_read_rows.png | Bin 98697 -> 0 bytes docs/src/images/Eiger_read_rows.svg | 3 + docs/src/images/Gotthard2_module.png | Bin 48183 -> 0 bytes docs/src/images/Gotthard2_module.svg | 3 + docs/src/images/Jungfrau_module.png | Bin 43549 -> 0 bytes docs/src/images/Jungfrau_module.svg | 3 + docs/src/images/Jungfrau_read_rows.png | Bin 30029 -> 0 bytes docs/src/images/Jungfrau_read_rows.svg | 3 + docs/src/images/Jungfrau_two_port.png | Bin 29652 -> 0 bytes docs/src/images/Jungfrau_two_port.svg | 3 + docs/src/images/Module_architecture.png | Bin 74463 -> 0 bytes docs/src/images/Module_architecture.svg | 3 + docs/src/images/Module_receiver_commands.png | Bin 90298 -> 0 bytes docs/src/images/Module_receiver_commands.svg | 3 + docs/src/images/Moench_module.png | Bin 34670 -> 0 bytes docs/src/images/Moench_module.svg | 3 + docs/src/images/Moench_read_rows.png | Bin 23753 -> 0 bytes docs/src/images/Moench_read_rows.svg | 3 + docs/src/images/Moench_two_port.png | Bin 20409 -> 0 bytes docs/src/images/Moench_two_port.svg | 3 + docs/src/images/Mythen3_module.png | Bin 44315 -> 0 bytes docs/src/images/Mythen3_module.svg | 3 + docs/src/images/Receiver_architecture.png | Bin 68117 -> 0 bytes docs/src/images/Receiver_architecture.svg | 3 + .../Receiver_external_process_commands.png | Bin 115926 -> 0 bytes .../Receiver_external_process_commands.svg | 3 + docs/src/images/Receiver_gui_commands.png | Bin 97123 -> 0 bytes docs/src/images/Receiver_gui_commands.svg | 3 + docs/src/images/Soft_upgrade_components.png | Bin 31457 -> 0 bytes docs/src/images/Soft_upgrade_components.svg | 3 + .../System_communication_architecture.png | Bin 72722 -> 0 bytes .../System_communication_architecture.svg | 3 + docs/src/index.rst | 2 +- docs/src/installation.rst | 10 +- docs/src/masterfileattributes.rst | 12 +- docs/src/multidet.rst | 2 +- docs/src/pattern.rst | 2 +- docs/src/pyenums.rst | 4 +- docs/src/pyexamples.rst | 6 +- docs/src/pygettingstarted.rst | 2 +- ...rnGenerator.rst => pypatterngenerator.rst} | 0 docs/src/quick_start_guide.rst | 8 +- docs/src/serverupgrade.rst | 4 +- docs/src/slsreceiver.rst | 2 +- docs/src/slsreceiverheaderformat.rst | 2 +- docs/src/softwarearchitecture.rst | 24 +- docs/src/troubleshooting.rst | 18 +- docs/src/udpconfig.rst | 2 +- docs/src/virtualserver.rst | 4 +- 77 files changed, 1655 insertions(+), 1471 deletions(-) delete mode 100644 docs/src/images/Client_architecture.png create mode 100644 docs/src/images/Client_architecture.svg delete mode 100644 docs/src/images/Client_module_commands.png create mode 100644 docs/src/images/Client_module_commands.svg delete mode 100644 docs/src/images/Client_receiver_commands.png create mode 100644 docs/src/images/Client_receiver_commands.svg delete mode 100644 docs/src/images/Eiger_bottom_1.png create mode 100644 docs/src/images/Eiger_bottom_1.svg delete mode 100644 docs/src/images/Eiger_bottom_2.png create mode 100644 docs/src/images/Eiger_bottom_2.svg delete mode 100644 docs/src/images/Eiger_bottom_3.png create mode 100644 docs/src/images/Eiger_bottom_3.svg delete mode 100644 docs/src/images/Eiger_bottom_4.png create mode 100644 docs/src/images/Eiger_bottom_4.svg delete mode 100644 docs/src/images/Eiger_module.png create mode 100644 docs/src/images/Eiger_module.svg delete mode 100644 docs/src/images/Eiger_quad.png create mode 100644 docs/src/images/Eiger_quad.svg delete mode 100644 docs/src/images/Eiger_read_rows.png create mode 100644 docs/src/images/Eiger_read_rows.svg delete mode 100644 docs/src/images/Gotthard2_module.png create mode 100644 docs/src/images/Gotthard2_module.svg delete mode 100644 docs/src/images/Jungfrau_module.png create mode 100644 docs/src/images/Jungfrau_module.svg delete mode 100644 docs/src/images/Jungfrau_read_rows.png create mode 100644 docs/src/images/Jungfrau_read_rows.svg delete mode 100644 docs/src/images/Jungfrau_two_port.png create mode 100644 docs/src/images/Jungfrau_two_port.svg delete mode 100644 docs/src/images/Module_architecture.png create mode 100644 docs/src/images/Module_architecture.svg delete mode 100644 docs/src/images/Module_receiver_commands.png create mode 100644 docs/src/images/Module_receiver_commands.svg delete mode 100644 docs/src/images/Moench_module.png create mode 100644 docs/src/images/Moench_module.svg delete mode 100644 docs/src/images/Moench_read_rows.png create mode 100644 docs/src/images/Moench_read_rows.svg delete mode 100644 docs/src/images/Moench_two_port.png create mode 100644 docs/src/images/Moench_two_port.svg delete mode 100644 docs/src/images/Mythen3_module.png create mode 100644 docs/src/images/Mythen3_module.svg delete mode 100644 docs/src/images/Receiver_architecture.png create mode 100644 docs/src/images/Receiver_architecture.svg delete mode 100644 docs/src/images/Receiver_external_process_commands.png create mode 100644 docs/src/images/Receiver_external_process_commands.svg delete mode 100644 docs/src/images/Receiver_gui_commands.png create mode 100644 docs/src/images/Receiver_gui_commands.svg delete mode 100644 docs/src/images/Soft_upgrade_components.png create mode 100644 docs/src/images/Soft_upgrade_components.svg delete mode 100644 docs/src/images/System_communication_architecture.png create mode 100644 docs/src/images/System_communication_architecture.svg rename docs/src/{pyPatternGenerator.rst => pypatterngenerator.rst} (100%) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 25e313d7c..f79490cab 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -42,7 +42,7 @@ set(SPHINX_SOURCE_FILES src/pydetector.rst src/pyenums.rst src/pyexamples.rst - src/pyPatternGenerator.rst + src/pypatterngenerator.rst src/servers.rst src/multidet.rst src/receiver_api.rst diff --git a/docs/images_src/detector_data_format.drawio b/docs/images_src/detector_data_format.drawio index 1287bec75..5245aeaf5 100644 --- a/docs/images_src/detector_data_format.drawio +++ b/docs/images_src/detector_data_format.drawio @@ -1,1307 +1,1371 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images_src/system_communication_architecture.drawio b/docs/images_src/system_communication_architecture.drawio index 0e22ece27..5f3b7c845 100644 --- a/docs/images_src/system_communication_architecture.drawio +++ b/docs/images_src/system_communication_architecture.drawio @@ -1,785 +1,830 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/Testing.rst b/docs/src/Testing.rst index 99dd202da..b735e2d66 100644 --- a/docs/src/Testing.rst +++ b/docs/src/Testing.rst @@ -49,7 +49,7 @@ If you want to disable testing that involves a data file that require pc tuning .. note :: - Ensure that there are no spaces betweent the tags and no '.', else hardly any test will be matched. + Ensure that there are no spaces between the tags and no '.', else hardly any test will be matched. .. _python simulator script: @@ -104,7 +104,7 @@ To run only tests requiring virtual detectors use the following command: #in build python -m pytest -m detectorintegration ../python/tests/ -There is a helper test fixture in ``slsDetectorSoftware/python/tests/conftest.py`` called ``session_simulator`` that sets up virtual detectors and yields the test for all detectors. The set up is done for every test automatically. Note that the fixture persist over the entire session e.g. the fixture is setup one detector at a time and runs all tests using this fixture before cleaning up and moving on to the next detector. It saves time if the setup and cleanup is expensive. +There is a helper test fixture in ``slsDetectorSoftware/python/tests/conftest.py`` called ``session_simulator`` that sets up virtual detectors and yields the test for all detectors. The set up is done for every test automatically. Note that the fixture persists over the entire session e.g. the fixture is setup one detector at a time and runs all tests using this fixture before cleaning up and moving on to the next detector. It saves time if the setup and cleanup is expensive. Example usage: diff --git a/docs/src/configcommands.rst b/docs/src/configcommands.rst index dbc0eabd6..90dcce0cb 100644 --- a/docs/src/configcommands.rst +++ b/docs/src/configcommands.rst @@ -18,8 +18,8 @@ This package typically deals with two types of network interfaces: Client to Module ----------------- -.. figure:: images/Client_module_commands.png - :target: _images/Client_module_commands.png +.. figure:: images/Client_module_commands.svg + :target: _images/Client_module_commands.svg :width: 700px :align: center :alt: Client Module Commands @@ -60,8 +60,8 @@ Each physical module has its own unique IP address. As the IPs are already diffe Client to Receiver -------------------- -.. figure:: images/Client_receiver_commands.png - :target: _images/Client_receiver_commands.png +.. figure:: images/Client_receiver_commands.svg + :target: _images/Client_receiver_commands.svg :align: center :alt: Client Receiver Commands @@ -112,8 +112,8 @@ For example, using default TCP ports (1954, 1955): Module to Receiver ------------------- -.. figure:: images/Module_receiver_commands.png - :target: _images/Module_receiver_commands.png +.. figure:: images/Module_receiver_commands.svg + :target: _images/Module_receiver_commands.svg :align: center :alt: Module Receiver Commands @@ -139,9 +139,9 @@ Unlike TCP, the module (hardware) requires explicit configuration for sending im Info on where to send the image from the module to. -**UDP Desination IP** - The IP of the receiver PC's 10 GbE interface, usually found via ``ifconfig``. Command: `udp_dstip `_. For 1GbE interface and for this command, one can use 'auto' as an argument, which will pick up the IP from the `rx_hostname command `_. +**UDP Destination IP** - The IP of the receiver PC's 10 GbE interface, usually found via ``ifconfig``. Command: `udp_dstip `_. For 1GbE interface and for this command, one can use 'auto' as an argument, which will pick up the IP from the `rx_hostname command `_. -**UDP desintation MAC** - Also obtained from the interface using ``ifconfig``. For built-in receivers, the module configures this automatically from the ``UDP destination IP``. For custom receivers, it must be explicitly provided. Command: `udp_dstmac `_ +**UDP destination MAC** - Also obtained from the interface using ``ifconfig``. For built-in receivers, the module configures this automatically from the ``UDP destination IP``. For custom receivers, it must be explicitly provided. Command: `udp_dstmac `_ **UDP destination port** - Ensure uniqueness if multiple users share the interface. Command: `udp_dstport `_ @@ -173,13 +173,13 @@ As it is a one-way communication (module to receiver with no reply or acknowledg **UDP source port** - This is hardcoded in every module to the same value in the detector server and cannot be changed. -Note: If there is a second UDP port on the module, use 'udp_dstport2' or 'udp_dstip2'etc. See `here `_ for more detector specific info. +Note: If there is a second UDP port on the module, use 'udp_dstport2' or 'udp_dstip2' etc. See `here `_ for more detector specific info. Receiver to GUI ----------------- -.. figure:: images/Receiver_gui_commands.png - :target: _images/Receiver_gui_commands.png +.. figure:: images/Receiver_gui_commands.svg + :target: _images/Receiver_gui_commands.svg :align: center :alt: Receiver GUI Commands @@ -216,8 +216,8 @@ Enabling the GUI automatically streams images from the receiver via ZMQ sockets. Receiver to External Processing -------------------------------- -.. figure:: images/Receiver_external_process_commands.png - :target: _images/Receiver_external_process_commands.png +.. figure:: images/Receiver_external_process_commands.svg + :target: _images/Receiver_external_process_commands.svg :align: center :alt: Click to zoom diff --git a/docs/src/consuming.rst b/docs/src/consuming.rst index 02d23608c..c1190798e 100644 --- a/docs/src/consuming.rst +++ b/docs/src/consuming.rst @@ -81,7 +81,7 @@ The only difference is that you point CMake to $CONDA_PREFIX cmake ../path/to/your/source -DCMAKE_PREFIX_PATH=$CONDA_PREFIX make -Depending on your system compiler you might also have to install gxx_linux-64 to compiled. +Depending on your system compiler you might also have to install gxx_linux-64 to compile. No tools minimal approach ----------------------------- diff --git a/docs/src/dataformat.rst b/docs/src/dataformat.rst index a8c2f0991..e9d9f773d 100644 --- a/docs/src/dataformat.rst +++ b/docs/src/dataformat.rst @@ -11,8 +11,8 @@ Jungfrau Single Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_module.png - :target: _images/Jungfrau_module.png +.. image:: images/Jungfrau_module.svg + :target: _images/Jungfrau_module.svg :width: 650px :align: center :alt: Jungfrau Module Single Port Configuration @@ -29,8 +29,8 @@ Total image size = 524,288 bytes Double Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_two_port.png - :target: _images/Jungfrau_two_port.png +.. image:: images/Jungfrau_two_port.svg + :target: _images/Jungfrau_two_port.svg :width: 500px :align: center :alt: Jungfrau Module Two Port Configuration @@ -51,8 +51,8 @@ Image size per UDP port or File = 262,144 bytes Read Partial Rows ^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_read_rows.png - :target: _images/Jungfrau_read_rows.png +.. image:: images/Jungfrau_read_rows.svg + :target: _images/Jungfrau_read_rows.svg :width: 550px :align: center :alt: Jungfrau Module Read Partial Rows Configuration @@ -74,8 +74,8 @@ Moench Single Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_module.png - :target: _images/Moench_module.png +.. image:: images/Moench_module.svg + :target: _images/Moench_module.svg :width: 550px :align: center :alt: Moench Module Single Port Configuration @@ -91,8 +91,8 @@ Total image size = 320,000 bytes Double Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_two_port.png - :target: _images/Moench_two_port.png +.. image:: images/Moench_two_port.svg + :target: _images/Moench_two_port.svg :width: 400px :align: center :alt: Moench Module Two Port Configuration @@ -113,8 +113,8 @@ Image size per UDP port or File = 160,000 bytes Read Partial Rows ^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_read_rows.png - :target: _images/Moench_read_rows.png +.. image:: images/Moench_read_rows.svg + :target: _images/Moench_read_rows.svg :width: 400px :align: center :alt: Moench Module Read Partial Rows Configuration @@ -135,8 +135,8 @@ Eiger Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Eiger_module.png - :target: _images/Eiger_module.png +.. image:: images/Eiger_module.svg + :target: _images/Eiger_module.svg :width: 350px :align: center :alt: Eiger Module Default Configuration @@ -157,8 +157,8 @@ The myth, the legend, the bottom ports: Demystifying them ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. figure:: images/Eiger_bottom_1.png - :target: _images/Eiger_bottom_1.png +.. figure:: images/Eiger_bottom_1.svg + :target: _images/Eiger_bottom_1.svg :width: 350px :align: center :alt: Eiger Bottom as Firmware gets it @@ -166,8 +166,8 @@ The myth, the legend, the bottom ports: Demystifying them How the firmware gets the images -.. figure:: images/Eiger_bottom_2.png - :target: _images/Eiger_bottom_2.png +.. figure:: images/Eiger_bottom_2.svg + :target: _images/Eiger_bottom_2.svg :width: 350px :align: center :alt: Eiger Bottom after the firmware flips it horizontally @@ -175,8 +175,8 @@ The myth, the legend, the bottom ports: Demystifying them After the firmware flips it horizontally -.. figure:: images/Eiger_bottom_3.png - :target: _images/Eiger_bottom_3.png +.. figure:: images/Eiger_bottom_3.svg + :target: _images/Eiger_bottom_3.svg :width: 350px :align: center :alt: After the software swaps the udp ports @@ -184,8 +184,8 @@ The myth, the legend, the bottom ports: Demystifying them After the software swaps the udp ports -.. figure:: images/Eiger_bottom_4.png - :target: _images/Eiger_bottom_4.png +.. figure:: images/Eiger_bottom_4.svg + :target: _images/Eiger_bottom_4.svg :width: 400px :align: center :alt: After the gui has flipped the bottom vertically @@ -204,7 +204,7 @@ The pixel width can be configured to 4, 8, 16 (default) or 32 bits using the com Flip rows ^^^^^^^^^^ -One can use the command `fliprows `_ to flip the rows vertically for the bottom or top half module. It is sent out to the reciever, but does not flip rows in the output file itself, but rather streams out this info via the json header and thus instructs the GUI to display them correctly. +One can use the command `fliprows `_ to flip the rows vertically for the bottom or top half module. It is sent out to the receiver, but does not flip rows in the output file itself, but rather streams out this info via the json header and thus instructs the GUI to display them correctly. 1GbE/ 10GbE Interfaces ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -223,8 +223,8 @@ Note: Only the activated ports will write data as it does not make sense to writ **Read Partial Rows**: The number of image rows per port can be adjusted using the `readnrows `_ command. By default, 256 rows are read, but a smaller value centers the readout vertically (e.g., 8 rows reads 4 above and 4 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values depend on dynamic range and 10GbE enable. -.. image:: images/Eiger_read_rows.png - :target: _images/Eiger_read_rows.png +.. image:: images/Eiger_read_rows.svg + :target: _images/Eiger_read_rows.svg :width: 400px :align: center :alt: Eiger Module Read Partial Rows Configuration @@ -247,8 +247,8 @@ As with any standard half-module, it includes one control TCP port (with a hostn In this configuration, the fliprows command cannot be used to flip the entire half-module. Instead, the receiver automatically includes row-flipping information only for the second UDP port in the JSON header, so the GUI can apply the correct orientation during display -.. image:: images/Eiger_quad.png - :target: _images/Eiger_quad.png +.. image:: images/Eiger_quad.svg + :target: _images/Eiger_quad.svg :width: 300px :align: center :alt: Eiger Quad Configuration @@ -263,8 +263,8 @@ Mythen3 Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Mythen3_module.png - :target: _images/Mythen3_module.png +.. image:: images/Mythen3_module.svg + :target: _images/Mythen3_module.svg :align: center :alt: Mythen3 Module Default Configuration @@ -279,7 +279,7 @@ Image size = 15,360 bytes Counters ^^^^^^^^^^^ -If all 3 counters are enabeld, the frame size for each channel is multiplied by 3. The counters are stored consecutively per channel. One can disable one or more of the counters using the `counters `_ command. The frame size will then be reduced accordingly. +If all 3 counters are enabled, the frame size for each channel is multiplied by 3. The counters are stored consecutively per channel. One can disable one or more of the counters using the `counters `_ command. The frame size will then be reduced accordingly. Image size = 10,240 bytes - 10 chips (1 x 10 grid) @@ -306,8 +306,8 @@ Gotthard2 Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Gotthard2_module.png - :target: _images/Gotthard2_module.png +.. image:: images/Gotthard2_module.svg + :target: _images/Gotthard2_module.svg :align: center :alt: Gotthard2 Module Default Configuration diff --git a/docs/src/examples.rst b/docs/src/examples.rst index 65d734c8e..138f7bcf3 100644 --- a/docs/src/examples.rst +++ b/docs/src/examples.rst @@ -79,7 +79,7 @@ for communication over TCP. Most commands go on 1952 and only a few such as stop Using the return type sls::Result [e2] ----------------------------------------- -Since many our detectors have multiple modules we cannot return +Since many of our detectors have multiple modules we cannot return a single value when reading from the Detector. Hostname, Ip and also for example exposure time can differ between modules. diff --git a/docs/src/fileformat.rst b/docs/src/fileformat.rst index 4821d541a..d74a4f0b5 100644 --- a/docs/src/fileformat.rst +++ b/docs/src/fileformat.rst @@ -12,7 +12,7 @@ Every acquisition will create a master file and data files. An acquisition can have multiple data files for a single frame. The number of files is determined by the number of UDP ports per module and the number of modules. - * Every modules has its own receiver process. Every receiver process can have 1 or 2 UDP ports. + * Every module has its own receiver process. Every receiver process can have 1 or 2 UDP ports. * Each UDP port will create its own file. Therefore, each receiver can write 1 or 2 files. * So, for example a detector with 4 modules with 2 UDP ports each will create a total of 8 files with file names containing UDP port index **'_d0'** to **'_d7'**. diff --git a/docs/src/firmware.rst b/docs/src/firmware.rst index e2ad00df3..145611e57 100644 --- a/docs/src/firmware.rst +++ b/docs/src/firmware.rst @@ -18,7 +18,7 @@ Upgrade ^^^^^^^^ #. Tftp must be already installed on your pc to use the bcp script. -#. Copy new servers to the board. See :ref:`how to upgrade detector servers` for more detals. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files. +#. Copy new servers to the board. See :ref:`how to upgrade detector servers` for more details. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files. * This step is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore. @@ -119,7 +119,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to jungfrauDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -153,7 +153,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to mythen3DetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -187,7 +187,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to gotthard2DetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -238,7 +238,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to moenchDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -273,7 +273,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to ctbDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -295,7 +295,7 @@ Firmware Troubleshooting with blackfin 2. v5.x.x-rcx client after programming will not reboot the blackfin processor, if error occurred. -3. If a reboot occured with an incomplete firmware in flash, the blackfin will most likely not find the mtd3 drive. To see if this drive exists: +3. If a reboot occurred with an incomplete firmware in flash, the blackfin will most likely not find the mtd3 drive. To see if this drive exists: .. code-block:: bash diff --git a/docs/src/images/Client_architecture.png b/docs/src/images/Client_architecture.png deleted file mode 100644 index 17c7f2797594a55b27eb91c226d354269b2fd03c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113572 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⁢$90z5fw*9SB~HxJo;?6IfB@3Iee0Pk&0J2 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ⅇ8F$ga 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 diff --git a/docs/src/images/Client_architecture.svg b/docs/src/images/Client_architecture.svg new file mode 100644 index 000000000..abd7e4159 --- /dev/null +++ b/docs/src/images/Client_architecture.svg @@ -0,0 +1,3 @@ + + +
    <<class>> Module
    <<class>> Module
    <<class>> Module
    <<class>> Module
    <<class>> Module
    <<class>> Module
    <<class>> Module (s)
    <<class>> Module (s)
    C++ API
    C++ API
    Python API%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BCourier%20New%26quot%3B%26gt%3BC%2B%2B%20API%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3D%2377AADD%3BstrokeColor%3D%2377AADD%3BlabelPosition%3Dcenter%3BverticalLabelPosition%3Dmiddle%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BfontSize%3D17%3BgradientColor%3Dnone%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22-180%22%20y%3D%224998%22%20width%3D%22146%22%20height%3D%2284%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
    Python API%3CmxGr...
    CLI
    CLI
    Qt GUI
    Qt GUI
    <<class>> Detector
    <<class>> Detector
    slsDetectorPackage
    Client (C++17)
    slsDetectorPackage...
    CLIENT
    CLIENT
    Shared Memory(s)
    Shared Memory(s)
    Module 3
    Module 3
    Module 2
    Module 2
    Module 1
    Module 1
    Module (s)
    Module (s)
    Module 3
    Module 3
    Module 2
    Module 2
    Module 1
    Module 1
    Receiver (s)
    Receiver (s)
    \ No newline at end of file diff --git a/docs/src/images/Client_module_commands.png b/docs/src/images/Client_module_commands.png deleted file mode 100644 index e9b71c99ad48fce77f8a6baa8f1706d414ebe00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46378 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 Qhk)z3w4zk0gwfmo1DKlRd;kCd diff --git a/docs/src/images/Client_module_commands.svg b/docs/src/images/Client_module_commands.svg new file mode 100644 index 000000000..d12ca0615 --- /dev/null +++ b/docs/src/images/Client_module_commands.svg @@ -0,0 +1,3 @@ + + +
    TCP
    TCP
    Client
    Client
    TCP
    TCP
    Control
    Control
    Module
    1952 / 1953
    bchip101
    Module...
    port     = 1952
    stopport = 1953
    hostname = bchip101
    port     = 1952...
    Module
    1952 / 1953
    bchip100
    Module...
    port     = 1952
    stopport = 1953
    hostname = bchip100
    port     = 1952...
    \ No newline at end of file diff --git a/docs/src/images/Client_receiver_commands.png b/docs/src/images/Client_receiver_commands.png deleted file mode 100644 index b3221e1c5fba3c336a420753db39eed017fa1016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43598 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 eum6AjiTz)dzXD9| + +
    Client
    Client
    TCP
    TCP
    Control
    Control
    Receiver
    1955
    pc1234
    Receiver...
    rx_tcpport = 1955
    rx_hostname = pc1234
    rx_tcpport = 1955...
    Receiver
    1954
    pc1234
    Receiver...
    rx_tcpport = 1954
    rx_hostname = pc1234
    rx_tcpport = 1954...
    TCP
    TCP
    \ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_1.png b/docs/src/images/Eiger_bottom_1.png deleted file mode 100644 index c1b8b46172246a670d0d7b5b3bbc6445e8f9681e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33980 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 z zln(>tk=)uTVZ0RjZS08?mT`j+;pGRmSpdnwHqV-JJ6Nn20F7n@MT7lA*w2WFR3auZ zQ!|FiG{;HUL2d8)Jjo=W*-)$n?jmYV7mu+Y0du%4dblxqD<&h>0;+9*i7c>aZ}8za@VH0F{`w|eB1RYotLV!W8=pHwA2)y(^_H2w7W4ZiPeW2ZrqF6G(1(5C~VuHAr1N#lWrv)(QJ#ny2 z+#cGKihEQ&TSb{r1V9CRRVt+;V(Yn$ngx8sm}@~d%Rp(5qPZ9upI79$Jz5hA$Goq4 z&AW4Yjj!5{!=>r!crZnI+kW$*$sQYJGj-Sudik;#DAtpvhn>h{Ml6W>In+|06Ya_B zRJ4t&AI*Cs{~kIe(b5hs-FfXtWgYopnacUAa+?Wfy4KVH^_NUoE~6SAo`kmA^st&1 zT4~|OneX_3sUN@DDO&)`{?XB<;e(7=^SNYtdG7+4DXk(tsHwS7)?j4Y?!82?=WhsN zL|qQ11NYig}ZJ*Htk0k#$VF zM*B<~_v9J2hVzpJgQ{@r6owF%22Qy2qB6qXB zth>YnRZ_OK8ABki<^^xqj91l-M;=VfYcpG{p2xSjJg(zt^9gXjUul(^9gAG3i?}$2|L2Fmu<5n_pLpC3Wf;U#zdqF!rY>+scVkZ`5-Ver`q9+{`SmJ z6?t5KsYInA1=tw9cCCQMsAdNMy>OUJM`sba>Q*-wsUt!YZ+zbBp%yxr7>n&ik59xc*!1 ze`j3c9pSFI*+Lqf+>-bQb^IO$#vp$2~PNBC@6cS8@@QH+` zJkTMkH#NZh6M1m(z|~-J#g_=FvZ##idC%_~*`A7w?h?H?@`u4GRe8R$`y_O)gGQ<+`j8_F{slY zb;qbIylegK)B}Ejh{*z@VdQEI{&kMybYrDRDCQ0t(@Ii2w2F2~`#Mgj+NNrTQo)FJ zbWj`kpMB`pic1WJ4i@+8(-8BRVf`*=%I+^(t*Fmp+>yyl;kr(J5#A078ZUO*#}@BK zpoO0Dgd|%+4&y*$I^(|;%B^uJ!)45WO7&X#iGs9OICB4h!QrgX0mJ0&j|NDLzhCh4 z!tlFU+Fra1#>5Q&aX3qA^WkcAg8rX&r1IQSt!Ep}Qax$Oeoy$lQ1}s8rQmaOnq!&v z65ZdYRn4D+d~X2YhRmi6Ol0U%GzyTl*~Ha(g>((ozrcYu6^V2HuQ{o+MAB0g1X-p= zYxK+tasFce1~4 zg7}d;2w;PU_I7;M-Xm>+KC}p(1A5kVwseN6I&^d;x$(>R2>v^cs`+b+PR~S#7tBHx zySYaP-{B0CusM?CqQ|J z5Msu43&RJHW18Y+EeG*mtQa2M-wvUZw=a_10I~l087T{$ayJPAe!VUIaAU|YfH#&&!)EBo2Ddd2)L*59XbUXlLoMz};pZjO$+`n1-lYLYse zZIh?3*=!LnmXd|P@_#-wsNQWs@}Db9gdoD%{r`9WPjxW(hC%62l*bAva|S>k^3p0& Jl@g{u{tvu}?(YBq diff --git a/docs/src/images/Eiger_bottom_1.svg b/docs/src/images/Eiger_bottom_1.svg new file mode 100644 index 000000000..c724ed26c --- /dev/null +++ b/docs/src/images/Eiger_bottom_1.svg @@ -0,0 +1,3 @@ + + +
    UDP Port 1
    UDP...
    UDP Port 2
    UDP...
    1
    1
    3
    3
    2
    2
    4
    4
    \ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_2.png b/docs/src/images/Eiger_bottom_2.png deleted file mode 100644 index a96f12f4d311946842091503e7f12450bf49c5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37222 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 Pa4%bHN2@vuuY`XC!R`4w diff --git a/docs/src/images/Eiger_bottom_2.svg b/docs/src/images/Eiger_bottom_2.svg new file mode 100644 index 000000000..f9cf84dd6 --- /dev/null +++ b/docs/src/images/Eiger_bottom_2.svg @@ -0,0 +1,3 @@ + + +
    UDP Port 1
    UDP...
    UDP Port 2
    UDP...
    \ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_3.png b/docs/src/images/Eiger_bottom_3.png deleted file mode 100644 index d60ddb4f25acc0fa7d329365fa0a589450b78e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37009 zcmeFY^;?@!(=`gEh2q7bSc?>QFA|DV9Exjk4enapDehjNxD|)cpv9p;kr3S7UCzz( zocFxvPxyZLxVS=qyTC^do_ER$@5Ck5 zzBGcHP7n~@A;?O6`r?tb4|h+a(e&JYvRB{ANzchT+sxAZ%Xskl#kUu@FKF1QOnf-> z&d$azyE`B=Gsq^ShU~;h$R_>3MA@YBoy{=7?31k8O^!mL7 zn(Y65_J5EK%;mZAm|jD*T6GgVD|W!YeWGZoXwF|EuzC}s4JO@5;CjW(2f1#2s;bpQx*tAXD+?9(Uavs?^Vw#3z?70IwWYlK8YmQ+BCa7ebNcS2ZspE@ z*V>&<7_jvH-2V2fOZI|YSAVtsWYXzhY_Nxd9p%^5v2AvRhuC8MZ2tBW0RMMfuKCC? zRJj>@VNVT<7c4X}O=u=u8<_F$x`|!e4jrwuIo!Ct75oclejluL%8Dr}&X?3&(&Q_~ z*My>_#(!J;llOks)XyCU^7!`4=I;Zht`$j<`yhnVtQn8Lqpc|XyW35EA=(w~}UXUCdldS!oxvA1S0CPjI?>smY zS0`FVD7Z}PxcRjIf?}^#iW}$ayD9OoBSxZ+O2^}eacW8WyazMYJ8$DXUcU;_b6;sT zA#PRFi(9$4n%J-}s@-#4gq&fQGU@RhnEVLjTj=jRdcpvV?CCHgZE-;cxa4#;;)vtT zA$cV2FAp?bhTu2G`SAL;Rpn$5%5ZT_gtvFYKOW1lA>L#L)}ft?D5O!<4?g~`=(Eg) zCQyDCl$E0L@mX|`5Gvs-5yyx9`Sv&cX_b$!?;CL%lSh4)EZDmJ(|l7FRFV9fku-<` z`ChOY^00a6_#D$I{dT7exF5J9PHm^nH5yA*?t%Gs8g!`r)`6NAg@VZf?h`q~)ev)XiA zd6$3qwxh&ehsU$}B+TvimOI8(pDyTyC5o1Xq9l>wHXmv!HP zI)06A)>`aJP5Oa>T5AZ3yDxrbucBB~{nNe4jE@L>{8$?KwbTO_IO-c3hCGcSSS2MNdai4PF3F9e)zua*wN*xHRRy(stC6BihL>WAi!+E`NL|$AXR|B_Oc7b=G$#$rsVNI09TffnwLoRXD+7V+5yE$IK!q_2mMTK55Ji^d8>?fub zt$;nv_HP-1)A##-_$)~+3*MC{xgR_dcM4sy+^bL`D0FOHZ$|lJ{~jqnG}phmbUYxI z`;^b#mW1N&mn7t_g0_SMWae~5_2rTB;gd0tkXbCE$X~ExV^+*xW(S@3_+diNve`OSP3H z1JcFINFtH?rS^^vpWTQErn8kMY(sBST2Dlr@Nc}1xvO>WQ7?t+bjgL9_X>R;Zj^9l zjN2EzJpQ5bihj~SU36fJzrNQeBs5R`JL?)LV|>qHz<*_9&~c7|DjYkxS-{vyp)j+3 zY_Q?7_kPrsY%7Lz5jr~GA$~_6DVAEDEIK6zJep`46xiiiZJ#s~mcYHuw*6=*-nLRk zD^$C;17^TpJO|a3S*0;h0jGz0p|(rD1~CW1fA>QGgkx4r&khbAVSi({F!9`8uo5w@RZA@t7 z{fcaCuXd@Yz5F$;!-S z;`h#hMzPN42#t7}*vC$5iFx$4)h!|3yq%=9+L7#4z1MT`_T#gz8A~}{!IAAB2c2!+ zYonUgh_~^L%QkgplWHyw?EYohZdKF<^E_=W+8>vjJPnlo3#wp(iLA-SCTO7p=|$7@ z@^7E3Gk*{`tpmn2O~BnxinO0rQah1IF3vY>upNxm#WL1nWt9_B)Y|-B8SbKQ%WvBc}T}Tt;8^;t0<9v4z6LxibCtF7o}|L`2+5 z%x^mT9FMGXAJ5akn~`s2X~KJEbLj5-@-)J;=TI*c7%crukhqw5dlc0`fdi*<9!v>^yXrXsE;n^TUz=o#A&)B z0C6*rp{QOS*TOs6f-N0XzrSV^gw5#I9ct{+@Ji7&LtHw`L?p%jC$INUqCtO(plV89 z&>^Umt3h}zDw$>$-KhEU7w6ZxX3?qsD{LP}y_j9msW1>HyUP;T^>q9Y^kGR@GJXuT zr-2wGbY0}gBrmo4^;TTiJpO3iAxe<1J*ezHSsZrVg+%jj^mE5@Ycqv8-pdM)wejnnPme#- z*OeO9nSkE+>6T z8?t6iQ_aO@IyGN%7M?K)PTV-fH@g?(q28eJF2Nk;*fNQ!WaXsv5pD6sMah&OfzQVcU7LP*cX)Oq|%&{4tdPPHEY~K%D&1 zHRuU%m&5?=TRVQmwR?qcv&i|szXOSv(2Th=tHyo@+DQaBJKZN8x)zyjC06cA_7h$; zAHA_T0ydvhD`%b&y|5dv)Vm*jwJAP<2aVW9C{C0-|l=hru)?ZC}4^@WRlv0^mtW8}aPXioTcwKO~vahsXzwi00 zvVu6DN6p@G0F(M+TqzGF%3_PTrn-hmehh;!q8J=;GC2jWCSv1}_#82pwHS?vS)X;^ z`J+A(<2NsZ7GE^XXbCvC=$xucIO%tH<9pp7sDY27&eyOr#i>3EIk%Bby2Kb#KCxz0 zeO0&nvQ?cic~&IX$b~JbGJ*M!(JhZ0*2Q1RT1S@i$~GTxt_x{a(hNz!QcU)q$Ty1- z2;DwmbE!GFUu4R-%Imem3?tWxZnT?b28bGUJI$0Kycw%q zo{-~>Hky{4;RK}`P5f%gj9K@Bjo&;?JQ&%A6c5GPJKe@5#YUH?wO_ZNvvoeaB3~^> zQ+$pL@6u(!%_EdCx7}-JN4Cjkm*c6Gz&us4H3nE%(M~9%^L{7Z<{6|fGBfi%+Esc`iy@$&TaIO=LalPBg3R&?d^Uir&rc(9(qT2x6Prh z;N8g{UJM*U*d5?6jDeyve05Xrp4QOc+mmwtCO#qSbK}gyaQx;2_eIvmTxhQI(5`ol zZa?<5*T$-vc(;Hxx`tX7SKGub`65%h*A2;NBc(JSH(LFW$5vHbVcASt?RO|z-Dmny zh7!BHh_h@ulGhi}x(V%*Gap?zYFl0QqT@KO7ke7CB6WcJ-T3{q$1)o@xYHLAnd&&+ zuv>Q~9q-ZlY}mAx2?69s?&sGh{|jC3ctU^1Z?WoK))5ILmwj2avxWP1!mU}zh;>+X zJFv42sf_3ZEs<q2sOJA_7RnE@j=@Va)*-PR^<65dC3T(u87x|I7rxWhBI7{$V*z zu@j};3gL0j_3YBuW+W;zzB9F!jQ6L0PiGVmNvOQP7kTXShnA$|mLv^YuJMUl6>9;e zOwi)`vn-NtVXQPo(`uK;+sFn@<75<0*|tg35B3+l8w2sWEQywYX63?~(hma!@FhRx zGdE>;H??D@3QO*NFa9RkaGFwiv?j>rpCcpGqlD!j!w2?2(Z<3?MqbhS-mmx=5KKWg zrq5j#dg-$9Vd$#CGqZWh8M)lL|EsI&#~6brXY&4jOnq6)O^NBD4vUHNo}c}f6+YCw zLofVFJ_NrR3Mly9VKe;70P>iT-s5}m{l*Y7$-F}tjcwoAF`PxFDbjnrcSOeblo<^} z&iuU0W*?d?mxsH5*96^Rm}1Ti)Zk99J|O^>q7K%_CDV{*o6YHw9B%G?&j38#jFp}Kj#Y;8!b zm>HGb;BE1%Yt7{X`6EBvjX260DD7ceSz2D*9a&c1F<6G^(4W{**1c=PC5-;B_J-UQ zJvdHwi-3BLYP~ILPSv$Lc&vQq?bgRQ=Z5Nd2j+12u93oyhDNfy{?3zaf31zdesqJy zM)vG~O;bWTPRxnDOHR8YQH*P@ zPOc{8Ke}9+k{l#5T&B{^o(sT)9dPI~nfgKgaq^SNkZ5b>dvh!8XeeRn8s^1GX5x~W z-JBa(>qIKDPEIA6mh)HvNcw-?#8et!ft+*p_)==!b!j(3qMEe2oM=!R(`sdeh9k;R zfO56#_B4B;>EdArobY^ubsFyMRHa78=KRE4Cv3`A3uA_V|)bkBN z&!(F*aOTQntS+P};e=!20aPg^NlR~SA=yvls&HnutujG>@AE*q;tqB^FDJ6@ur@v6 zGZDM_Czrd?R6_Y4H`nxr^;vox)~V*}Vl!y|^Yj3ms_gvwnKTG~c>?N!hxETE+1QYbG@fl+f9%Vb*gkB}`kl z7B9^8UR60Xe{#oWWnyh$B=oY-%Btk~?P+s%gohojNTeD`#wz{Q{FS809gDA@ zPWC2!4pQj^d`pS+|KZA$k_54A4x883*SVm(_L6#bY#o;PZaI;NyQrtJ79d|C3YcD)cljS@r7*PboTQ+md*Ed`enejWSaM z|1{RO{LdA?O7e+pOByHv9xlK&&W@q1KC4$Bwp%d$>zw!RJS-f%z1C;*luDKz7Jh1z%DqAYd$JRjm54m7DLt?Kr zVKmLG@u-W7ve9uAeOy}rW)(bXQ)6<3IH1dL#=h>3(cpBKy{?D zj;8y}P7}%)@i)yJw{jY6we?4#lbV(X=LzFd?zXR}9SwXtg79L57us6__jprOG?o>0 z+fvbGYkJ8@h(lu$>BVu*-24<7Jm-2}QXz5wY7gb(_gfA5O3eL>az$)Qb~kFq`Ks7` z&2fY6x*YJyd&2TMD(tHRxQtC|YHF;0aXA}1IMaa}%2loZ^(jK5v6^9XMR2C5sB$R8 zIQl>b|7>?)5>!02lyPW2tV2(j2U`Ntk#%jY{Uoe-L21VIHc0>1xn3S@hIhwp4hy?& z&)&qO7kmouWw3c>wHws9a>pHXqqq^Y#kH>HyC+iHSJ^ji z;@$X2dWyKj+KQvNG;+(q+`_M2)<*TE@W~H`W~hK&Ax1Q#77%Ak+3AoRaG)@K{!UiQ z)Id31MwMs&*ZMLck2`C(3RdXXrXMxELzx&jIL^G>@s8`qJJ5E|z%;tH?|c6iWOF+c z<;Y7=B_GyuxbV@B<-5l`D{nl3+w=h9MMl5oJK!8MvuH#Orc7^ClrjFOEee}aG^BkK z8v|p_8NZoO+w#~vRtGPs^j?q-)#&_)Jk!$_xhPfgWrW9QDJnL$4~ly1;D6IpN1vuG zAKusI7|!hrhb8vlzgmd3WklN@$ISMi`Yc8Yn>2b85oWn7FmzJRw)U%Kz-j%@=^o(G zDu$f#Isf)#4`UzN^4>vfmASfNvNk(&-$LHZkiT7IycLYyR!u9I65)#Dh2+sao*kvB zp~WIj_2ld30yGmjNIOtPuFUD!Nr=bLrWQ*hpbQL9>_TCakqpY3t+8bV1ivoziW`n_ zGk6~pZp&Y<^ZB57%xCB}PLHj7<8Cw#*4?TOMzJ zH8Lay7k--eVw*g$qsxzZVzf~<^Am2WXbo#EXaHpSS9XO!XbtmD5bxg(zF4etH_?G5 z%ZkMlqbM1y*s9Gm_gW)svoMyIpEjG>yvo!hWbq&+;sUlQXwucImBJJTm-M|sE|b%6 zEINAuUu<+N7klyR(r~jstn;($BjX|b)&Q+8QiUKr>lviw!(dihje8oko(ckN?QZd- z22agz=TQ|(@>}9UH$|+6gnX6{FV?sC>GaCXSC(5S5e6%YtzOV53{mR zu;WOk_3T-F`v4gahIt~X7zj)&s)fa6B#_nVH@>ppGo})rwK7Nei098k{TuAAstXCN z>$0wLG5AfoO*&IZ9ua0`2^#FJnwe9sjoRC_FPTzHZsY|-mN!um(*>&P8FFS3VddEd zSUJ|k_5E=o=J<|6`Oce8lv~y9eJr|6Er9hTJz0N%yoF?ICP(#9RrE69n?`2SQeE-y zh;$Y4Vq-eHVy#qS4SmyRU|9799!U1^$M^dwJJaX{KxC!}N~-*17%Hsm5kC?QCo*W0 z@s6`!a6?ttYAMw8Jg`N9X%IOtjW9XP(-x7*F2-N0mGkuG>UG% zd1`Yl+r1(mqQ@AEk?>ORU|2SGFuXw-Se%9M344A~m4fN#8660ur{D#qP>nB95h)yapCSgR2O zLsy=9H~ad|ls2E6mH}a)HTxN9`=a{rvLNHo(mpqzZ-0KkD$9n~s)SuD%7!JA%c$05 z0<+DLkv~#<)kwR{ea67h?_?qle=e$aMpT++P7(UOHYUS5JHDE&mWl%@@{KN+-oS;~)!ijAgUKp3AX z+sUMBke^{VH6}||#{$oeo3B~UB);2*pUjua&$GJKW z%d7sMgN7XT2hVXy7(^-T8;eu|3p*6F)u3?2Ps#b8SpbLy%G}{Vn7xECDi)dj>KBu{ zAF!X1VxOuKu@^hOW&F)bYSK*uIP!3M{63VTO(q(=eeEl9?*}@$UYFc+)(=@|IeD*v zU)c{%b~Jp(33&iSt8;8OeVqC7|E%XWnT2RCxSyeEXl|_jl0)OqU567m7jp^4>L7CK zQ{%?|otcSBNo%+C&1nngDbk&7y7begk$Ogkd@Uj9%_fC`h+Dd)&+3?NRGD(d(PrPs z#y;GjVcAZv>X{y!6AzqBMFuYI^>1CoH%l4YHOw}9UcmJ<-7}}^o?AfXD_zOp9FR}E z4D)CM@}1vt4rWC;%lBy_qO||A$S&v`sA#whKj)4c*qaxSZq3y;T$9$nuv(G=J__#z zhz0-B!pI(xV9WdjXvZz2MG-u&2elI{tI?SPvLib%ys+8xJFmPlQHxn*hu1AC2$P`A zW9Z)%izV#&q!m$BS>4a5(S`SYcnX~b*VmXRaA3nB$eHT6doBqtb%!JJNoVA%t}5CS zE7kc_v(zAY2hUYR3a&oi2ZgFi!ep4cM!k(b>PCn*`XVn!4$Z8bs94k_-u^o>^f%$x zfaZK2)(SlGS16vsY1doOYkz8-!X?*RqBa|Zd84vhyBhX&y(!IFc+R|lrZUhtJrB(j zlZ?cu_I_tv`k<}c!)8g z0soWD+xa*gISHBVi2MZ4HHM#&fg`JVQ)&angL`w@-Zq1^6{MddXYK`05hC z0L*?RZOieK4$F)ZJmIt-40JI?)qfX=rC^o`9XDP$%vjeHT~j;y+94kKo_W<}X?#)F zh#25bFk<7J@JO4q3lo@g3P^dB!vh0E4466Kx6_tb{dAAR)|#JBiaa5a#^f8Lw_~&3 ziyo(<*&Iu%0g2~Sx~PEt$Wzv@Nziw_(=vqMspHx_XW}dnTBl_|ZqB#Z-`D+>jLj9w z+q{WeqGaXA}Bj<*?NA_BSaP$sZ{XWfi;qCfx|5VR2p;(OGJkya9GbuF_GmJFOGu5iFA9G zweX*t(L}wbRX6ZYeV{>xT|@XX{_qYv8(NXKnb*CRJ8{r~X0p4v$olN2FO%c?s?H{iua zciQsuvm(wvR8**Lp?laD$7|w-MRem>qL8*U;Mg?#!gaUq7cz2|eYRw=_=KgMt8dtr z3UoXt``qhFovwnTegmpz5!^djm}!ZBYwej|rLXE?0}{98MdlTg^Ky#L^%{KBW4FaC zpXBk3KIQ9zCAhHP`id-j0zB+re5Y-Bbd zwb*(f-h5D+&5$*|#(kBw)fwxP9ZV>#@`YFZaI+F7!VT8#9ydEJ0K7%Ju_Jff#3stG z?Rsgqw}Lm5nfytWAuGU;H_fCD(U!2;g6DqvWg#N zd%`u9w!06%7&z&MxIgB!1sy*ce$pIofAR;1-2F?(W9(g}13V~e>FDROJtS^Ya8=on ztE;gjT=;YCCF$8GO#fOMj(#Y2nz#PrcQmABu(^1Nmf%7U*SiG*C zy*4?98m1?{L43SoIsQ$vmMip!Z8Yd2-YB-&Qh{uo zxk)=i>|s*!{Ce7Tj`IUNqG4BPEDuCc;vtO-8t9bs=8F{JX>0ZWF&VPJ!uf)7_MYIsPP;BnPjpEYd~0;g`T|Q~ zqw#S+m!B5TJv6NfU)X+RpU&CNb;MzU7!N(=EG4gH&HQ8R3^sfcKvG}h*B}rvaQUKTmiT1b%pK|hZla+ z>=%!yaI!&1mbk1816|%!tSdc3L#sv5KdjD9j3XEtfxx6UMZ70)G!VZ1O#Sybgn)0B zs+Ob6b*|-}7gJ*JG>{dC6A^avFlVS}0|Nje6xTM&+RWx6hOG0H6R1_7a$^n;k$l4~ z!oWr)KJF`hn8mi^)KnwGkA@Oq{n#X)^vway3uGBtz*fljMqa{5L!x|v++xltL4$Pu z@?$vd@X!kB?$Pf8^M9^NIpqkM)B86flYTVtk!N?BoB7vkpXsO@c_XKEd#`<_A3;_K zvtTW1<1uD^UNj&MyNLH&IoB7v*tBMH#lmvL0lJHz|H$hVl>J|wlf&f6bNGIz@sqDX zt1eeg+3#DbvrEUDpZZhJ7qAc<_CGPpu_kLgSI25e@wGWZc~{kY9CG&;P6k-iSn6ZY zcvgjX_8z-;B-g~^$1{s^HlBt?NiU$JLG(%}XCpLC{?W#e$T(8^@;AH73mij0H+-h7 zGV(~mo_GJ|x%oEVE>KHFH2D4+!Z@3qv(g~p`zl^3H%6lN2=ec?(Hpm#u&tm4LI znq(qcb9#JTrMfz{ldU0Q1F8&LQ>zX#3*@IL6k9?RgnX@caE1R^riUoRgA;0?|NZcv zJlHhwAoZ06Ai?$sxLL4an%gKI5erDe+DSG<*bN0_e z`Kji2v$0QnE*V~9!0cpB-969+K&<(xQAb81Bq#ycBklK}mv?%661dA*H0bkcm~QAa z-2Ag>sN@=(;_6ibDyLe4FB2$JgV4M6_DNaG`G{@Kx=;<^jN+lS6lmn@^B48#1L$oDG(Ajb`O z``wkBW5Vjn3=i5-DHu2d2pgU};ylGl4HWY3&V4(mE`Le4Um8iCAUkDw{?DO2f*C(X z_efviTO<^lb_5Ae?|>uH0Iiox^sB~>a`o{vBuWBr1+{7NyeIhN<{zFVT~($q3|4Oc zS&sBMm|Jx8EiZLQe>*3hQ%U0%%5AXx0NQfiL;4!cpLS81trLta5CEidp1wdheuTP0Ko#*PIv183_}9N$&j+oWoqn`54`K<=%2fhvB9p4Wu{qXV>CkRcR!OAj{u=1Z zwIBQvYnj5+dWMQOZ8ldbY5Jky?e^Jge&|pC1>XF$T) z9LW4lOM6Sm)5{(`Y#`!5;@NT{>*s%&im(7VL)zBEZv+hRru6cn`?%6%xuz?1$yQNh9~GMEUsH2%U6{S; z59Qx~Xe5E@y;$uMDLk>et5{+&hLn|_!TX?c9ZBJ2ZU@zA7&pHx#PW888lZ|z~_ltaB_w){^Q@E?5|bl2Fvl{hVP3d9bxsJ zTZeIukh7`4#(erVeEa6ytubLVQM;A5i@tEW8lCmKXMrIq7o3KN*6B9e-dQrwJaYAC zC&aElma{%%z&$qe%Dy6$ZKHa>OCS`n8$Zr=V%hrqZ6-X}E*0(KD#KsakkxYPdbkdXhSW)FA0hxxO# zUF{tJ49xAP%+bvw-)=p(vbZ;&jz@H8CeDM@r2f+4rg^> zel}U)IJN2bs8fx$`Bi%>V(Q%pYEn?gzp@v5k;Ch)oOG_$pG>iUl!*ujeSt=oMn~P^c?uRO^K9%C=!}O7Zp^@1O^*6$tn>xTrtOJ}s zOnZHPX5NKqZmho_dN%{@D9?AvU}D}y7V^dM^CUDl3Un~Ot_8>-sD*;8UVdJ3Gx4Q2 zG6oV=Z4Y;27UiM?rF4ejve=c%ef&y6Hdc9*kUP#s%e1NB=^rPLKXqGy1#e=)UiY;J z8zZ(p*ty*4_A8|6skaB|H{1b&QF^E*EwFdf6j2O_x7Z3F5%WuFd9Po(M(T*R%%Q8m zKq$tkzLDBUukptqv~OuGb!#?un`hAr?n*^{f_%ibtO`Rz8Q*Q*4;3?0Cm6*UA!HQe zDQ!y_zwIA&pI9XQQO_pfZU6m`#9nFfw}L*$t=#TpZwg6;JbEtM)O;gijbB<=kWpb8 zUUWj9ix7eoB-xt8u8EgyxwdOlMFzJIIJXZIE__y>%ifANysG_( z?69fVw@WPAAin_aR_5RqoDgM+7p3*0B4x<|G^YQ|5R)p@;%Y2-uy}f~ym~oB#%;EG zLasp_`zmHZ0u-Xd$0{7&{pUW*m?mr_aOi7M0e_Ujh2*}0VdNz1nzp&IHr?z=@Mw_+ z8(X&R+WCe7Zbr`GhmrJxK9yZ}9F z*DNn$^c~XA9}V@enE33gjPB-*fp$)ft{F*kDKqS4TT6GpyC3Yg=(|>$|0o;)eiR^R zlz;YZ3A=(fC2I^%<3L@lwaxGD$iXP3a zJcM96BnjWN9s6 zcXNf>eohA5cy1ooz>K>O)Z=&5nx41E$*4@<=+V9;Z`PXV6L?Y(34r^@Tlky~EB@zl zxQVk)5uQOfRlhEr%WAVl?877QH(EVli^)K9n0sYyXc`#TqUMOPz%pD(pQ*~*Su?bD z)uzbQOja{gPZP?=$B5345_n$Nf7e*MK^E1=&DwD8u&=il9MK3jU+J*d>E9%f)M6fN z?oTbG%{H=Wg?56xBDoZN*C^_BzJTE^2|TX7T3=k(NqGL}I{(=#LJv>OngxvCr8T{_ zf-u>Ap)nHZsz!U;3h4Yry-cj;J-Pl??05q72*Hbxz`tEtzkbO*Cp}}1zuej7*+}<~ zd?Q|ln125a^*?K_2PNoaNeKF;O&3q-0_uZqeqAI)e3C)7qZ;gk;oW@3==?h>a?TS{`lh-MIzKqWopRr=6#fQEID;v#LmX@l8t+xr_E>cxgELN}8`Yz=CKhOSsjU$#}!{Xy^7 zmF}(3NY-_)>auF$Xsk9M$suO?kD>ox-)Z+)51!67dGp-GaTn0ZQSF67$8v0bG)@K4 z+1$iXC{MxzzHkH>cDgt&L;^$6|CF^8Y;xWp8xdo~M#let5ekIVf=PLK6g}H1``-Z2 z$FHU98%6`?MqyNr8G`qP##n91(>%0mUR8+ye^VFH7ym??u`gXC8p|S%+zEx&OIJB{ z_tl*UvN_6qfcmXyF?~DUM!e*+)BQI2m9)Ny6S{bYHyO>}8ZTq87~!IfPf-3*r8F-@ z5L=aC(#0A44NUW4)_@sby}?+;mc$h-^Bh`QA9^BB>*i`98HJddVFlzJpWbHNY8h&> zLq+6f5@c&~Jr4$d-rZ2}F_obwCcaHxZ_bZT2k)BHN(8Vzk+j}pO5h=$G2x%JC8@yD zX&Tu%lnKz?Y_KRS1ZV~Jj++^!?V8?f_1T(0WCSZ8q+d%2%36MvVbvD|9VPb^6RFi` zXU#IReikAv{R2T(8)Oqf75)$ zX+E@ZF!;>uV=VwAn$@{ldfi0Pd2u_t!@*acEj<+)=)C2h!Hwu`BVtzHP$bDarhRfr z35r_CKr@`&grv*IbBciWT*!z=yD2xBAXB4cu>U@1T)NkK@NC4e4ca^j<-SS-(-6Pb zFBT2Yr(AeIxYULzs5;YC}ou=(DNfMGFS)E>u2 zAG)2B+-q-vhmtq)S(+S@u_RY{GiO$K-)TfYPztZr*=++YLL8cQ!3DJ@-s~H5F>30`-7no z71B;dHwQ*BlcX4o5<2sP;BT3!eb1Cs@;9P)JNyia{}~Evq4_&%rHxyCKA2WJgHT=; zh2p$7L9Q~mVA2}@j(Bgy_=@YA%FZO#Ho!Q#xiJa5?)>xP3rw@0R~)!kxDnnvSXtug z6;t^8`Bd&G8c`+&qp77P$R`qMQSh<9;M)#K zntoJUS^*lbnt%u?2msPnA=kl!JB{da0Uj1D%i zJC8dUC9K7=+n&Wn7&Un5sxIWayszx+10{~vGS;S@l{3yyXM4P+Plfr4Uy-{p9YHMI zPs_t29;e4dHZcu1RL7iO7G#S@d=F$r9WUUxzWc%vngDi~Kh@H9Aq~+kSM`F(6HG=E zk94q2914Cb?oVXl7M<9jvYQ}QY>qMg`k{RH-IBVr!b*(kT-4SDSqA;3mxMSNALa>RaEhiu#r&zllC8T62kVgdxkQ zcDyDI0!8P?e#>G;+0#r?G1yN}b(WcQ^*ims>6%z+alBg88q2JzR+ugy^pIOsE$Anu zaP5TDS@!T#nr%OITMZ7IWZ(dwKuOqy5Xo+H;A7zTBAicn(=)PqWARSMN;Z6LYDuI{ z>Jf{w!Eq7qW_JPRm}G=R^`bsdPA3e6qJ@5@5&4~dX{eIzk3`@JbI@|ybb-jz5z1mX zK+fDTf-@5*pglU2wMBvO-9B?y<9dE&b#%8VrUv_@v_>teVDL6^s3JEG6)v_h@jxdc z+5pZeV+KVLoky&4dz^Z&{kwkcZ)IAlepoRvo=9I6vuyJHkL`_5kCtb9bX0zW8;s;G zBXz#GP8l+oY?ILPF4cO7iO*nCO^j;PXF1CHRb_b{)*)`?uQEph%jkcWCDMxwkmAAY>xcNs-Z;er&Q^S+GS0K@>#>H{-F1538nA9$|!K&@dS`QBwjw-&Lp0WOFX$@N#3Y8@x2 `5%fi0$!wJbq;yvEup8WQ?JtTS~=`uwmmBFxN&q zMi=Vc)Emf^ARhDE=r?74VSj(}rHC`h8C1gi_|6R}L&w|d=(Ns4S2)LZrg{i{QlQ4R8H@2pmJUb80*G~A4_PRpd#2Wm8*LDiGFtFSqU3+Mc>| zVpzmBo3lTS++BmfNZ2ctZo%X#*;HUGdvn6pbndWejFKUeriX1|4lc=7=aKx9w7xpv zRD3^6brHBiY^QIK0lV8i3k_Y}v@(0Fq-Qy;@zv*X)7>2_ao`@!PgL+g3L-}s{Mpk= z56T3lo2-Y>mDOd7xU!4)T&`X<|6Np)j*F8SZnxw_uHRob{iC00P0#R0cFxhz-gaxb zv{Ll>bqb6{ElgT!en@3?ri5DhycK0Jk@q}FTb0GI83}P1({`x&;|P0#_^?ku z2S)a70Zdu-S`aezw|fVDlaCW^P+68$UFByrqv;lM%eA3xot~S<3~wm5*#FD|5Z1Rg zrpd8%kbz)gVv{Og*fCypvu|&oINmR)0|E}Tp!m=SO?pkpfBRn9?2W60Q}#w(y@ieN zs}>U`wg`E174^YLp(Fy&*V1cbLUR&hqU>{%cAIjJ3TwwZObhKMz0EoMb9J!(k~9-0 z2#Zx^Mx;LtK0BWh3D{+?qT_)s2}g?c8+u9=iG0JGTJPgXTMTNktkL<*Jtm; z8zK+($~G@9KHEN;FqNUTtlje9Z&`>trS&aa=y^BA;aTX04zZ4&v`5l$W07@oXX%xj zJ5`pU0cqhRl=PqKvZF=M9aZgIuO1d@)4tX~EVL7IV2@5xMaJ?i8)aKh07%GhskRu$ zS@2+u7gah{X=koC*9fJc@G$PS)w;mGs+eRCTfbOv+(<--s)hAps=juYa9?BQ7-Djj zI$ID4jNZ(zj#RL8B1Tz<;K;i1|C5t@Dqp)Iw}}MEk>w7EzhGIBbVZW?1GjKoh z7X$@Y&Te>((cA*Azuq#k@hurg_A(ig8bO0hY!SMZJVOZ#Y!GEs#l4lzK60#gpRooK zV!yv{?zd+)7`w6A-0XRW_HQONgGiM+VZRZ~#*+QeeHY6!k`@cyLAQG;wrR0zl#g)n z)Nu7dDZ#|kZ|Ms0n5WCckkhGrxU6Eo>~LpyCnv|3elI;=MN0L9N^wX+I##O{N4Cer zrw@~q@75$+V`NeEe+0SY(?@=AwB=8-GXFCnU)|vPFCm$P1c&5qwGGJwL|(&>fU@j> zjqT3d8K=#BZS2?{R^55k-R+GX`THsd^xJ)DNxZ0{h|y3hQ&CO*)se`2*V1DLwhDvx z%#;pG9_a_a+Zz!Kd%3eDi0bsjn?$62j6!-1N*x;`mI`GMB5N)54slSF3Zf>Qyd?`^7Fh`%FFD~_1xWJ!wN-udywGcTNF$Aa7Ay@Qcq1!&J-3Cz-+8z&s6@BL(k{>lzRv=`7ena0fYW(Aom_TJ zj)Cf*tftDZgO)tN1Qf>nuyKX*FeQjkaFPp?lGS@exA;GHyB%x{l#jXccend-pG?(5 z75^Wat|~09CdlIM9vp%b+}$C#+u#-$+zIaP?i$?P89W4c_YmCOVdvld_Jw(XxwpIN zsycP*R5xq$;?IzH()Yl3g!~QVYd=aG-DQ}II+2mC^xk;T4)#!;ThQ2tv}u}`%L;N3S{?r7eHw81TMlb?e3=$IU2*Dj zQVCte-^7jU8qMnM>R3o{!$4k>w4Ph9ra_}W-tTGRWaQG5-PzGO^!D_j#+3fD3@?!w zZUu(&uy*`qyK`=obDnso`<*%>j7cd<Zm{U-wdCQi$Kd}w%a;$ zZnAEsN$<9DBKdp{hHH(xA>9VFtOBVO`ycbRJ@nvniK_RSh;j@$X=`sqLwFqOW=;iI zIvZEk0sS6%n|eRJbi2ImEX}@5=j&i|^FC^a(O>T=KZ+%lMwM**ID<+agjk10{ZtV@ zA08EfgqW5$54aS5f!2_d2MxYFSTbp6VKDgJ=lYXav>*kLhrmFt^uDAoEqGx+RSNO; z%bsHEHN7?K>yFHy8!0OO@4J3oW5o0HLa!J|!60<54zFkD$KI=`2ncqF`|qHKZTZ$m zPA--#6sNazEm|*P`JMivo#E_SoOK_Fc8D_}aIOvyTHCGo3`2zgJ=VZi$gUGyIfS5K>JDPm9Hv}^<@ z@|~k+sj5p1!ApBq3$m$cG1A*wWO3T`OPDMV9_gvTF}J~lxj<<=uT=>mGFW z-iD7oqBaHfJn-~4u?r#_V{uowx(Q@-daTV_g0@nV22tO00~3YCo#>z8q%)q}+VryU zZnOe9tLY)qP^ZAxr};>|19u!ynN|;22b;Z4c5kbO?jXPyy|4aNSG%|Q<$?BF9a>x+ z>r73+2C&8F#n@#RXlD13g#mRb>sx&LS#;Qe(rYt(4Vy z3$-%aj?)`H(#LJ>Wysf}brFfVzUjq0klqw;Qq2OjrSU$?_)z+z`rY&I&B=hhqO)~x z%{_HB*N@vJE*fvE%Am*XFYYE(Q2d*awb{9n_r_fU0lNzKR`43}7d0K99K&WFO@Y+Y z$fgkiERV|I|84(1WpXdX`tM~;n7n+1npKe?lQjpH#xCgUg;u<5gde-#w0X`y=KgK{ zG;jwg{Htne{fzwH(;XG{yN-aF|J2PNzi?^?2f8V_yxZFC&7pR4)#@8LtU{JfZMqOk zena#8_|gi0JOZzxJQyV0=vB-_{ z>sGW*jS%m{nY0S-B$#xdXQyrnsuT#0!N$m?zR|RFJP}w@v+y-6n=H6t(5tVh zAc};LaIf*4GxM?d?jZkbpZ>yovd`}sMbHouM!~z_tLa!(twDds2tDv2+a{CJ?70u= zM+gQvHL1+G5W zkseeTPK%^w6-AgBt)>*mwmjQZR<^TbJF%98pxpVR-Y$x^!Sjkkz!+_>cL`c9&DAi$ z+BZj3w}sL~mJ~HpCXM6Swll3vQR982Qmplz1qfCK1YoRLk-ew*V(N6+DE@?^v}vJ2 zlz1qlZ%H6wg3p{Ia01BI^jnU1lm@pnTT!=gH;$!*t-pV*>^@m@So_-bpcVr09c8>6 z2Rxc#s}}1on_E|i;XnXnD>H=8hs;fY|x2X1A` zHw}A&*M(rP;|-H=aA@yZp^wu9gmgB*+CarrN30>WyGlyXm)FIgbL8c?;x);7jR9FI zYj)b*ep4CokG;>`Yt8#G>b_RCh)scb;FidV)YOPA5<@EzSDV`@cUS?60z_(_A&Wo| zX;yLlkE5^kaNyyqxHVn;K@XoRBQ@3AIy|EGu`VAO&PKUFuTo7sN0_$ zPAUUl35P$8lf*&n4B#qi(JP||B=^n+&=c=$#QY;qTrAckX$ObxUuNZW*OVXC={=c@ zlmg7wjpa(6NO!ksMkIkcdK{XLSv=dUj)P@P?d`y6zp0E4Uw$dev;S}_WHPZob;^PX z3J2)}h6_H`H7@+J0y|A~UDSD%eycG$i_@H{fRA zewN~Dv~*JyYb&vfE)*83^`<(P0)EI5qw^0h0;N-e4u^={pj7iL2H?^`oo7QS67JXa z_^+tP#&!)^(~Nnc?ffhn^46U>NxcvP6XYl^@bx1Zy6jWRXFN3YdqECinK*G(G_>iE z+=CljZ&%To)XD9Uxg#;Oz0^3E1w_ta$9f7%6;V)%lODZ~-CnHp;P^87v7cKvyACTN z7cHnWOEM6$cP(9BSCp6Cke@-|prCKqP(}blx(BVboZxhCEIm$V;^8m*45axg5n15m zW*DL6>WptZ*yBOw2T6PElA_fsPkB_Dvk8fxq!O4!QxIY6|NiHlB0mi0HC$FCF2883 zYIn`n-#?=(Owa)sQw861>1?jdHj83b`NYpsj@u(VVHrTe2EpW4=DKW<$b^8)oBnP=E5-oD$O4mz-C84gZOVkig>pQ#c$YG(x2srLAui> z0bIKF-l%1Oowrc$r4x!@Ve+@VIOJ5>^rkowrqx>&PRRha@r&;+;;NDdP-pcH^uMi8 zun}SLC7FG>suhb)I%k;%m%~ZEw4szIFNFfpWJZ=3J?|E)M=b&rO_XT{K-ihF&q1_8 z$2SJVE_jCt6geXnn4mFJ4VS*T>mn2sS47Td(S%)Q zMwZ_WJd6h9?+A?OF1ziWw5~7suGS)tEP9#%(&jwy!KT#;=keq)|1M>faiE7w`z@n5 zz8xcV0C5REp6~eKmyS_y^ZxO_1R++YG40G;XvW5qNhDp~$14{q<#XHv#${npoi?5z zZg(yMBN>hCU^~0r-1#1WnB$4A-{lZj4_!?ICMEPPYL`s>k6XU6&<{tHtRH;H&$beK zr`;+wJBlkEDD{JIN;07WnWpAmT~6a-=dGuf4LK~7zNwey9BroEe9o$d&l%0QeAb`! zc#<%jn2o+k1%kG(N3;k)+OvtKa|-mm%9?V!vdtfJ_k6W@$!UsOLK(XuQxF!jw2rhP zN{Tpj!}x;9WS1As-3g_Fxq_E6WU4QZitc-PrOlBuEl&4A8IHayH_flo4!uur+4{(4 zu3e7uCG;fo#XQzM1WkT(=MLW8ocl(NM9ofqqe{8y%U-P28WLli=s0Z#A!*qHoyUI+ zkXz@|XL&x$`mDkWSeahR>E~|5vu<3Yx@o6v#0Gp)BRESY>!jcZC})N(lPszKT5x9{p-QnlGrdnHCNASp{p zQAh%Q`(=>Fs1d?+uz`;(-DgQ^k zX`ki$n=1u=n$PTs3Dd|h(LumF`kQA|CZk_($bx5}UDM6I$v8{Wb%RFhhHD!*_PWD+ z=om?vcp%(Nau5~8l2X5Y*6(WE&fJLVltCBk-wu1Y_e!6t>UP%!^`nOpyUYTk=X@B8 z(r7m?;^IjjezGfi5~ef#%j^=V?RJg>SFUjB<@NH$>pA}!-T1WTMGh?mQ|zlRICsva zq0i|XhVJut`o~9>gaJtF^qrl*7{|kKQ!Mk!AuFvD*fl>}do}_AH=GrCsgJV0xSbAT z;2Jy%cVeSpY-M*Ta~*rqR&{deTlAdxy{Ipq`(XZ)4*lGLBI|b?j+}Kqo9%5`Q+k>@ z$cI1arf))es&A}EcdSQ`_WtA)1*vl73pN}~j*UURpDqNAxi-45y(B#N_l&ZZCxI_FzG&My;vEt*~6`T9LAyU%PwZ3O`Hy{f-^jKiW}j z@DbEh$`09lVHaO9+bteXAED(H`RRS?qJje(JLz^NN(1U#*DyF z=6P&0z=RU9x$XB-u&$*(eg)O(URtC=4w+xB>_ePGY;;9`eqdguBgv-6en7mtA3huw(UmhVLpFK`(+Gv@n{1baKY`z6 zVe7e{Vgt*Ql|pmphyOl>3jSGIC?SUpBZ`ZJQv*|@CehLw@jwhD z9I4Pspib{2Ojo>!XhkE=^Rp~~mm`$r1blu2$3~p*dZ*)>?+;(JF9F?bsf_=DFGJJ= z=02Ky3gW~!B1s^uv7IIMK7h-W1atT12&N{Qu@9|w`O?k|=<8;#M*+idU%APz!8-85 z1LvbjF3-l%w_N70;F-$jKn>je^>kh$+_!iPskHTmm79&6@w>07r+y?5K~(NLyD`)Z zeBbD)QIU&FT&@gQ4t5KPqj^szB8F^5<1|KxX>j;_@;xka@Ih8T7rzvD(-7>z#FQ-G zL`Mmh5LbTT4kO$z;x1@wi!aNn7kSS+L)%ioq%AGi-(PLzOtZfysE5T|Yhosr<|x7; zKuXcAqB_$AK;3IF3*jsm;m;3zr*iVVfpY*oF`{@4f_adN7=Rf`i8D!Mr5GJjF|cSE zB;Do)JHKE;2(6z_W-@ass>)SuyA>S3{&CB3!Pl4{F|-)$*@W-X)*cHXd)gi2AO1t^ z1L`dC)LI}Y$qFSor5-T0$B4PYOdAvZs<7F&i*F=xiEi2|C*7end@(;lr#Tim%~XXl zEd=z`B=*XsQF;*Z2)3cXS7K*Y%X!d z8Tp6F^#oe?G|b#h#3nkIx4V&I1{U)uh$$uid;19j5f};!woU*CCP0>~r_gJTgc5)DWo>!qPG~@(^9ithAXL0?-f? ze^cIaMjq%1o#{#U=L&)dYabnOzvPt3B7fP0)OWXHcjXsV>a6=k zOig~-0=-OR0f$&;ItBY5f*)!5!!;HmF#$Rq{I#Spgnu(a@07+0wui5)re{t!6k5OP z8l({4iQ$(yfE=gA7&TQGmQ@S@*(bgjK&H9@Bins9g~lg_!9goaaWIr^hYmZ7wo#@& zME)6+<=`EE`%A7?$_jZ$>7srgeE?#t@8A zL2_e7<-=IsVMkLV6ZHDr$~*<#JQ|ADspy3$dGI7G9m8Mg);3nmd@s4RdgOI>4uu*u-(K$KWXO5rnCg&@XlwL` zFZK>Ee3lpYHB+kY5g+PwIKo%H&qK%}Cho1q`#f^7xfw2KPJ`?VsI7`jXt0r1*qQeeZ z^5twaRMoT<@gcL(LnjY`>e(LNU)LtM>r&A~t<*yLRFwzSQbDDW`JM*H!hL-}5h<%? z{To}{fYWAr$kO+)+3)QqdJQPe!KjWMVS>lT=MM_}o9#{`bg<$wMjj||?*w9C-?zr? zQYI||HKI_!+m7Pj6cLJ1O9c*;y1!KQSH zRgyKMuZ0i)$J`f&JZ*$OKO2#QAMa`7l32lF_#?0R zdvE7F7bsM*Eq2v*o5~5{x(@3lyO+F1`*#ma#N#3NsfuSkub6WC48@#IZjJHdd&>zI z>Tymy4pPIB1tTMBUjc!m7G!6MJUX7F=Ofk?mP<@Rs(=M<*#{PB$bC>4!7gabtAjnd ziUtRE{M2T}`vE4L#jt4k!g%J~!7wp%1rG&`11Y@~c#$xgKhS-g&U|`;=an&2&_PrKywhXlcKmT?vIU?JUNf zd`w-?df0h>X|q&`hxz0mS3DEudxzf69z+Tp;$ENFrA5?Y;NPcx;g?)e_btzemz$(q zVB6=nV!F>HtF1E1tue+4?ThU`e0J31i22|2*QdYQdig|tA7|sw+zWq~`wkQ*geC|U zMlpjBEzqbj^K>IxN8cVfIS^8QOt2b(UoNXa`|fh<=76e+gB#moz`4|> zY5?dzS^D}aCh-4S0O%A36ZO~qmf^%m353A?MJBKlLVs7nekq6^PhKvst2TSxbt$KC zfM??Tw_&BEdS%{PorT)rBP>w6&#H7=8(lSxSGd{ApCRSOR`pQU{O_153*9N&*V2*M zqcZe<`jLAxraBrx`hg&2479_I@4XdXdUP)+NBSsQB-b4+2nT|oMv>ygRQG&k_4sm@++8BwbLpr>r5 z{gEK52pq;78$Y2o4;C|o9Ii7d0N`Xghv&z&0UcpSw7guT;@2?8ypmrjrV$BM;z^QHRr$WVnV^ZNak?q!E!n-MPRlfD~@zeL!6h{X4#h) zh};7{G$X&5?53~a+2xS+giuA&lD)yn1q!#0%If7wOMvo^yjVAsZv_umi#@DEM0*+n zUzK~K)AQd#*EP*8Zb@4&df_dYZ%fMPm4BVm+&oizZlvVbCe4Ejbn61IGgOcEv+z0Z zd`gOWe@|mL*e5;a#*+i@!Y4}!6t<~Ml9SCHh{7u?S60?Ti>!HH{!(|=aD!(O*SjiX zXMxzVPrdySDZ&W-Omq>r3sJOFnh2z&@&Pm&AL!TvOV|ldAFql#L*DU4`iHL>J@{L1 zTS(3XeaOa&eQoFSdP${~xJpT51V!=Y1imUGQq(tkqGx+6Up?F(vZ9iN8~Mk`xqV^G z_HKGk;GN4_o;`;E`H!S)dm;czX+3=FYr?SyZhJixbMWS@We67QtZaQ9hP026@|?B_8@jH|@TIYrk-%`d=>aE=0VcYRqAUaE#RBLe}7R=~-1!&)Yg+vu&>Xom|??R7#E`ZfxNV z{g@{lR#Zt&>FNMz_wwf7NA{je@gKeAll8<^%9=}LHe#x?`=w7JjCjn+Vsh7|PRgeE zoZjskdAs<8#XOu9@qx*9Inq05$12D;okCeA0pNkejD6oWw5ogaY6R{ zMD2F8GhaU=w9hG_F{nd;CF+Ww1qlz1X0wnhLTi`7>#VMzqGFeM7U6HuxO6DX!UMeB zJE~kp5jt%8-3t=D%YWK!T)+7r)=)U^2{?bvaqPKWCpc>N@eb1NeIibmp-m{gtG>r} zn{XQMcR^}A63nH#+-r*l8Idh3)gLv-&L4zoF`EEecG2w5xYv)G*VRcF!OOg$J(cCO zulZycttf+q?x}b6y9ENNP8utG+b1ZU?2`}lGMvA=PwO9Of9rMjff2yzmQco+Q?G}T zCr~g>YAG5rKE?30De(#htfMb6xh&Td>KVGjl(* zirrlF5(7u)ivg@M2;jKfep$}l=nyrBS322JmJmxBvWUL!=lu&vzzW}aZ=kdSBS!(0 zlh1=|NpyK=HkNs27;TtOXf2?D@(=zDXA;O#!AbZpQ4dU^2`MUA=a(_t6q#38x#pil zJ_-|}*B0t4ot!0h`d*e|Za`QtY$vMY_m33o z1xG<1@+5V4?P%Kbea$02?;DCK?OOMAd`4(+=tg6#l`-rhF5D;9RBz~LLx$XWT7>MZ zY2}hy)2^H80rt<_!^oKEFH1f#OlV0t5++LC{w3V}fgDCc?jYh9AZMqbjZOiv>scVp z=~RMuR+>UBJ=GOpp-v}me7MW8p-)`6Z5LcTv^%b>>R@XM2K~#hL(zqg|FIOoh9iq7 zv2H00e3#CgXz_I`2EPyrjqP43_<8Voz3#s#nAIPt%b{P8xD4o=aQhBA|Cd(6AfZFr zFjP4KR8=@(iO}6ub!+$Dc9@vsl}wKKnU$y7S8^k)j4X12;v_%nhs zrw34AUL#sKcfmM)BGQ!pAxlaa+7=1z0-?(+zCD^H;w$*DUNbw~MK9FF68@sd*vyQmd?WO!p;uK2z&-E}E)vM7tH6}h=ZY3Fl;m%BitLTr%}0;-fvw0B*+%oB0G zKJPaea*Q32E_skn9`92`4}W2m??({WVI++pQ7i$)Y>rIN+H6k%J3%RXXhTYX!&N{( zbQBoZ_Vd%7VZpbEuZcpG$brK;SwTZb*dPn2e{!`%fb~0Fkz?vJ)zEWgf}eA6Cf5Ry zyp<7;m?W43jdpGcI+yXri28dfATJ3qsvrhi18SJG z<<_gC=Q@+m;rQ83{!lPmDTcm$82;7wt|ztg|Ckh+X@BsZ^Ms`B<&Ah#_D@;}jtRv; z(&Bln_x&_@wUE-v)u~`o{wOM{mbktrd}YYe=MODC>eV%up{oq?GW!xQ;uDtLgnY-p zR1TCiV+>@9{*x`os0g_7BXi zBeRBTwDIZa$kLz?ikEK=NH_qPG4l$oPn^4Rb50*p2{2NHD(0lvcSJ%3+j?V*3F;8j z26<*5)mtx3fH zxpS|54_lH|LI089=?guUn)S*(qnq3!zx&XyL@2*+#yeN@#~=We*H`k7%VI7gNg3M& z&d^I`dwEurw=!8FploBmIs81_yWzd%b`qSuWluDQ;6??l zsX@1tzy;8f(^HJXkQX3OJO4-o{&7sBEr*Q~y}{+=KEFk=>AVzNT6zq6M8T>;s`TTuT3KA-o{ktK|9p-2(AlH{b*= zPP$dw*Fw9K5_F;g36>Nn_U9%#gUpBZ3N0q7wyw@{aFrnuq2k-mlkCa#$x!+*Fs)#h zRi93pvE1YKPWmTWAz|w57CxOExU*dIcV5bQu&Fnh&GvCig|@#@U7>+#qjTOs!R;ZF zjxU84m8GV5VI;uhO(>k>DwA8xJu!p=4Q9wGJ)-EivL(V+G;n!j%Yc0ZCUB&tRk>5p z-ayAVkN(d)w%*}>l2cDM?fJXl>7E77I=h)!MSzyMGv7<_#zj$cgRqL_7~OU9DjUXjBKVqku@>qkpDF08Aa zS~2TecUtyXh3$xj52KbDTCe8VW=#ptV3rTzqzQYmwx=C3Cu3tr=a%+KU1oVMW|~T7 zR=)MjxXL)D2Ii(edpW{^E5D@`{L7XlGC1O(dfD`mbFvMZc42E*nGIp5bxX_#k z_0qSYZ+MOVBd-<{6Q^G&zXgaDRJSWaaGvhlCRT@x1?Nk5(eNU9@*f~i^Vqf%>x&#W ze*Rp-4&32G(R=A0`D1#Bc=KdE_a3Fd41Km!HTO%rzaY(Bx;Nw2FmI8qDdiMXQt%za zgmN$@IIM|(C{=q^N)m>OQiW0h|0;%*#pm@1;+y^JnO|m4O@wasZPE2|SbwMLPrqq1 zzBl5e9QEJi+hoT2o~h_fii+T1*hb(+y7#IbW`n{3`SpC>1T==)PmA5;&u=H>Cv#q7t?V zDj30(cc|ZpY|?rrVQWW5CJuoSJ;CQnSGHuJ%i{6X5YfHy(zEQS4x6wZtT6Y;J6xhD z*$9MV(j@XUhR#9f)gTgL&Xja!N(C=+l*!~a8MCbfo+s~iMOW>D*`+?GS84wxs_`#V z&V9GM{%2p8zirF1dc>ExfhlJydu#Kgofp}mB~Q;PcuO(x1d#+ckh^}1F^!hL*LT_( z0t|J{^OUk5wHy`6**eppKFjDyq;3FfH=GPKG}}how`~dMbT?Mu#33SWpC~8+uS4S> zu(~dXVhQIHB1HN%vbbVuyrmARm`3@lH@a?3nn^J6-ruTf^j|$p;IbNYFfsN;>NgDK z`bh&TQDLN%dX~$g8`q-l$6DnpL&_1w{(x8JDTgi3gdYPp0@m+E&8(jSEX+}%Z=YWN z7cV&uH5M&rNY8m?G|JG+!UPQQEWZRly|-S#MEXJC4i~r<8kVM>Y#1PDP*4BIC_oW{ z?|d11qfs@9u#Zh%r>Re{SrCkid!)A19s8S%%*C3ITory>cgPNeg#)sv!_klWi@isiw$Mf*H*NnYi=pw_~MEsp75g;KA>y^cQw&oDW$Cu zt668SFLcJ~C^P1PWAlhNe#N%3Ua@m2af04VV318GT6#rsNbwq$rU8`8Cg_#bBH(*W z`3Fpq-ulcDKjGfK#VMJrlA>m8DkfJp<3h=IRA_Qg9R*JzuovxXqCp6rdw22cRtcU{ zZvr2klqY`$URqkY@7_b^A>TB6k1hq%GY?QW{x-}~^Pk@>{~=;ab(#SPZzp9RcmtzQ z@1QkyD43Wg*n{kVlLOXgUOmv>Hgk01i-;q0Xlc}gzBAn>Tq>_rE&wS`4dSJq7-mc4 zCDz0_DT9Dvw#m*L#&oVyQCw{oQ7mkp)Ft=&;MU+9Hr z0NrWnfQo}Dl?!fdfT=l8kKxgZqH~lV%iAmx1 zjBub@fLpN^Gm*r2`qTyTdk{|>UM_s}eDxawvRRQ&YRrG{dA9k5@jG2R5~`}B)a(V^ z0S}hN5U?PiSe8Uq-~O#t%$obX_QvJE2_Mf7p3!o!?0B^gn8eA3c-n&etA9sOv%+mm zGwe}?{g;u!>yU$n;vZWqlT?cK#M`KCEBqdnw0ZO5Os@=x*ij+M9p~Q?35_`g*ub zwavoOKzL$N@xMjVcBx29mbM|p9(JRFqS~EsRikbRZ+WG`;D3e*vSZUcDE18 zJX{kFQjK`a;QeLf#^s<;>ciGF3|%yv*i0HdbB8JvO~Ag>{F6QRg$9NYZq~_-bUFAd zSg3&)=oh_9!5O|dai;@|iU=0)dAE0)+Q&Ky?tPIQCp9e{@Qah!Z3=Sq#8q7B8f2fo z8cn}?!$sr_lMS0+BDiD(e`@}SrLSwBGEEZSI~8liPDUx4$56zOcM^*5X*KpH_2-lN zbA>3~{hKusVS)kcFQYpS2fcm%O2$o;?{LiE`7_1u<=`{gAH-YNK(LC<%2U%Zc%QYe z_0{MVj&JTLgv|szu>sFtnla$AcOxtIU(a&FUB(f$vu`w*I2rsxM~uwBG7!nT4CQg; zI{*zrX<*?oXdTHto`ffkdk${+0e+8qh*fsPvWsy=SplIR9vEpikZ0QcQ%Ld``f!$H|0G^41bsvLS8+oM0@CnTuoUvyAJ%XV zqn5te`tz{6C4yXb>b^VkPK;`^Z^cN1&M!Llsq!FfNfHVJCOO74k3U(>wTY-G&6kA` z?KV|KBVp4A0;2TW3zbgHplI6|p7RDpx0qUc9Uax%vFqzCp9#$(uV2veS17ZSZq=Hj zeRbhiV{a0ZZ2;;z_OIromMT{?u>{UFhCUo*sQwi9{rwj?mtOu^kXl%9SbX>Sx(rt*J)^mVhk+L&{4le zB3=h#s0_99v&b?2CuZ?YK7IX=1mCa#0g+T4NRfns!b{E|C|SB5#B|=qUH+4ENgK*y znytE5=>3P1{3zk zz&8R}8n_?JoySS_o!EtmecAzG9!w&#RmLYMwRpM2G_V`4@sKF*|6Emxv<-oP(bWyF zMpHTBy!x^zrM9}k<_Va2v}P_%BE3UQgse(P&W+2zojo(ntkK~Sj_wx2!lhKNp;AlO z@l*{O^`zg}|JyVjw>Pnlv9qF#D)kmXcTv}+H?NDs$>Qkw19=SDcn2J-J5@@fiaSzc zcr_SN9&dZcVVv}b9ViH6k;U*ZOY(BF@hY_nPFttumf+;^j(m}1W-nh7H7u$`-+4F< z8#i(>A)Tf+mxt3kxOV&NHHjBTr+UCXBkulD5h{Js*Nx|Fw#& zS-heuR0Kmjj)uuy(lXb{SyY`S0s$|IRq-EvSH8cCzyZUw*#T_|LOB5iV&9ohHMa~% z7=n?IxAc2QJ+Zmuzb+pX^`gb|U>n zr&Wv!jYZ^v#9`o3qA|_ny!x37?jZ&}3<$r{jNhn@!$qe94RQ4FvAo%Kgev`NT1L@R zy;(yuI`lED3<)vk3h)?HsV8Za;m!JSzsRisgg?fDA4zvn1p9_rdw@ZXk#4N0601ht z^4BeM!6<9^l`Z3wf8B_K#L}n0{~CYl-tTGaHfSlQh<@0#0RH45W-#N7qjuz!qN^Kf z!^T5skXOKO;?UWIj872>rfi3oreG5Xj$)_hLPG=qksh5uQI^<0VR$zM_45S5WannsnsJY7(M@RHP;J3If7l*y>k z=Q7`}_N%ZV0-9e{kttM+43*Akr8HHmmS^o-SXrq!HKm$12Uj(byRsQQye<@8tXjS8 zMSKp!ssI(@s*4q-l|duRVC$<%qd1&Hdi75fWfU8%6UYC=3Zp2Xhk=If=6glVv;90U z#Txt;61~Kz-)sn-w`2+1h0$y$GW-32F%|?Z@eGS#KoI6O|8VdZU#DhMrlz~K{*LW- zm_lOOYT9*O+Hr=!`6HZ*~j({E=@V*;>;i zF{SJ3+ze4cNm{LC4hm|Am|9xPGw00|)cq+iinvct!;njUDl#QG;~0UFJK4c5eHZrs z;8t3!`;dCV5)z3dgesW*8)E59t$p% zRILAf$RhdI;;Fm}4y3vq0gag40IdFxg-9U&^U#4Ge6A&*W=7lry#zzf-5lsq;O z$zn*h*9nY8|3UzRD9V_sQn6H8d3z$S)rO^x7JLRa)a!>cuYP)q1F@?45oM8W__It2 z*Lg3cu1*jlg2jnWE_9xW{e4x8&BjefJ!p}D|UaJVn@>H0HAU>B@Lv)lN`!*;pt_(7RJ|HwQPCKV6=0`AQNpY0p3SK)fIL5D>}L&M*)-YoXG;JesTj zz9EBI*Aqf=7*}=iHa!v}lDyqymUe1^x^8~n5lbTyD0`cx#mVZ1#wfWKez#nidO*W? zY80+HDiswb*q8VIbn0VTTh-!hGaxUA{53h)KdK5%+tjmgQDD$A{Br_S z8WKpsI+L6B+d<+FJjYdP0E0h-SQkXK@p!^OF4E0uvWQIj_FV?D0=whSXEtG>w_b|T zX1&Z%A!Vm8m2U{#}0$Rxjl`}gUo{hlZFd|nnQ z{^acz^011*q>ST!W2#xn>y*lcFPPN2f4tEe z6)rX$bYGxTp{R=^n7}WO)tJ%G6OdS@*g}o^Bs}XydMyTV?YBcfpm)ehifQD-(3iYs zDcP_xLQWOLBXUWB&{3%g#zewRvcT78&||_$6R~W4(61zLj9`tmuqWRkC+C|93R9B!@fvQ*Ju**m<1AS&Zk!A^_+A46?v(h`{|JnOK zVE`6sc%yFx7FBY*zyxU+_G^6Lz(7YqX~ug$oPt3yiwd@n}5j%Qw$;tmgh z?su;S8~O&KSy)k&D)jU-8dbK{%VR(5ZJsN%_HXDJF(8dD^Z!1b5iUldPI0Uhfn z+EILruMR(Rz?T=|vku3L6&=G#Wl5`?W%E$ra5CuW)Y_YsxT9wQ!WiT*!~-c8`eren zP?j#lzp{ggZ832kZ>vX^*<+)fq8@bFhtrZ#uf&PIdMJtl7%Aa!8h@LACQEi;fgJ)# z#>po#{T4*M{mK}1P$f#+Yzh`(i@_OZo|xvC3eKV*phy(g+WMyBdzLJmC|1}48!LbN zG09%zJ6z|idt1_+7nbSTJUbEq{7|wW?jI)}v`Dvno|71wiodnvb&Rsl9xmb1xv$ zm+iWRJNrb*mb}Ack4~pteW2uH!Omft+n!&DPqJzZvjctbQLg{*+5vB5Eb$eQzmL3 zJ0=c2s}(ksBq}=AodMSFKrRR?x=ergAosIVKY`wuWdyZnsIVIr{Y9kaaOLkiA)ewW zz7{MTw<9+RxHE8vY#w<*yx=d<-7#4mIIJs+Ukpe{#3F#zf$bo{aP?}Nte{4k0tSg* zx~PCkIt=jw4K?sd0^+EGa@dlhO^d-mIShnS;N;dW`KVW9jQunYG{pT2dz$vL;QiR< zvz%Py>9`BZifsz;|?$?-UIy=#L4H@I@9y|p>yf8*fm0aq~r*FmRAcERZb*(!WA z$Z7GtSAu2Uip%PEFJeV^NW~jY2oZ`a{nuIP9 zkv#KkMBa?(K@acuokvQjK_raV%zwcUp3nDu_daLu&vzd) zOK@u?U(b%%r7pGXh#%X}@u!{jC{ETmR^scE!>W6c#i6>HBZaeyAZbN4x}-B4^8!mF{z3 zQ+Q<3OdOVyW&O}&e1`s3HA*pK-|_kxIHZ3>@;<5<$iT?)Ev=qU@I-bk+^}B%K<3n& zT0S$=giK8b2%O>wmOn#e`@X#+#jcL#T)1j=nwrpg_Fku(x{GlUMJ(F@wi`XA%LhkF z1TMizmz{oDgvlK(ff))J8AN;Vy%kh}$Z}X!xq$6>as6(oFPKyLY`0`D?lS@wN1 z!^j~US~RFR4gOmnLEX>_|3Mzx)e&}btlRPnux?r9iWDZ5X}Y5HPW|a>Pp-M4RD$p| zh2wc{Z7t;_etU>pg0f4H85p4H_obko^rtXs$Lw6NSwt6HEy1|D*QkIMrB?dUMYm*r zPzIwm&@@%}3VX$4PGQiRJ>&otO3Qy-UIjj_0oHElsrZSXA8*-PsbTbywOUMTPZCO` zX(~O9Pv?;Z6O2Vqt9KgqtRcBurmD*0jmZbDB^=-WQq4Sgo8*Km0cNW(rUeZFVI3v3 z8-7i%)y?lYl~4m#d!yjCYBBpRj<7RXkuIhvZ`c+K`tbPu1H*05n6exWH;cn<(Owoc zN8qCkYl+6siLvL^ja4nZ!Y-v9xYigSQBB1%_Krlf=Zf3fo^>H&YY8{KtRYwJA`*LE z&W$#a5s9(-?|32_UHLg4ZE)Mb2B^A1DXV%x-QGxJX7J{!-pW5^CBXjTz=!2ID* z1ZpVa8!rDwt@k;QhQzt51{HauESdT@?%^tUb%5q>OJ~~0dZH$m>X5Jy5?6AL`I=@t zbTM#h=1v}A17bqy!QlYKv?4EnE8PE0GFSTu@+ZKXL)MWni8%=~!ta@M$E2GlJF=Y$ z0m0hhL=fy`mz73#n^d^XiOWYbAK-TB zXVsHCvFL)%ONSD1YI-TZrR~6mf>{0&mF9!XRh>;aHei3Tv<-D4Id_RNFrK%I+CyhJ z^vEC{6_^gLWwtQGfN!=ityoa=({OJQZrqOBIMN7L>^CCTAx^g8*9M zHdFyc{$Q?lcim#Vaql@HhJYHY7&`HYSqXIY@l65=%G?}WlN3^xFTQe_<>VgxDwv8I zW;6zcm6X3md2bb`bKn+Cr_2}VH5-Zn%kf3)^l+o>QL8a`1pF|Aw*nJ<#_(Ta`V%GW zIZWePB8`>ehKvE^!JY91p^?)R4mZzBRIor<+h<>tj0n6yQ`U7hk;%jm--yHyhNFNK zp*84Aa~h#7)C`*`|1Zn$d1ovxm|xiiqAUevO6k<# z{y5poU%c9=V)TCuF29fG1`%s&QL@~{^$C5RxM1ABPrdfrtrKuyJ_!7AvLTMbW2_;= zS(v>!5|HBbC4AYHAozyOZmAZEN*k;5o&YO#b>MTr+V21l^GOkuRjoRv(<~gh{`mlZ zk|IFb9TFrR0jT~dgLv}w`g{0~{5yZ+y#e}DoN{-A-m9!ZY0p}=ec>nhwe{~818T4L z{t#++miIX<9&~@MI%56E0Az34A6=f#qvM~DF$Q$o(bd-fqF(+w?YW^zm&i${47qHM zZ~XQ_z}x(J%IbcxGG9Md)Gqy0HpX+5vFbw6>v7&rCstT}Q9nNrgu77OfrhoBVK&zQ zPB@UC65h4bS#XUkB>2i%g)VqqU3C&^509Ll{V^*n;B_|1N%JNZfZl^(oL6;+kSDC@ z$ExYvRIpnV{&>(6U@2q88#21Fw%ePQ_&R(l=9k6D*XSL)U0XAq$0#cWk4AgRnhKY$ zJ-dllkP_-2IjX*}2YMsX>_Cgw?EzN&Kd2nCLOC#?k=n3Hs^$s{amv_C2G}}>9R9nw zVCFl9s$?=%Wtxiz>wwHHcs#EE+PpmDMT*F1=`c20;ykTNLc&LB(?fm`I9M5LvVXlO z=Xzar6y>`(`%O-UdsE&K(VIKzvM`%Z*8C88%EGef-HyL#2C`dj?IWla0z2`vkOgn$ zA|~t>5#f4;1$1zgv5Rgwh51rm&~IQ69NaY7yY=i^?7A(%0?4-h^Ey1AIRs* zQU=Y7eu4e3To}h+e7&@H_28k0&H-rjShh87^C}O`BrA3Hu>V@Y!=Hg+z@9wY z7y4%lI1n~nc9&X#7;%ZSN6eMT z4_mEht>}O0lX2DBQt}=)3QFI)=l`qTK + +
    UDP Port 1
    UDP...
    UDP Port 2
    UDP...
    \ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_4.png b/docs/src/images/Eiger_bottom_4.png deleted file mode 100644 index 1d3fc6e6cf18277cecfbad7dc8ca668cdd7036f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34597 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 diff --git a/docs/src/images/Eiger_bottom_4.svg b/docs/src/images/Eiger_bottom_4.svg new file mode 100644 index 000000000..8b89a09f7 --- /dev/null +++ b/docs/src/images/Eiger_bottom_4.svg @@ -0,0 +1,3 @@ + + +
    UDP Port 1
    UDP...
    UDP Port 2
    UDP...
    1
    1
    2
    2
    3
    3
    4
    4
    \ No newline at end of file diff --git a/docs/src/images/Eiger_module.png b/docs/src/images/Eiger_module.png deleted file mode 100644 index 44a36d072098e68468eceb5d14422945fea43d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120352 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

    |Nc&<`+GTrgb+j6@#ed#4dfaL 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

    eapiBj=`s@X(B!ye^1NlCd^j-V-=>HUzZVC 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 diff --git a/docs/src/images/Eiger_module.svg b/docs/src/images/Eiger_module.svg new file mode 100644 index 000000000..a8f4c9a4a --- /dev/null +++ b/docs/src/images/Eiger_module.svg @@ -0,0 +1,3 @@ + + +
    Top Half Module
    Top Half Module
    1
    1
    2
    2
    UDP Port 1
    UDP...
    256 pixels
    256 pixels
    3
    3
    4
    4
    UDP Port 2
    UDP...
    Control Port
    Cont...
    256 pixels
    256 pixels
    Bottom Half Module
    Bottom Half Module
    UDP Port 1
    UDP...
    256 pixels
    256 pixels
    UDP Port 2
    UDP...
    1
    1
    3
    3
    2
    2
    4
    4
    256 pixels
    256 pixels
    Control Port
    Cont...
    Single Module
    Single Module
    \ No newline at end of file diff --git a/docs/src/images/Eiger_quad.png b/docs/src/images/Eiger_quad.png deleted file mode 100644 index 462ade28a05bba1813d638d398a2ce7a378a6562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36130 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

    8Nx$Dp_Gn9LOk1opggZDC7QaRR%l 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 diff --git a/docs/src/images/Eiger_quad.svg b/docs/src/images/Eiger_quad.svg new file mode 100644 index 000000000..cfa951382 --- /dev/null +++ b/docs/src/images/Eiger_quad.svg @@ -0,0 +1,3 @@ + + +
    1
    1
    2
    2
    256 pixels
    256 pixels
    4
    4
    3
    3
    256 pixels
    256 pixels
    UDP Port 1
    UDP Po...
    Control Port
    Control...
    Quad
    (Top Half Module)
    Quad...
    UDP Port 2
    UDP Port...
    \ No newline at end of file diff --git a/docs/src/images/Eiger_read_rows.png b/docs/src/images/Eiger_read_rows.png deleted file mode 100644 index 5f2175de050e18abecb4e1fb2e8f6982679360f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98697 zcmdq|Wl)=6vna0000>UQX&W004gv03cYPBEz1raPg?a{voLd0<4{!9W7bh&D|_5o!o7lJ!bWNy)Fu<06WMEMg!Psrh%VuJYfJ9BsC>;~>_(CI* zo*Nc0gsw2D|6I$@W`9FG1v422Z6fuY)PS#o@89FbT@+Fz=3jMENBpINkt~_BjyPEf zz7qZWEVR(}l6qhhU_qir(6hgtRmH*4ON9dn>vcQ{Ql6ZGS1mX%Tv-lr-~R_L&9LMY zW3+T^SOR3(yC+puLVcG04Fe;6$cd@g41;c$mPK9$q|B0kry+MoBtMi=7viQ8VIvd< zV@uJ7n4Je_pu!gdwF!#4seZc@KbRK&1)Z}Oeqx=UMF@CYfpUR=KHi0r@l`v@Cc$U1 zIzl~HmJv^jWTm;{56W#@KKGyri`a_W|)Vk2w{!z8k zJU0?VZS9l@I(N28=H=CX{yj%73uBOG9N09+Zc%X1@oqq|TCs8}pq=926d4}wSv57J z?ESN|TWYyYHhp&>Ba&g)#H^OS0h1_b#d%@xCizCbJak5V19Fi77A0+>6ogGjityib ze9rpejbZ?w!}pZcOtCl3PfyV9N_1vcc%7Pa0;&+U%D^+>4HVI$zxh_wr~w;4j(T)V z;A9ie$B#U3?C!VUNT61TR>FyounrNQZ-{T!46Doi8Hf);q#XqSxZq8>9 zRPTrpjRR6Zr~aKxY?V*PT=x0UtNn53tKF;sFXE-YMNg0SpoRt^)JYb+xtqSLrY1Q5 zyUQ2tcZAzoR(pF8_XyI}8#L^A^g z%u9yT;qQNMKXzl@e!LF4x=6vgEDR0`Y%JFGnFD3%;Dv%F*3*1Ce$7j& z`z-6QkDwI7i0mNFL%dzPKZ;+VojH2myvi}VGH&AE6rP$x($yohf2`MYX7U(h5}-~j z)zS=KuBvkvV6SJmQwxMZ-VF9#%+B_ktlL>{qtXbz%EIxNR)AyK_*^obF{>-fyLa;f z_ZeZ((NT%S?*3kcj9&4LSyd*{y*_wR_wzZOo~l}S1Oz5gQS*Sk`=>i!KZQEo_*z9` z%Dvv_vlkJnub4PQ53_SkxAumL0+T3$NmR7~d1_yEKDi0pZ`iJPO=h$hDmzi9RJn_C zYl5v~j{SK#dV@19DR*i=XpM7+wtI&jE$Gw^a0ySotgKBb2G(TYSrB(%9`{FQ)Z#?n zKL(#so`cV{@782WdrD;^$A=TOh<1{auEa6x3!kjQp&q%l;Upw__w53rAkkrv$o6{7 z(__mSgeHQUS7Cw1g2>*v#h8+;%K5N=OV2`io2x&Ijc6GjjxxKsITM9dr-r}_8))H% z=W}OdAHpUN#S}9!q49~A2{nO+p@a{%0KEu(-(z6(h`u!N^ym;6_a0o^cAYmhH2i|_ zWWb9&d}WJY!)~R%m@bxB0UFE&KYO1M2A!Vl77qI%#}o!nS+}`^KEwu4dqVkL_At+M zT*X91aiH6xmmpW3g_;Z$h_G-^g+|Y48nl5>I*9PdT9k?EoTpL~9Wqx7>EXH)*|PEdg@PVTI&|fhOyfbM!B<$SAjrR} zz8n=}c!$+1n{` zUE~8UU@f2_VBSdUep@KWA-~vJGk1tdXLpK`=CPprR^L}ahkpVT5ZMpq>U57@_hOoo zdLxmGF}Z_ZKTaWN)foU|i`l|Ul53krBc*Q&HddhU_)m^!+hkx zr@ON&aY+@{pUhLEgoq;Vp7!#DYJI=-k?uGTP3A>1a*v!MKMs*)C??$AUV0R7h1}hq z01su~1A&oZGwhWHA$dxK$jrLd$+ea94FDFF0G!B-c{g&wq1j9~JTwsilVxteUYpPS zLjoUT`P`xd^fx;4ebJAZgd_t5DD2wos~W9JfmlBK`F(eT>>(yExx63VS@4xm7bY8> z4xkl~stY{=D}@$c+Pe{+H>n^K8$bi0bLBF-S+*g_m+?8PU+*h^@e?hD{NR4-gP$~CxugoDiqPApOauCvDuy%1d z2|0hb>65W3v*ocTA*sV2P$@L-6bU}9RkOasrQV$3ua-H2NYF-2lg%&wrii-B$!rgBZq@osotN6b8+{aALaApgHdFw(T zR3uBlwFGx0XYY1uuTW5j_-}R7f;g@EZ)1W`>jJ%Xckpj@h#oGaZ_ADV=eA^~&tHEv z^YIv|xD5o_H@L@?D9tWp)AW(>QcGW1H|5FCpI^u{=utvl5@s0r5Fv)^bABF9bE!JhXB4MFNX$g#kv?^*V_@fA<(5rEgb|qf{a?6(eEpQM zs{?YWPgK`dn-d8>9OvKX)k#s z1`lia5?&&&8>t$bj9qr z&Ax8)YjE*aTW*x)pu;`dq{}rNluiWt8+;+X=`ht5cx2#$kzSjns~TeDH&k@(&Jt9J zRQ!-yzS3EBZuK^JFWwOf8O0(deY(MuXnys*l0Dt|eFAU7QG8>Eqp1kPx`&hQsf(5k zk4~Cr8sO%zk>{_VVLj_v3D@$e&A}R_T-H9V>irvB+Zq~?k#&b2W?~;u=g#5{s;@n3 zt!KOr0~OhvuRCq86G{}43Kc$T&MB0C9Qk0uR}6C&>pwo;UU0@rN?sx!4Ks($8Tu9=csv7NR0eIg?HHqX#%D&`le3> zXp`wWX(gMG$2)nCOh zyjMZN{juebRT7Q(FYNfrK;;Nrc-Va{f!%m!YK?&%8V*gQz857cj`>(XFRt1xJC;0k zp=~4Eh8h`nsL$q;0-euTqS<+U?k6HPr{g+B??RRuau|;y{S_8w5^c8CE^IgMh?Z!o zl;`?$1H7+}Q;fDF)f%OV&`f&u_bSNvLa3flAt%l-uYs@Sot3TFs$A3X`%!^$1N|Y_ z_k(3@e5F8OvW_G15r)H&xO#Qd;@SFsE2LF#r=}($EC1T3`Yt~oD1yrh3^yU&A<7cs ziT`JHzyoY+Kr0Jhw6pr#Vi&#i=ZW-m4V*jtKH@k47Gu>bdV0QPOlBYQ{soo`ayw)` z^Yh{WBFWeP@KRE(6~@m~F)*36f&|P5T(o;v<)K-{v)OdHMV5=sacXT(7x&e12x15Y z=>B%%5`@EmKfj)h9RD$@SYH##VLyF*lUe?Z2tU8w`upFkLW#PmukXo9MnR~qJ;02( zr^()4)QQK>9~d5=lJak=Z8xzHBvSQsA&F{>`QOHxS`0McO4K*9x(!VV8qLnBOMJZA zYHRDPE-gt8PFW3A%0poxldqW-JwnIJ^Zf3Ve`n8HXXN>MyBR1oFZdowY=g93zIz>l#OkL}!$i7J=KI!W2v|NZ(UI2tEMHQFxIkgCRJyclmAGwV=TLj1osAItra@)=SXk)&Xq%Csw7PaVknA z05#zLJr2B9lbWOu0esLE+4Fj6DA3nQ9ANCzD?k=-MIXG*$O5lI=i^y&w1D9l7#Lt) zuV1$mVm=H34aVs{K8#s6EsSq&_`ZDFWT!G@Wll#~%pC&#Bml)eKJ{p*0-t`jOEep3+dV!rCtpMvmHeM{eaB12XUe>`|6!oFB(l!k(gekN!R zUHo|s9jR#`A>XML=2N?QBs)4LrTNbLGlHI`J$nVKSF_;&4i*pg4@uiOv?;Mw)7|DZZ@y=BIsb1!V5KEJbI z`u3?G;lxnk?=|;1=w%{&riS%7M~XIJI!A>lQCSb!*w=D5a&3R=B3A6`3VQhmk4g*? zKC%I&g1~u!TZElIFqewxQ^w~C3le^}h;o%(!}cKrzw$Jk^jTXGfJ(XV%eo&1WRL8~ z@9hw8vuxN37A&0WVGB~%4f*E(EEdvDRjJP(6pNC?N_6hutrN5tj$3~P12sli7rX#eYN|kJ8Co# z!yyi4*Lqc~_x~k5jxj-%G*4YUIxn}qye{FK4jmv0N1s&+cDP>d&WQeKXrfpc~oO3YIBtAt|*C#P`AmOLG^3a?qFtSa2=>PGwWes$EEDlmr*!F?d{wrFjm z29Wyv`SupR#rcYS*HFy5<%(nng9ts432RJ&&uy%31tZYdp6_!vmCruKGv#{Q;MKAF znd@nM4BZ9b8sb_&*^pu38+dm1{1i!DU+a9bw6O(p2Igxy@=`WZ36EKSx3+@prwFdm z#k|-%BB^})DFXgph6H)O^JNb@qbvlo1}Wtwly}4UBv^&68li2D@TbU&&^rFsQ7y30 z=+yn_bg%X!k!HJLr)_L+=9Lmqx6@TZ2tyEZrWwh=uG?LCD zDleCyN>Pba5^|p&w8T&=5Ttv_WMvwm)|L`t!=s#mXQTQ1V8J3!(5 zB`j-bV#af0kVpsn+7qnbEv(b~iow|uHqu4o)^Fe38SowWU4Lb}ov=WU<8-$afA_|? z@|VwtzfX@JK{>b*a_+^io}ba?DE>w`PPO1t8(0X%P~FF$zMp87FbiAQB_zx8JIo)D zkmLH#EwC5z?c?K)m09QlGGEoFuyrd{2)u6S71T*KlAeWFX~F_aMW)Qp1YNBQhqE1R zxN{^QB5?o2zk0mK`W2eK`L4BD@cuA-aPrl3{s$v^5$D#@zHXexBKmci*Qd!8QUCY) z)%ALPzhw40&Hu}eDMw(q&rFz@0NvZ}CBh-4amUw1>oriJFGw8z@(fTN219y5e58B9 z1;afdX{m-6K$VRfE3!^dmvo|XGWnQ{frCI{_9~nG(mZ&l%R9oSgT_xgpc+c14 zIfN)TO5(l!O~4k=Oz4vi_*PFAYZI;EwU2`R{Q@nXBNjDJY)FpghYap)COdv`e0&OW zI9xwB!_U{_k2JqQdP6HER{~!PL<;gJ(?6j=zK15{j-xS_d-KmLf*K4>`eTUg3Mhn@s zFaT;YwN;ABzg#HWTSzuz*9)V@p0$yQZ19TCKX?nvmolONdmydTF6e% zpyk;_FU-T|?SwEd7kx!X{Q67Yi=iaYz!>Fqt=#AwtWzG1$X*ZPi4eQ*DIBTO@tCQ8 zm}tU@*=?xczr5GvyrXa}TaxV!MENzsE@K5O!4wvr1Un1F=Ja@e1Zj0|B0i_d9mQ0h zF^NUcE?>FgX9=rO`TW!SSlY={oaE7l-vnGvg z`LF!h)Rz{3sS)i|IYMk3KS*iHdhz|AEH1Se-rL5-6^`jk0-@Mo1OJW{_2ljZ*o+($ zeNq9a<2gt_W&9=|QE@k0TKdX-Hd~P1czEsJW z_G_vHbTIA_Fcdy;ISG|T`}@7S9S!MzrN;t!Ync<7s9S;#-}vhG^&XdJcGu#9)?=V0 zy05b(Tb1OImi&YNv6b{jMOl)I%YIFkfbQB4dqZsllVCg*7`K)$V_UYF zhMxGBykgwOUdKvkr!aAekhfYcrL<@|g`SFSU|NjD>cZ5CmckJlCTn2A{m$Q5ltRFp zr)Tp6kDFe542cl6tDyhR&0QLwG9+P#tokMVYo#L7+7wNz3$+WL@F@Z=Qr(Y02YP~? zT5&F}?8GE9i~HMH-@8~F$=ZGDhrr56NxjO`qW!SaL7z9S_CKTbpH(11L;iX+~qvXMt>mxBa`t#c^=uYgok7 z^EUs1sMc&34+8on6MJ^z#R0WU)>)s$ZmFzA_+!vI2O@3f3y5 zI^Q^H=zZ&)r>PvkK`>~+A8zv}#EN~<;*Bbm%l4l)CRqNR4Nt=+%I_K{K&NdEw9i?h z)kg9=vRogbklB0auBcxfMYR7n9{(T-JC+tPZ%&c;bjn(vJYH))Y=|n2sdJU@3u%Vo z88$az6pUC2(;vQ8#=Uhe{>n>k-xbL|3e0AS!V^7EaE zium04z7y?5LKz+@eg8gA<{MR_0$qZT{lte2Z%3#qs(H`ZsZ6paFzIo*0&tAJyI2#& zv6B?NYANBxnP)K^^x}H$bGz*Y;e;`Az5Jq!9Wq9R9yyjsxG@OstENF=81#$zjJS|- z7s{k2lX3TYFgc9NP19_KA{<1Oxh{6q91JKQO|#5pQSL7qLu)Aqi;0jV$gnQ=GquL| zH#`-1a4xGnE!pkR&MoD83bX~K-ki7c-5#y6lQ<>4f0L-cK!>z?`C|%`d7!cWS%LO^ z%T@GvEQ%@@4G6{7_lv; ztdkj|$ma{cB)p!w4K5p3kG~zxFfjpc=4d`!CrS1dcF)IPzuZbqm|zXNUi`w@Le8R1 z09i8@xKc+X&%t;}Tb78`vpeB2ZsCoBiY|I-_QU{;%?p*E@e>h2#VcTwh3EO%8k|eX z3i(wG69d=VE|5E}Y}mfnlTGs9f|9S0-m)flj9P4IjwUt!AQM3fF_#2AgW5C|^HZt1 z^pqFh;Bxa7_y7Q^EDt8=JMTA)pr@JJZ)LO*$Jiy*n^H&89&NW9w@^!Br53~5T#{9T z-%&XO=0bDNe`=K0mzq+lMlqF!WG~6s(%qOu$gc|}viwbq9%R1)HZ;5aCs)9Ea;B9B zm%S<|56eH(kDSceskPGAyK(}2ne5Hlcneci!L1ym!(uJ?eFD~3ANoipm@h(Yt8|7W znD2&j7}MWKRDKW>gV`juyFjXNMH6!Y5xdqk3;Mnak^qVa)ZwswZ?IEqyPId)sFG0Z zYTw3|&RYa1%-R&3-3OwdqtPh$a|0{bV(W$B+?{{@8sCA*Rb%s*!p2(y(3Ur{&4Pl& z$lgdvSQ-$tWjM_AOGlTlHN9XsVY*!I--Ux-9N27Oa>rfx8{)WfoY0#2rlTCr_4^~vW zD&E&}rSCilDtQrvN%4|kmBpR>PvPyv3vUwbzLsN2r3qyWZ4=CFHWb%Rc5MdSlBdBH ze?=cM)w93^T%?EQ3`&q@te|(e_Hn{ z_)Gs&jK%Grhi3>qCp{&o3|EmE9H1*q(y(fnIdvb48X56pI9Kz_q5?a?aeC!QWHs=x{bSj0O)+FkKKo_2UhQ7%^UDVZnr?A!048 z$NnZbz?uZJ19LB?lT}VDQP(O{lX=kBFL8ynMDRC^cZWhQ)JUn;6HEg{8ou1iN#mVg z!{M+}T+r%DyEx`zuE!5uYy!W&KdD$uG5)Z|KO5%N{aGva4+y5|3@$CP#)> zfw`#G=cTF=rkJ?W8^JzJ_>ThQ_M%IS-1%l6tO->(rNlU8>W9giba1i{-+uFN^sjj- z+`XF|r)hVs+2#>4d?4kDsY{h^MW$pnl+{-?Ej&9&G;wZiFfmH`-5l?{CnB>fmua*B zGglSO`^8^9ma~s3>(WDC_WSji-(T|_Ij{|RK#%Q+g~iF9uQOEmnI<4;@I?ejhokYK z@m5>1g%Rv;j6V@;ct$0iO0o0j40JzfXYF$2Vwv}VY9n2}h15Bc8Gro4EL<}f%1ZhI zDJ5F2>vne!H3Vj3^85FMgHC0O$uKcEDDXEiAF42=L_6M&;*hdZ-U97i`iakbC*Q*i z9h0EDx&jw*R{%jjunzHgV@aF*#Go_cAE;Yb_sZR$KcjEEmHT;T7yE0TFqX!R9HjLHrUZ9n(Z$QO`sREolo8hNOHkPywOw6=8GgzRg(j=_I zkre!4aYkGOpd ztz5taF9@oKic{``bvx{C8{p^M`URjS)Jl?Qmu>WU^H&Tcj;{@u;p35S+j@ecY#^k2 ztx%jcZ_C}BE|Dnde&+KoX^6}h&W(o0NFy&JuQ$QB3f6-Qmr!-8=iLX|F4Db2?wRkQ zNlt9rkDwao5ObKq@%R?(l-tWJ9u!=TQ2UMHMTsxYQbQ2iOW;!cdBXy4J*d)hk{~mB zHd5d@ACAlryY3$|bhwyXq>W&I{9Un=VNRFE^#Q9%(eCIgse_ zE6Cm1b)Rj^nlT@7P@p--OY73xH^G-~vU>M3ohM#GP3z&ozd4g0Ra57K_zncR*4Om= z4jcr6eNEaaf}w6Gg2E2f;PBM%3pQY+AWn`q)3!K>b3El)>`1ytuZo4b^)YvR&romCIF`97A zVx9`iQ>QZgwG9eN=p8dqZP6v<21#ok$b`$py)_g%p2Yb_xGjKOKBhsVh^0ap1}*Jm z9nUFj3gE&6y*Q*HLGNn4YTDF1oZAuB1vH4i!tB}5{;Xw7J5QzMwlg{=#Z?_~r^xP8X zb$NlPAi|t^CRXNrlX><|HMzM@-Xj_}?j-d6r6mo3K*!rk1!qcF-)%wY;+OdHU4s2R zE@UBQ(r=4z;cCAb3QJ4lA-%H8;oxB9qX~}Wth`hluWY-=-W{2(mLzO(CX$mN1q16McHM$AFhm|>RaWvaVOm0}J^02WIUGF2L&U(C8iHV?f~j(8 zs>nyY_0e1rAuipnMwi2~>e`#X(l{VjLkJ&8<}isgov^nm&W2q6*|b`X)uU|VF+5N4 zzB&`%AAIx>Kn1d7E?f^)k=5FjHCW{&=S8cWLit?kJ|9|O#m@XTKkyJ;Gb^{g9E~@x z{rRWMo+KX9w`Cn8Mu`i7M4#mzx6jeD^AKxR)Qb7d%m!3}HrIF8f{Om1lQxf9lU$3B zR({DRyin8*C6X1W4$EFBAK+(CJfMI}5nXDoc+k&BYcfA8M`U8`4(JPU8fqaMlyP15 zYfZ$TIoGltoP1OWW>*ra>Lg>3=Blb*qJ=s<`#Tkt9Ads>BF7(>N7!CMYAHeewx$zk z6bP`a5DV1Wi-{`jOhCdw{00R(cI1RX0B$n43g1&^{cx?QaP4C&1HzR4U~zmh5dck2V65 zpLsZVvxasgkYNf>YG_0!a&*)&d9GRr8%@?f|2M}N2-}D%aT6AZ>OCw>d_m4}SWcUz z2Oj-K2sxCtuQ}GY{W7SpFdsf4%hPxddBRH5`%|ZobddoIV7;U#x_`*v#~fuE`soq4 zl<#1!DNLmH?pgTk?|#IGM_t^e2w`UYP1a?%ghdDAyto{bv#*1{1?fi$mE&u(OWd2U zGTN?Vl4VLWnUAmetJdM>=rM2+cQh2{(On$sb?2hQN3^*|&BTHhR)Jft3R>mwGjfw` zwN_)fl%nhR}l zfFcJhYbTD=rNo6?0Z(gL#Cs;#bu5SRuivvM%+SzPHTsSFg^`MHw1ALs<1bdB8E&N~ zV-J)D43$#40(py=e=1{4f|^1Ex94X&u%#o$StU}C7*bKycRu||WiaLVu}ieZ%T%Z+ z6C5pESb23LhY8aR_i$@46?BfNdap)jHm9J%G!vU>ATKo+E}M=?4JXDHt49)UNfFVQ zcowcq2*+&&F!UR;;lj%q3P^}>K!SsB13yhGW8o0i8q~y9D*hI^gJbpTTxxW+m_@mV zp-?V|dG%f`Tcv=)WV|x*&PpH~F+%}Oy0qEcVA4?x7jZ)-sq;`iZ*ZXdDBcEBeaM-S z&0sI<2fCDQdhro#8$>wxko7g=KI^-MEcCx$6K`8##__r&)0_Vgdn?avf4u1rD=1X zO`Viv&y{Uq#OPyIgZRAZ65`lZo8^4hJb@9_Lo~y}CqSi{5%EqkxN#&i8QtN1Fm!=S zQ75;cL3?b_?=mCKnF%$ZxjE;%CcdOb|pm9#&eG&-;k#2(}^N)l2TEOefu%oS3BEkF7IjqS(diEiK04 zX-^+n*mGiJ75T=r#a7;A0BpSufYYL|MX*t9#}0JQmZ=P(rGG_<9} zM}A0fCsjnozxTd}_KcA+zKtvMl3|qUVKHFb3-A&}&!mvrt6cgDPlf3qWj|WSO9d1m z3F7_I>3D%`3DsqS&eZU}2o-QLIwR{;GEn~Hbuuv=CQZ)p$*+G;pr) z5POsf7SX|HMH9ikt9cS;0>;*-ZYc<-X6Ls$(xzd|_kLE*5G;wxtfI2uY0FZ9T#=bg zN^3F?al_Yt^eWIY-#o;5GaD=a9xKvg z9P{Lu_;)L=3z9g?_do^t8)^5uo0fQh~a z9xN>V@`T~!j(sP<(hE6Ps;nGb!cfOLED&qG; zo^0@znnk)#yLf}i8ia&=L^UUJ26zyP*6x617zDx2V8`oQAJ3bHGeU4pe|e9FG_?q4 zo-r5S%dHQ5ObK_)lTjiI_@tT8Pm$L;mR_guO@Yb$c~vbDi(}N%Uk(uh`Cs3+1Gq>* z!M7AaNI?rjSt0TzA)zJ11%@NKi8&dVD(|l{e5K%g9zs0Z{p1Ol+ZU|3@fRp-I&mLV zGS+j%)Dxa{|1eZJY5lu=I>^kZ782cP(j;u-AT_zU{nRpy2dSl++!XENOL)0!amQ*W z0?@3C(l1?T4v$-&xUz(;Top=khnRz>YYAetW3$t17w^gY;vb4?_-p9hzqEU3W)-`@{X&|0;z3+8g{d!G@;-m0fIuB;@RWlofPXWoIVj8xD|7>ao4x1WDsaC z=kx8XTF|rwEDRVOr*P5am;Ae_!~D^qB0lEjvHz1HRU$0dOrAJD`wt@63)fqvP=$Ha z6pzao!H^|%_2*vJXv=f&D_3&Sc2XG|J!#rWZ}G%(tN$Z)RlFNkJ zd~7i;-LBgpTE`8l+NjOOm|sk^m}xX+xtUzDsSF!9h4vtn_Kc2zKS?vK+xaFq;gml4c!;4ofS58&DLjGCB$Tf%j8}Kqf(pvH zXxEyS7OO}-8Aj7R0aVr5%N!Qx$1+praJ-Q}ko%qxpte~b_X=-``ZqNk60Q;o{yFM9 z6UL7KY58E$Z#OOQgp1>b6v+-%mBYgzu@xFcctbC=_3pn`zN*`{2#RQd8ofrso+ys@ zB<|{fDazHh^%)p(^WDXvy=A-}$ms!Nx(d6)TFir2Ye?s9=fiiu&$FC8w+~1&idMbQ zUQTaRzMXpaI}%;Bv+Yk|f7ilKrF-T2;CnB=HUo!D(1hW8;$W+uI2~1_>3>?x4G+1! z$ummqX~lC)+wJ?|zu7k;=?MRL67!mHiEd?aaFVS%P~r9;6+V z6(36Z;rSBiG@gSl;l-tnJ98$Cp7bR@LcvCT)dY%%Y`-e~58ePo80=Y;!&o!b5#8uC z>3VWS*;lvWJJ$c9-S}|A(uuxHKmNj$zF;qpSeeBFhLRs(F8(T?OMJ!_B+z4Ck*i95 zx$4Xb_@vZr&}S0Zf-^Ej_(K!FpX;L%s|9;^b+MpL|9`0ia+k#cEpLz!Tfar-pQ2di zo?-_F70KD0_d07e)rP}`99=%{e(HlyqjWIc<)tTP9fySgR`GzmT_mVGZqZiYsl%Pc zl_v(6A7C%zx{Tk0I0_gsW3~NR29M~qkM{l80i%s6IA2c2mWL%u4sPu!l3LB*4R0q` zj>+qIA}jM<@TU)1=nfi6MJ{|S{$SHDmW0pRj@Vw`warKbos#(rty|twpC)QFFB*nx zksPaK89Df2Ic$@pp?_1WF0=hnT5^fYYGMbW#5_<10(KJ_UblcgO$pb}(r4}tW_4L- zIBCSby)pCPO{hS6i@||)B7)Qj|2{e%JN4b|&wvqnq0=)hGokP zABO(yrGsIi2{O6cwqxJ&^r1k?M1Woho7li+X8FgS|0xRLnLYaSRognLjHT>@i~BSF zuMF*t1@(U9`?iWr6^NalfAo0p~^p}?9v6C@4meYhoWmED@-;;Hm-Q^egLH^6Yey>49 z<;UemYNcb%S5>A-%`v$MYMOTuf7T2@R6I;BQzm?SY&(4^^MHYy5M4`<0sBH(Fw{fEnyXSKSE1rrE*&)dJ8U0;az>_tU(5 zR5VaX%5u!r!olK51NE@i2h=)9U&4~(-|E|)o|YLatxN-WqZ%vU<;g z{>CXK{&TBfa*(Ed=14dqrNpxgd6pxOxWBk32WAs#!k~2rfi^$vY{_gsA+-NBeAiQ^ zi`;$hMxJ)%DwLDZYf&BR5Bt>^O~kQKiY_v&waE6lEYgvKi3SeC9r^vgBc%Rr2zv@# zdj~5lpay=pbTpqqIk+MZD^=0^2ycFqAeH7vUa0!iP&R3fvC(?!{cpbfhMlC}f+2Cd zrQCJ*RH?Ha_Ny>h<<#`53X-!>0}+V)C}iES*4w*z!oq?0j;Izv+F$s_7kg9p$XBsq zQoq7KS+p$xr$5CYv$>x|wfH~ot<r82T!6e@N zW2W8(Zz^3$)f`5-q_}fC6^jTF;v1Jmi^cS)k@WuvzQjFiG3|jc+K8^q_eMY7JcuJv zPAJkwsB`PdAvQt-MgQU{3#a$2#(8uU$WBNxpr&p~0Y{6CtTJEb6l4?*o!M=-%rl|D zF&2YmEj!y9>C-r%dvUHE{+`uaH(`K90uohnGQWN5{qQ%U#WFNcXuZ zy>mHt%)3zpGl@ig-5Ph32->OISkQw792a|j!wbLe;n4l5V_EAwBFb_s%#l6Qx?@lg zuU+Z?wiQpuHYZv<#m$Rr+O94>xPE4w+dwC>=NtRzJdwct%|Cp^Nie;T*aACMd2`yL zC&r~Uo;eIc$`wZZ?c^=0(ri>Yz7^5LJj?}Q>-G!TtdLvsbSlUCfYNp`aUl!<3_-+= zpqxJwmjAC|jaYbe1n8D397sfTyry#8rzfa?LXG^L%`xXau&u=!CL;sE41k~Y!~X0`6KgbOO%Hfvds$CW>{Ea{Mdve@&~!7wjeE{)J8C;mb&B zX|T5koX+XgMr#__hSzb5a-`&o{8Ele{Ffx}B6^U?l}CPYS)Qe%f2XV+IDsdShdjbJi>7F&@Vun>K(^mmf7;(11><28*a{E6Kfr*RbtRpO38f=KBhNV6^5Ng1Mkw0|S zSXxrM z2m4k3PvBu2UWw&xR~~98e{j9uvk|#f_|Dzo?TNV_Sl5bP$WVgy)V1yN``WV$=91uQ z5w!>-*VragX#m>?Z+&rkSwGn?Me;;ure>Qc=q(qBG^03WVciGz$Ks5w2Dh|MS_o*q zgVRcq>r~=b^@F^B{>YmJ6(U99UbeLdo6XSV`-(-L;6|!cYldbWWKMyyZF3pbwJNq znW!lf{)1#%8Nba*V(vQ1SJhi550EsDES*Um3xCW@LYW2jYe(jfy7g!gYh}9HraS6Q zlkNcCNv4o7P5QHdPlI6PMt!EpfRIo#`U{_Z#QUpJdEyB_yAqfM(^fTUdbxcLuWwF6 zX$P7l|54xPZQ@{;O5N5~5E?Rs!YOHl_j>#~7MJ*^8iI-{WaGZ1znL7kh~I%&+j$UY zP`X|A*+9XlZ{QD+u3TadI}f{62uA~bYlwv-JR)iss(La_j8~%{cFC+iyohYlO_ZlV zlmrF`GwTNqfhIsdyBR0)?055W_491w5IS_1PY$RLMvJpcVa=K7WQy~f#IaHu+1Unt z1BQq{MlXkPZ85{B#c%=YxJ4s)%i)yQ-Y7GqE(dAa(10|5-GLLk>RtQ3j* ztAw&7ZT|!{fqzKrfw0u9##<+Kq3gGdhO&-LcINB=`W{pIFNb;q>~Z&ycRt4y2Uy>v zrvq_gcO+OW8yO_(9<$@XlAn!!y2Sl?V{hJB-d>R)4lu{0=PJr0QId5s^}5Gih1F*I zB$f30m+TEEndN4GOE6_55VxuG%4<%(*}mWmcVd^qw}rKMWwyRE*OG3&uWN|_2L;Ew zLUkU5?b*2O+&F4HRV`PX&usA=?8w=s(^&YbR+;P^Wa88NeFZfDft3K4i>mB0jtRa zxmkxMT4k3?(YMVy9VcGw$`qRe?=UAjQD)ud!{NfvivE8zy<=cxZPPW{v28no{?|8x@syjS2=XbL_dKV!m}Q=`@0p=<9Ei9>|MlCLn4 z8@ih=(xK9*`vK@G6oakrA8$yEn&gFl_`f`T}No2>E8hIyXh6 z_a41ni$Iycr6%i zc+N1hywT@XRi|^ix&gwbZLYkH}mTi>N)0JA2*Q>t!%#spadPpE$Cda*U!@D7Cr{#@OnigGs zDbV}=liz19mz|kTFdm<_GiB{I`%u^UAXQzbiX`zr8>; zR~*Oac^|YxSv$tghsq3RZ3vkUw`E$G|pbvX5n(B+{ASnHoH-fitlK9CyRqJ=RB7>{yhS37I7s0yok?Q^g=#<7b%UOVww2oq8nh|8Bl4#Ki}(IkE{`lz-4@cT1Mv-S0^-5lMOY)-Cn!&YH!K(YaoE2v&{cG-B?>UFT@`QR*P zk`5afen!6YrXgO8_H?r}uu0}zbLgb~@1S`T)m)5~E*&Xx-({PcnwVk`M~fb?e|#o( zYhapl?W6TBDVqCZ@8%XzASin z0^w4*PjRaKE8DMQN$pTdl8n#etMiNg^~0~Ey}@dqX`XJGsxKC?%%7#~Dl^Z&{d- zywHzMkqqtyBpGxvImdT)co6_0CmwQoWX^U_R~0sHQJA>wU_hLP`~(A5VL$9ky_XBI z0+{~Fa>8bbMZ|t?;@TScA;!;KY4qV)SNj7^koKEF#Cu4Zyo|BO)Kcfco1pQ+=Rw7t z5TO)LPHSd%HkNH>w4w1;Nvgd0-FID7C60*&t#xSnFD$jMsH}?8xWPSCOrJH1l@ZE_ z8oC6WVmeMpJ5yfu19uTN3`-|FWI`(cvx(=Ux915f?hoSQYJ~nj2Xc`No@t#KUeQ)U zZSOF()fbe6;iijHWKkl%0Fi&7m9sAZqCdLuN6pS~rGz2gok0=N^OXxVzH?B{Mhh?` zb3SCm6k}i8(W}B<*Ym8`QSR+zaT1U){6#ax$;g6} z6Nk38_Oi37G2UCj6nR~=o2;);QaqedSk{zCN}p^=j!`B(!kC-MC-0j*qKOXW4GMHP zTOQSw%8S*Te9C0p5L&9-o1^>1r)Hu4#ntW8@tarT1KVHA{A=QWub}ILbG4nIU!vTM zX4zXabsMD8yZZv7^wizk(Ol-JDH{Lk5v0jO?FpjHeLt1+L3=OG?mb zR@V8Vq7&PE65--TD|ViyI#Gp&B*8CxL3m31w7H;1tz+B=cYSt*$W{jvtbd_NkljI8 zRy4H8c(2!s1C?no2H|A!gwIQvUf(@k<^5dj!42>Q00~KaY>=y(U|yAnrJW~jgG)Z} z560yOQ_}j?8u1Qn)qWem60t@IQeM5?)r(s9-)O|CMwV{%!UUK!SGYAe)~%Y(R7-Sg zRTfkl*`F-~04506^`$cWK6}>i*CC;)8)({mpBxjM{x%R3__jB$ZvvR*TW){(+|0^5 zd_fzwMvw#IUEYw8DeIN!zdwXc5M~M8aNe5N8x(APAONtNy`z3wQ#kUd(*LsG*X{JN zWE19NPVE1!DqpbmI^(;0Z&KOnQ<&IpRaD-uS=bpalVzZ$oTDyR#3MveFZ!o}vpk#q-9Vign z?-QOZxd*y>t(FJ*3eR$s2ph7-d+=X5psF=>+`X90g-MR5z9_LDC0?k_-?Q5Ae>mWF zSgf|-L^H+Ft)sK2_DoD_nh1Pb#vXJ;rm z1V>S#UcLu^1Ot9o6H0Mr61sZJM5qzSl|PS-1DR8~+NTz1I$5}fqdeqhkhYp8YAw@j zb^-`cDj9_*0Y0qRL%(%-V&qv_uHWOaE0biXuTK;Aqtbm$kj5&_dA(nHbyO|g*I8+3 z8M2+6KmI;-tSA*=0&yY4a7%DMG*t4cMFer6X@eb@EoG;K4d09a(Wrg5t=Bi+E^B>5 zOv+1~04?7nRaV#CgLP?|zn5&+d~|b|Zem7_jM#Hg<4^!4@@?=$ZuSuL~ z;a`-~_ArThb9sw%GFY~qjzuhmu3qxS3iI}+_8fD#rHP#K69q?v*+Dzs%=x@{)V2fO z)0Cae9E@mQ-9|zUIG0zgmI~DtU1~Ht3@%qWCwE_7mUE;p;nlcxgJPEC+H%siKizpG z7haC3Hg$m%h0(hk@8wJMGLwEw<%0w>u7&v_vTM9*E<#*FTAQ4h-~H&Mx~WTY+-hl!~E9i#fcc`6z~ zXUtCJqFRsI>!%?oQN5QoENEIojZ?mpR z?ZFIH*Q4Qqu0B1whSrQZBcnC^(*9rXJcNBi4fOv4wZg4DxD_J1GC zUc&5s;q0mm?Dwzui1(KQjBy`qc$3^u?)i}w4|#3m*6hqMR@tWrIf_rqr;{vjH)>~o zlw0FuS+TdfY3LDUXAevSdO%k{A0#)JHA1Lp@H?F5lxo%$5wv{RLFwiRChv-vgcq;B zYPyvgzv>>JNe3^+ySSaD-sgG~v;GV$HlF;jwyVsuHfnT*0QaR#-K4J@l_5;+!dzvM zUME?*Nu^U?cMIG+rS6&FxyNbV>h*j7RnoQp3(`?{aKG;j)fa0A;ZK4JH;>0;6R;N; z)$nNvb60$=f5GdR4?o1+5?iaI5ja%-qoClbDXq%Lx*RrVH9Y%=F`*Fqi7Zh!Xo+%% zd?SjFu6ItTWe+ut2J;6Ckq9%>#d!-~ZM0~Y@%^+rp4~c`Yjo(-l>!2L<`=Cq_*ny3hQUphv&ZdN60-WEtqs%ax=`BBDt={g3o22XJ}&wz zPJxkL<6)v}uQLh-_F6`3g`{pMYv!0i#-&6;yzB$gK2BR_YE_?03PZANeDq(6w-zII zXBK$M&!AakOJw2iFib0yihRo4!OjM!wUWeQlAC^%rm=-CYV9y)aC5V>siF49Q3glQ zWLDNDmIX^KflGT6Yp$+<0jG+EX^@{xZ-~jaO2Yk(?jB?S@(S}#nBj+6h6RdiHG>~K zPGdI>{s_^PrxpjpCzi3@%Fc=?DX~8p=7-RCt@6!MszALRo*Z(}a#FVm(_1%yh^Y3) z-h0~nUS6m+xf`Ch#!s=R&`skAYMN{%DwJ3%MsL7UTr>t6(`>Q1)7Oy{jjV-i%%xh7 zII&+|=9=+%Av{ZtYy!$A*av3Tu|SyiZ~RW!B*p#&~O z^mO~tFiuZ?ak{{uv`C`?S>Yf21d@dlspQNqsF!xl-aA~T=)3*qLHBWLLjVzF{c^A=4MkpqYCkU-uk(Q_ zM%DIILW+qZB+&CE{u>iZd7Li`ELer@RobVB3(HR$>lNkzPhi4AnI-4gw_~kXTi7eY zBBQVyZ=xz8c3O!yQdDfsby^_+&XS>)nlM*lq1uWvaHj?DfbDEZiOpHLg#Xr6nr*D) zlrOqUH-v@>@w_9VBG+6Jw{(G3Mc5*%F@7e zfLU!5JK%-k&}3;!{zs-y8UaLTJQ!}kj)%5h<&8>5EDEUkV1(4ss8Z>(dn1tw&~##L zdPwEfd@TB?vwsGhab&1f2wI=Vi3rF4`IC@96s?HJx4O_^%`494x?RcO!QY_U265SD zUX(7L$5Z~ZKC!%@(tV8Vt?b_e?_m$702IEHBB6zID*%EUsJ^;#vtay${hPoXKw3(h zlDeT(e}ML(&zkK=E*CXe3(#-f&EDFlZsxT5_Oq|v2c^rTRk^X9lLGiJWsP&?Q;mxgKr zgvVB#uRIJt+hnDb{!tL<0DQQRAs|AUz^>5xxV5xA;!6kFqB4poE0pW~Sd=;Fyzd~X zRt2fvwzZ9+TglJ)%~7ie93(-K0whHhV^brM#xl24{$Wv#B~J8|)|ixofQHUxN*UH| zcs6}3)DrVxJg%U~IDa!STp&fUqGA1u7KmV|9hE|OXdgm0m2cePWj_D zm)&8fppzfcNMHUhR*^T2@EWrvB6`6qW?9m*qpm$-Y#@L=fA3mJROT&4jNE#FJ-GG& z(z#p(7tPGH6g>eZ5%VaaZnV}4G z%Q`k|17i#>^`4APPmTy!2S8_U_vw#eMmg}BcKv&>DGPMMpv?x4OEwksy` zk=z(#yxHcMJM@ICTI~|Pqse0+Tdr-jzMn4Bimt($T`K{BWJd{%oS>JIrlk*|a&QEDoU3u2=oB(1`K*54v|JFS7_9oY$Pim-Rfi*7nI_zIqPome#OdGWU2=a&S%wS9$f z7DlAtq?!wE2PEXMc~K$0cJ?Y-)+5ri=BoFbL%=j;>vTc-4}@DC7m5m>&9AqJ>3mvj zwS4Jp*np4S7`rhs?IpC%9&Im1LfcXRxu~!+nLAZ@OKBA6#PLIr3WXsG#g!Ls*2)#R z#+@~;bzp~#xc~KQI4Q5eRo?z@PBd{`+|-ccc-XxnW!nCY@~u<;HPUWdh8JiT#r34M zkO(0TV!juNQ!;k=`!MDo$rgDyo-hv>;=;U06_l`CeGh`+E#IZ<40>9(WJn&jtBKl+ z!DPqYZ1JqndPzBFYdnpn!2Qkq7F+ucc~1X|K#Hl;iNA`!s6L}+GSl(jqRc`)Vp%|O zs0R7A7O7O@ZgCX3=h}*V{?NA!GJV8m#n!guYK^w+`!**j@33!%WX=H_*0@Ej=tg0E zC2+75pw>`XA-Q&K>Aez>sz!Y4YK=0T+Tdz#v+)%8*hXKX=5tdC6N0$f=&kw-)YoJk z$qVk5POyCQ@hwhV2-S>N!?g>xs&T_5q@Vz)`6$HhcLjq?v2;YT z4{A+>dB!b>mR$dUoph+^f!X>J7x1#ygWgh$(urvz33v~#PnpjA^TWE~T_&(+8^^Fj ziy`!r{PdFy1+8;upR8;+RCpn3PHux;)Hr4AwLKWqY1v%rgRwqjUHdd$GBAi=>>eDc zgQ}0*s@nRj0}ZYt)CMh6V4+gd5!6G)`WnAc&^5^^_vIo3*Id)BhgDY#CC(>QE%b6W2ASDEiHD@$WM(!@c@%j!)4!5aIq;w~#kIuQ2CjH)Zs$wz&ynG8*Gb>^%41{F z#XAoXn`Dzo-%Gd(RzJYmwe&{$#Q8QpMXp8u4TSD}w=7ZcI|l0x5rHM)a#{%OIo}O$ ze#05U#WmVA_xKw;z`Xky`yF{tKJ+8lOc^=OFSM!UeD{jX-wY<8Q=z`NCF~ssZy|m= z_y`bxWb|#RP!d%HP1IH3;POZsl>xQtFRWlTY@c6oNOa{H)Gq^Z(lmu<J~Xv6SHPUKLm??j9JXe?*BN67FM6?OETuH_-z;_TP%UY@zEw_wH zQM3hUf(Az@CUbtKP}h@I1KkOietK`!@)5_$uephn*+Hi5ftJLz9}j}~tK2ql5?l87 zKM6rvp$1#h>j;w(%LLx$6S*xnqcG+Hv+tR+B(|uV!VE9gW|+=>kF=r|YOzZeS5r>~ zQCUZQ%VL%P+fo4`fge73gC@1yrgM8aJXQuw4usW}p-LbmEI4{yn-)_x6aW1~&YJ)? zWfd)rM||E^q;Ux5Y74FpLTsL(LT6R-lgtwpa1ODg$=Lzg0N5>O{LgNoaUrlI^m_OB zT#b>1p*25Zw}ah(r|a6d23_%ITn-G37~TD-X~Y^43KZ(o-C7x^mXZfOXXnOm)ov|s z%At@P7Dg??BOk$F0R<(rDu=WiDf)Ti%7)cf@{_VpSc!(Op9hAE8z3A{DUI&Xq#MI6 z`kXBG=R1bY@y-UIhg61@QiJ&Z`ylvi-V_E1!2o@ixos=P8wbU4Uu^;Y@0{!*60GGl zY}P}kUnqHTYy$t_C9JBe_!>rAA*7=UVVo6f`}XM!J**+L0XuU?|JN2Pmm zzD2CKwuO(`z+IFi{;q9p2p=SHVfJ!Gh5@xya<`(#epz9gq^(X%GVG;z=RTw$uWYCf zDh%POxp4$*w7{#J0jLsR=s(O7m5j1eqYw_}CQOqiq(@2!zLvRdyPtLB3^3Sw6bN`- z<6+x$0gtI^WLR%i986+K`W>R>>%A6TnNVpZ;j7UMK$?hnm>O|f98rCu<$?mmP4mUf~u_^;M zpyNT|&InR~GO%Z84*c@{2!|PQlSbLH!2*viqPeEd6`?rG3&~-4$^!+n{#~-{K{VsG zR%&f(iI#Z7br~qP&dI_Dl;#j}4~ugTD}>eiHewrq+SkTss^dcM5aVa`h(h6u3OPAE*a1 zd))sh0OHW`3zjhXF7}d&ooCayRPXOrqVW4j8Ms}qRvR4SBWJe}uC`vlXfC@wKvHPx zzSYdo_6&!9NH)1wbQyXu*(X#>ejvB|`@ajP9F=)YbkrhNg<*eI$XQ7@T9if(rn~&N zip&EHBp*xfcJ3psl@y!4Q>}WMmD+=odS0+P4vjsm!SXhU7%(QFo!P(Qid;vZ|C2Vq zrZ(sz(FwB|-o)qZRWPWhKmCbWkS|J{mgl6R8fSZ#SKVT(^rlsVv zm>)Y?jq4i)CTG%Yw0fpPHap6L#{ls@b+x1;sJ-}w8Oxh7ZslV9MBd<=!7OL;^7YPs z`V7Zp9CfM;1s8{3qm&ZgB^&a~aq-b;wHJ>qNu^E?Nppu&xj>uKG{z2HnLpdK-q4CT zas0V zjVSTKI1ZC_E1P+{k3-KZvROvQs?k^MkA9p9mcGvq?`FK^x}CC|iB;RHphm$$SGul4 z?>;Fx7DvJRBk*_F6SxRH51{R^g&ABfu<*ZWF^MQpcdTFBxDDYohe!s2RyL}bj`(Ax z&|ySD$rap_FOo%mYI5)1A(>QW%CS(icE4xyL$;kjdbWg6s$U{~JYvRjicxn|9vMgP z#kyd4NC2#hh*}0Wnqsr?Y_%CDMJ*Db~m#Jd?Mv` zF}o{{Hh7)s?RiV#=MI=~oyxWE7p6J@Y~>mR@;7umw@UGSoa4m8vPA9n<^$uTV|duf zxRdg6?UT!@Y5SY=fxGAE?PCa0zAaE4N2s5e1M>|)p|F7x&{F>^C(+Fod;ju8JZ z!AT>$EMGb@LnhJivwVxlawH2Os5hY0HiOl@XLRk*lIH2nOsoeDV&NXP8p)=)r%B}Q zhJ&7eMG1sJb;}PQJ6xHK1C?O3-CV(!i<*t4>))Hbh-3}3j>Q$U+^+A;$eBEF)KNbi z3?bQ*6LBc!(aX!Rq{`K3(K5~7&HwQh_$pXx&8>_4N}`>w|fz+hbU2v3V{ck_1oI5EG{siZa!ED_T^T$#`v9Pqf71IKh%K zbB{^-#LLX?Nv3fT5@}q}1_rUf4Kuk8+eOm%Vc*^3azV|73jb%V)$%(84m*{=R;0NM z8OY-4cQ+z__fVd~EwNFk)pEitJ#yOQt35WY(ae=*J+|87#odOmKvPSpWP)ZOCP^OX zIggCccNbh!U*8&87(@^?9Z$Kxac4_*g5NFjJS;7;U(|%}R!{d0-4en`Q7;S|AH0A7 z3)cv9N6I(5I#mA|scus70Ol`aK*1#$Ibr%Zion`|pPiA|BZK$DdT74oFVD|UB?H{a z)jg1cz!azG69M@idla<#M7Jr)+qw$; z+4f%WF3(xJd_bv~g_OFoN2{sqXDk zCx#LdL4OC5@Vq6yP4^p1i*=QkOp^WUi)kmCz5EmpE6VDCFoOOd0|~?uZ9CM4>k~}Y z=Q9X~LKJm~wz|2pDKB}aUD&!=OGtoR!jm%`^c$|jar*9;l(#A&9qZ0(wiCD5rANsH z!!4zaAV%T;?!Dj63MtZ%_h3P)Isp=^MQ~mA%w$&9z$g*=1#HvNgfBgU%qLxPgy(RoWJH~;e?6m$>;MRR+rTIU7!K+{*GDvJeADqKIXEB0t zrTzQEz!AH3L)LU$E8-#Aybhf zvj4K$65kD_s(;z-FAE)~M6EGa7vk6bkS(KO4H2oRG7yifkO+f~yg8{{8_% zlj9ehp0u9sktFRoK9akGizdY5&``B^a9qSG}k|L=`nJrw0nzy6qspNg9QF~Ecn&^;?fQ|3l&*ZjABvw?+^%tpfQsaN zEb9;cnr|4pX05iaW`ScwQ#_ZSN5GPE&i0c(!=`q}2lWdIG^BlMQ;q~&jdP*bAecbb zs+Y_s+gg&vmM6#rj}Hxgtx!D3U0MM7d!9gu1=*>fY7mI0;xHLmdEOrl+Ror!+q#cD zn$MVGdsrl*C*jx_8sA{EuEJ@%o}B%_I1$NS+S)6-n|Wq`|NL&n-#c_Gy3b~WSj^as z{5>ydDLDN#-z*RmnX(jj9ci_`QC!FT6q&!qi4<>e1!9w;tbVVs*594i$^r-_Oz#aO zMvNTPLGU$m3oD^?QvNh@eYg-Z_vCa$YEzSF?1+#p_1!yy=S;%MvHaC@T34&J(lgxs z?2ys=N);J1#{VMdv{mw>{Cw||=4*z~cM>-`%L6TSVEimaOK}6|Q;v4R5qg2Yo>(v zDJe1`PlQUc-te962gNjPk!GboAITSCFo^gs+s#%@5$Fb@wtTJfMSoYFH`-6(^ESu< zHg+E~O2QM$NjPWaLp2^W=L&`fx+T@YSFMtG@&1`^$}emrX9PC??)K9wFE`z(9RIzQ z^x1o4#KhjqgKfLfyS9fheZ}VFiaeaf1Eaz6rZjw*@$`CCa+7J7DE43z(saThF>#9q z6E%uHrR{+c!L>bjYv^EtRjD}y%EyOBFnw{RP(p2Od(Q&2wqd(@m0Y>d#g1|-7eVAn z(85y<{kyj7jir9wo;1PZRb9IEQ$Do%p`y`_kF9-zExm*z=$m13RP2^y5Db@eV`{S- zNTJBh3l?WV+r{mRSB*r_8S)uqYOY&VxZMs7#{oVo9Np|9bi*L7!kAW30&-EP3RtID zh}wgk{#ggG>^n|%T6jmshm;i(ZG0Zv_O{N>L}$1mhc!Hv>Zfe8OLub7r;&KrBj&Mz zXgu=SRKv^4h)t({TFvA99-!(%QsQhNXWF*9vCYQ9PmP}Fndd6g85nT(&HAb*y5bx6 z+wHGEx2=BJdi)JXF5W7nZS&7Q(PDzo)uZ9zH>qx_#Mt=Tf5oIqYy9MG40nJyl}F<2 zMb{6dpfpBk%3;38#q0%2Z`2XFdzdP8n{ID{2MNWu_Vu&qX;Ih;fv$kQSBwxr4j1rJ zd7J55PF$4M`QVuJ_y3VV+kg@n9aQ}$Fe>^$?1}t7#{I6h7P#> z_?S;Kj&i7O?QeaGtO|CT^-NF?)^~-#}T;r-QBG=un&fTT%mP> z)ywjo0}5TWm{9LJAomeQzI@SKlcB`q>wHj&gk$pRjXP6Ms8Q`|cRyF{Elf->Zy6G( z-tyT>)1w5e=l&YIi@M~o=LL#bOmQ+-b7g4NAaAYv-~*u{fhKf$JE#Cm4zQtj_X6jw z>}^B!V6`X(@3;I^P!QqkD0KI3W(%$OT{3@>;3}x_37_j__-8F`$aLW^X?= z{mMl{a)$Qn$Zv*_J{VHo=@RKKJCz>oyPuVTsIJc^446xtgznCN!HcVO0_o+%GQYM^ ziN9diyMtN9yR&zoFZI6oFcHpnf}#6o$he1tlDnce2K=fXOMlT3E67lWoVr+sZTDEa zFi6f1IZem9m)u}V!3l}(j=p{L80tNU~u%=}zM zRMc$+aGY2hP^CR{eMfB0$4$`3O*2aT30PTGzvLa+W~lIJ_+tTEZ2Dm7gFoPg7~5}J zCHmA_iqJoG#HvQTY2j%i-?uyeJ60Y@crtW5FF<74J%fT0mBy40qKurd;vCmWgtCx1 zTZYs-_cO3B#i}d40cTu9m9w&}es|UUC=!KxWemt)D?uWeGsL~Pe-j*5v^5+@2;@-g zju#GR+V_K_Gbgc@$teH)O%TXF_0Dn1y>ebV zKUc2cn88mrHJrMvL`kB846xqBhe-qf{qvF+>=e=3jp>xK?>5%N4eP`Np&*im8qu1K z0g=+B_eSemdPJgBv+~yFU$giM($vw$4U?ARh2<>LH8kT5_Ou86fB%`2?KZN59L&=; z>A+qC?4x`nrl3V9C82i+5aZk1Ic^LNl5Ei>sENCdNs|Uq6PcLL<0+|c6+-qCep~Ql zket7X4R?q5vb^V8OCh9RC(;#B#Ze#k0Vlh@X~SzX$5s6)E;aJPle$lBAsWa884gwg zIwvVr+Vt)XnNbY5?r-6)?>&eIWEQhd9yu(+b%Q;l2Ht3jha{X~`WEu116tceo^ie#m!JC)B3?@Z~cf2J{*8gdv2;*zbU0o;zS@V6>=UF$a0 z0z;?y>nnAY?wT}lV>=6n+xTPK6IWX`#+kr18(g2561>Lk5oMnTR4%7m610rnu#{I{ zy`a^1))Y?J2sVPWXqaVN=f;b%zWr!(#;#BFIWf$GWkIV<^-DduDz%|zbqKO02#QfW0(now|S>Dl9P+DO4+d>i`7e}hZrL<$* z-aR=c?53nngIn}gvY)w!wxdC;+36Y*lgcms>ND!bJkybdAdy`K#1AtEKqFzih!k z;MOYzf2#`-fzp*oc~ClW91EO^1C8DBy>UT(K1+TyQQ3H?&9SPjGCc<_$O99@9KtUw zR*YmR85RF}WSaeWuOXK~Ul6aW9&DvV`r?OB6-fidx1#kt@ua4^eHRC{)V&-L8f8bd zv2Z$A6c`{Na3K;XrQ;*RRw=mMFC`py%i|0&b9resT?W4@(5p42r;CmBq;GAWiiqDN7mGodKu61^hWz_t z_Vk^!Z&2C~6sQLUBW=aP747&2rxkaW!3g_;f67 z4pnNNZ$fN~S`h@gcqjE|f1Ox8@sX166KrqxaCNn#ks8}=7$@!5o0*pBzn@ndzrXp= zxO791vvxfV^KQLM#&CsQyzga^Dc)b^lDxMDW`Fp;W59I1@tOW~1DvQw=D9tF)l_&-t)`wA~=Kgu+2iYw(G@k}r_nj{= z-!2|&KyPAa$XlWL^QOW?%z9SM$VE*q5i=&l`3*Y;M|HkAcQZfFX34moY35v!K$2ol zqIvl*Q}pbaeb^^Cc}o(}cqn$G&GK-eCcm?|7ehc2o+>gDin5-Z<~}DeC^XKe9S}=+ zXz*jQtNKW*n?~C^9da(TcW%6~!2_J3<7nBM{&YBZVCVQj6Mi|QEtyvbXcHs%8AhV~ zae>fKdPmO7_(GE;?F`hL9_6hS-8_0fM%|+pSDrp1^jhH+S<-ggMxQK? zp#9e06Z3us9S!OQAnNuns+IxaHBjy=J-49tj)9z|Cgld5enXe@vhkrtB{- z=7Mxuf8 ze#TQCWzYCKzw`d&mf%xE(0u3ONgA5aarP5cXf-tD`;* zHv4TX2OpI1V~4ij6A(8ho<-XwW*g|v3!+;n`wIU|f$n8s1c*bBM?cO%S}4oP8jsRT zvRedm5rKo>*oy{4-~w}!N)COV@AGX`9EvZb4A8{rp!||--Zq6Kpne?MO^n3Q@8D z<%BGvwWQCygeUnz>s)Mn(uSg9hRC;>(6aVTX_FT?&tD#l~g}CjZG?2t6n-^`s&(?doXAy^DtMuCYoYUr19R;1}zh#|Vq+m#2 zEDkY*&FwXnZ9hVjSI5CeV`}S6vN2-UnhW%pZxWy!6??>AM;MQe~W2 znA%D)y06PldX18wGz5QeOz1fDE|*Sv#QGQpqzT6y`u)b~)1+hnKk-j?3?J=^ zu)9FAmAN*(exj#CE_m0+piN&M%2yd$o$l4sB{9W7>nNz*_MlD(rEAvVDz6g)(9JaY zINJ%>iAi`EI=1WZE}6j3r5F6q7QHV42-_~}fxRaJCx%QBrR6$fqF`p0pTeL_D#+9S z5mT;>z@b&W+X#?CC@{Wr@9{zpAUkfnS2}8?x!+`O(c7R@AsoeQJQz-A6rjwgKXZf! zw$0Ar`8gJOe8piqO#TA8aiKA6!ORcUfg7!cf|BuImQA)20?aYgHh;I((04%zD~P_2 z-jDllzDGXQa;S=dn{=EgaLFO>@8YOgV>O`0vo9gnJ2u+ao@TPD&}d!HlPq(_8w)=v zME?Vpz-#-8YkM7nD0tC4EQZe6(4~?<3V%a7TSBBt?>GXH1vpn2X^=c)_7Y5Kq-FFs z1&TA2g4#OvlBa=y86+BXa|mo6#l%Yz2<8Y*{r-KW$ogLo6Q{qqhZ>fO{D*b5C>=p} zFE0Al!o`Z`TH^UUNx_6@BIZkVlZ-D-*vxfkXsDps)bLFweYfLhKj*N?Q>Uf-B^m(Ls$4SBXqjYUXw{`FCqKc~ zIq6f>DrLW6A9Vdmg_WYVB+cC2)EUQKA(+#wf2#9&6Yks9&j=erY2%6S-`g2cJYg5LY9jWN#)V6zKf@rxAY%z|cE>WDw`!7k zI)@Y(qx?TEL2E|jT<=usgm~Z1J%sXU1uyhme*()YeLtqPz1HJ%O;dgpQnOr#QQ1cR zcs#22VNLw?s7DMNCzq$^d55xeT`8n#3*YH3-I6u!+$M9r*CO=N71{mHrRp@`C-ja% zr1w%Z>*cl+!k4LFlg_wf|F!K?xkIyEELp~V{rKegz9q!j#)P5``<708T2gf?*M~z} zx=wn|@Pah^fG;VQe${^-gGjEVe7&^?0NRA(MqkVPZ?Rl3j|8ye;K?^JJg25?pp?g?YJ_YJQ*&EPFQU$O3`vb zpa;=+M_oa^R&0ASjIK%nt)#kKHygTp8)nx$0whdq;YNMH z+vSQGZhpK2nUd{3|CW|phjEkj1Q~R4AxOdT_@Jydqjy57(@ZDX-&)!BQlX(B(v8^i zE1JsOEgq4{{8j7Vn7m$9v76G_<8~=6)-En4o>Zxd5XbNaa{7M|C`?0y%SDYwkc zs1sr3GT_UMxTT)Zzm++>^-=uRGO9<>Ck8tIr#iQ(SSjuORr>e=l&s7<@VBjCGDX=w zpl0^M>Xo+-#8~J>@|#JDeVB;!9CHhZ@H21;Z8+kcFS;d15tW37@^y15i?)qLB3#^< zsYS{}PL6aVK(!A_mZQ=;N{!%}Ie>2w!H%eKUe+9i!X}K_KZb`S&+3rV`#j~2Z6ejN z=6>g7TK$MuF$+Wu005{Kk+w6_${9+C#v$~DO=LFn-|(B%lIP^MsM@i67$Ff2I_^(oD0jO z+!6f<|EiUlL@d!l%Zpdcu)C(g3Brz3O?W75=xNeBdLMw^q@e=26pr%v85pLn%p`Ui z1!Lw~7>0L1gMV^byEO^N?@5TaTmoL@J%K@=i3%zL0OtFrHmR6l|C+^l3K|p zzLRq}7AzSd!|UjuG9&(lnRn1thoL(^Vo6}jvo##9TU0D@XH%=HWJUrEpaG;6jC|?s zDCR##VJRSo+ptOqIs}iMu@T`&^h#ryk;y=X(({-9ejmrZgx0HQfLVQl{gF<2{HG9} z=dS^kY%p0-U#p;mE`>)XPVs}Qf>c2nlPv{?kT{+a&Z4hFnZ1G>IMx3PBsa|{E?)zyb~1N@xbPIXsbk$C5)<@PhK>` zQ(?+2qzRQ-UHr?{Fqv_@8&Zn@V>xD89imzuq}QDHZlTaWHZ%or5JrrDsN9qk6WPS5 ztALCSSsVOW2})F4A*XE>B4z37Pkv(La==NEUc({UJevNajDE<3lK&IUskutH?vYea zX`Ry0nE3_(1VFgwQ++wk+ajZ|jO_8VKjJysG#!nz4$nO*{86c|9VamV04Y9Q8$MY; zx=%)KaMnNGqdZbwlVYpd#DzcMv|%kxFn3-nrCeXezB`0ZrW`~ybj}j-sP73e!fdxoJrzw^j-3p>*JuIikZXa=|UuHlWYtan3=mkPqrWB5hYzXkqfW5DabpK zyL+595MGKZ5&+Pf_YF>0@(Dz^)AOTUhaW@seB8zLe*7qv{tL3}!E7LT zl#QzW*@@Dmn)>XyQsr$jLGaBJYECF!i2+_4SV_3=03`PE_HfWkwP?Km*LNWe>3APQ zQQrPe5KJTH8W~&&*ctTf_^Mr%QDi{{ZWIw3;u4H&iU@{~r-NDq-a#_y^7{QDZ}GX@ zGuH5?0GQ_DCReAeke*j1%6u8M4JUVzFq`@MJq6jbI}h&vi6G3=>BO zh$*mr)cyLlJJeYWF^N^n1xsdkHB0O4Oos}f#ScOCr62#npx1C0nC8cPW`_KIP#lkCEAC|z@0BM%=lu3 zu#elDL&fC==zN9=l9Sf_Y>6sf&jwpk$TCRr%EkHw4~*q=ham@BbVWdgN6dH2Z)tMC zp2H*%tg=h)_PxSe2_mV)64ZzKDh)(0!`D<=XfRb(F$jw{3 z-P+y~u7xtuwUB1hG~f@WGGDJB>BQ)x-*kikdz>LQKbaoLhmvgXVjl$lK?c0+$Kuyq zg9I!%B5&@XqK+I5Q^X{^pLL6Tfxls#RvEFRD!4bi0vcb9$lr3}Z8$*f73`3B-;mge zVkyBSSV46^I@0pJj!isD?sPxRqr=QKYgv*140*oxx1stQdAWeaa0=F`@m0YbBZjxY z55=S${sy41Oo*W+=hma-o>c5+4@PZ+Y7b5R7Wb;Zc|3{Bf{2(X@BFF|;M(zwjeqSK zNnasVqdc`Lc91Q0z;oxXv@!S}m(ve_0pgK4-fS=LbJlGUoN=6Yr7c!++ zutV#vsQ&H^uVA-cc9cv`QEC^#_)$*D5^XaW|G)o_y|@0#BWTt|ad&qJ5ZnnaF9dgj zyGw9)cMBfel3>Bz-QC^Y-5t(ke`oJ=*1C7yzu?ZA_5LvL%yf5kPt{XTRd-8L#!o2x zQe6BhcMw-5MPbX#AfjqQl#z2SPq{^&h`pPW8aD0>4o8t!fg^|>yWGsN|MQOSucy9JOVADY*ED}S`0o>y+o99Ge_!21I&U6LJbpfOO5Iyh{$aTY62&AHwmU55;Rt z5>8%W!qrDe%Y9|*`YlOR!sn(~Y_q*Mdox&IMzFH{4YQkWHR5s8rmgrpG()MM|JgJq znE!YH@FlXdA}9GlLhO&3a--(|zN`>Qe20Os`m6GpQWZsvv$EC)6Wazhj5?=J!?C~0 zhFA={J_D0nkXt~d+-7U*8Ft?L5rWtJ?|kZB4zQJ@3|e%*zx|$~uQ!6W_Q|BBs>+ub z%EVt_kGu263>Db+SF`+%#^+{6PM~7TcZzNQmQ@Si^`)|Z7Im@K?CTVAK(QIhqxu|F zK>;e*==uUrY8YN3tJftO=e*i43l0@aA}Q5Ca`shioxXedrVu}ayE9l7y9@$WmREsV zKrI0i1WRqxPd?%4{8B=_#FUbimDPSflK8PZ`--DC@(*4;Ct2?fU@X$85ahUwRmcQw zL?I3WZChYzkogROzh0aIfo4g=dL7%5n4s(*KfaaoKtbz_)`Sl8^WHH9L* zI&z*0esOnYb5+n?nJ!UQPVW<@lcGtHF)k803EZb&M=&H6)>}1v3IxpsQR0a0fBvRs zXIWK+8ITyscJJPTmzME^9}p#_2jtO-sQS-E6I);Wba>o^k|)j*Q&JrSy+D0}vIL?+ z3iA%;hWWp(nuWyJN60nRSXg-=HElUWl)kVg=-!+ZCl-)_&~E9M22C@C-_LEqo37vw zyvuN=zVpyLH~by}K`p`nA6+v;oFX*T!llUxubQhZMPh2N^F22eTiCDRBf%_0i?;6^ zZNWw^$b@~+SS40}kM=F=b->d5e-X}OtZjo~?TmnpHVt|4FvSI1w<7DlKWzT-w~X$J z16Re4!@K-`W6WT)AtWdeb~S1^YNFuJYO&dYZJ{T3z+sJrTlvisn1acRl#5{aR9K)H zR0}R7E3&T-9ek{-{OQ)=v#jj6ftM3;ofh_7I(U|hB%K-PEo9(CLu;*n)C9$e-D9`L zB2W3a(~o|-RjaPp*r_l$WWZ{1nYO1gThhs}etn^kR|N}Oc?OnSO6AMwlzs#9~aguW(u2{KtsS%r30)v9$~dxC3+C>g^L zj|UX@8`?WD`EbN{_ULF1!bgNfk7$(`<9*&WfS*wE7ep~tCa}bPh|!T z-cuGCc9L-PJ1RzB2&H`BWHNr`a<(7;MF$bd@CzT?Iwi-bkY!S*b!)tl+BhUz7gE5m6FUd}SYAEVKRdhi5<%&I*P}uHr=^fMHyO zO%Dpw(u5?z1b-)yo#x#7w-&9)0uK_TBn<|Z*w?y(ovUjq5@x%v33yc3_<0y~3Gkn1 zR}V#Rf0l3@HU}t)Sux0~gdu{<;YQ=z;~7ilvkxk0oEVF$q_7TIPi?Hx{;F*;ehy=& zG=UK_1lGnHIWfC@e0npbQ~}`PmxN*hOB)z+&o662`C1}XDq_Di9J~iYcwl|yxLSs1 z-x5a@gc8d9|Ds+g(#w^o3LJpg(Y76{F6 z1oo;K41%B}uvN!0jg;fZ4CInWh28U)sif=1COs(bVE~;uZeTy3i7)h5@rPYN1nrHZ z#M!6pz#rL*?+&E&Vky@(^o()qi71FX|}0jU`+qmt=qev>%?Bkg*0^;YXZGp{fD=( z>BpeR4=Dh0#LJpj*0m#a@f7R)D(KlF)#Vz^NT_a5O%8``uIo&)wGZ>VPGp}aAUuo; zCCQ?n98$OU{Z$MmAau1S+xLX2xHv(9=r0470E#9i=My@4d+x|{q7MSaK%Hjov~>R zuG5Sdpqk+aMG0TvM|q$~Yh=&;*3(J2^NydI3bAuQ7BOQ$J{QI|Q1n^ZLY9<2SlR+N z$q~M}TzIC5V~!cp*qgSazk_IA@Tj6SVeCGZ0U{)xa4tK}h(+S$`B8 zhKI!wFq8)Q_ovKX)!|8J$uPJG&JD9beK3v9kdp+>BK4`7$|o>OEw~W zV(g6bg{;)I{~bVh&sY@xgLL#Y5kqS5RgA^A|0+7G-9vJhEW-TLmHDSU36{JL=u~hf z=ga=lZ@XFUN)HMI7#$F4`rlO?eHfjr(;0>U02WU&@>_}Sj}BcRAyK9ioK+~!VtpMK zM;xbnG^By1BsNM&y@@e!L(` z;B9;H(y<=XXR16V3(|cMNIg7z$Mh*$$VAkuig9)nNs5vIx# zm=-}Awd@-Sbb<^m7g^w#wZw)SFB5Zc9;kT{cK24{=%*aSVAnT=wj_ra`}T<*fl`wb zmg(8LHRT{vF)=kg4U!89$g(X_{WWK~x%&Ot-2Z^!AH})fk#I{eKrXPgIoE4MS%pUGRhIfM5(-i>L5W1 zagellxO~dh%6jFu0;4W53=lDHu@Mak&#edyN zM*a&JAX={S$X?$)k#H4c>sCWAzY4dbGV5^rV>)?+sgRIGTA_-|eogjn(=sqY=X8mCO-M{UzC{{c}*wCU(5F)Wes4wOe zr1>HAzbg*ZUW+i=DW+_WdU0(jFym%`>MG1G>+Vq0{%?ys7|NL0RTgu0cgOn`W7s&4 zgo78cR$XA#m4#&WX`7s>;7I@fsY-OETG{CzmBrxlh0XoZE%?`=1}5R;H7*2EAaev2 z4Dzy%K8z(xVN3sg&YVU)gT4~}lOiqdZ$g6VCR&<^Je~ziFqnB3=QiB`Q?=#4mOwVC zM}vQ)!iN`Fqq{f4$J7dLy!2rE24)u!#)ra{m)+`k4YGQ~^>ZN3;2WRX@GOfgyDL=0 z!X9!)IjZ6hoikLD9ww^{)QCTE z7w-|PjO?5D~WU@ zEFL6^yxHYM#~XuO;u0({n++p^)%&In(|x}e>-~I(`Z397iUAaiHd#mKJa)RTTvjV5 z|F4=*thKvrbnP$w_&Pl7L3z?|7cbz@PXdlcg0Yx49<9E6Xuj87fmNQCQtP818&c(k&YEet4Df;i{d zKx5I#rI3n(1L@7p?Ds~II1#WJ%CWB8>%zNjk@@lo5L!59onxfsP%9<;WlkoORumHm zB~6l7sLlL+_&v?8sirX-3}&wW8tA3F? zQU)PuPUo6WlwB;r(jPT=W0Uz!EiR>m@c|er@8ZdL7{xzim4vDC4P42Cf|T)P50tsR zoQ)<6xe@?fAyIHmE4!!M=xIiETd&&ogLLh&;n83VS8~x=Qz=eqCUt0hN9Y}{e?~b~ zQb8oygaMZ%xAe@&eA*0S2;>~fGN-cc_e-As$fA#^VGEqOM z3F`IcAfPI^M)<$9HV||-4()Pz?O7w;?&;GvDyfCh2zXlxN^$T$CPGoj?6rPJ!>DeU zcxwt$C%mxo#3pQ^*U>gV0`bvfK3WJ zLG7y_ufQ1p!6sX)75@vizNEz6{3s0NOh%$TDlaqUSy4nxwPLf7>x1Y*@R8O)u7xKD z6jLF1^TI9YQ(ow^q2Cgbv+?|K>3$-JWb2CE?6|AyeR2&7ATNo}1PP=AbZ=6#>(a^r1u_Wd*z|MjC{qd*9-w0}q^FZb~(RWy1(u4_K((KmCl+k*Y>`#xaI zQS~AyJ1Z!p*qFvU{68KMKRCvT+;JcvP`S=GH(Fmn#-;}jCIg?~i~!ldKK6X9AYI}^ z>hVFm+I3jDPDMDnw&WpszYtxj`yqKhB3&BnnSb@-k3 zc_!emwyy?`ZfgzkU`}wX_j(rm0y2LVl>{axDs@V5`Nd;H6M}s|E#BM11Pu@#W>s^F zncQDNZ^h~bBib0mLOpIQqlir*9?5FxvAxbQUcM*I@2)s8UgoF#mPz6i6QxQDe8t~I z^nB_IxKN&P1^2&0wB3HMjx}zOo7hGpZ9IQitlTsMW2#HOncX7YLM`si8muG33+?bD zWD-xld7QL-Ja7xJB1qt7$JmOs^M_T}+DK{WTyT^1X(1Mc5Ye8jgnkVtyV$&$mnhwKdHSk}-0C#butn7GyP zI>O>?K(|D2uw~x+$9%T9R`UsuPMxxFyJTj`_aIWD>TKrm;EQ$GiJYL17BA12tFe}? z*oN*c-jeorKjJ#^2X@TD22yhJE6F2Xb~5YG$Fn7K_>50rBsw2ypG+Arv(DQGuu(Fc z2I~V}P#SCu1l~jo2{Tx~VAHH+4f&X&?o{#|-MQUFL4HV+yl#Gh2t& zmL#u9%2krULkcnx)xV!X=IhkiZ2Cf$?2DHCO3Z-TXotlho;(Y)JI{Qape83L7|KCk zTbHNHP=KtYF`ujCxZJ2YS7u<=P>8LFvg>%p1}mp;Px4X&L3R3FJfS3wnQLTs#DtZ9 z@PjFkynmu*zMx*q8l!M~hXgwyh`H*0zW~3S8jEECIkDbl&AlFs+o2%r9+)%yp>aY_ z(Hj3Y<($x8K7wV+kRG}b8ZKLC3wm9Cel*msx@%nKIu9Kav#*CHd9SNGdpEu8u#M*T zTP+T+X@Yy-6SSH>H_r|*MxM`G8(2q`lINa+%kf<1-A_T)1otU{UB6+s;#j3mKIkm) zxRl3k)dELN=}K><{ZI`L@8yWzo$xP=<&Wf=lu`PM@Q~!={PjTE9!d9!69=Uw(M!!Q z)kK}3OVPh!{M}4xoSwX9WaulP_nia@e5Xadi%;?pyx+4P>2~hXOi!L{{Ldg=_h5zp=+UF)jnV8GZ3?TPFii z_}hxSLw86Ld7X8xF#*i@BIhDvPYO*>{Z;;}8=kX7ZTN#O?9EzDT7eeJetZA$aM66A zb{x)HeoYvsOgJWtSx4tc-w5!BU}^05g%^<~zWa%qT(>IPmVL=Mt5>Vdvf0nq!n6nX zmbjzg+T~uYJ%($Nu+CFHl0G`&6kErdN5sjExGOFPD(rYEV${VD z^IlwhU;#I#^&&R5Q@QXr^<>AH3dQT5)%;E9;J|cR!Mn`>L1~4J-s6X_RrKY8^Bw8O z9r0$hc9gwGZr=88Vdpdhw~k#_%NS(Z`PKtAdVD>xy54djq+3{aCiCb#e30_{;gMf~mq6u1x z!7Eoz8#8O%-03)2A<2b(3k!V;S}4d9fB6ViF+4D|hh-$1_;AQsebE;cH39}3fd@nz z8m%EuhQu|oD=br(3;OhyMcRKA^!Mo0PcN1CUqMN8ZX)}eh?wZ;_@vNJGlRIdUJzU|aTZ zc9fer(O z@7Kd@Piv14cuwULbS?h#&<*UXx@~%&u& zESg|mW0`3~M^9V%BL90r==i^L0ocZ_VSnbePC8@w9j;L>mSJEZ)+AT@%!TzkX9ubB zeLo_3&u$snGFz#J1+L_KSi$=E)taG#Ayy~fueqSbKPqN|OTlm6bk>+}ZPmR+DJ1Rn zq%_2w@y8NJ3wm&kLFZ_g>&pHxn`!OZ__+Rg=OVSgX(>cb&gKgUFl{Am^nMQYYIsP0 za&@iqs9B^m!|u(LQI?s+$-t-m%6*m$G?mty+~*eEV&}!wDlX$D00U#SuN!NKw<8!9 zKB^}r|Cr@+`Ef5)1M8|2_>!VoQ8rXVVth5TGo?Qw8;n{}zf2IDljT1nH-F=n6my{g z3}b1)L>lx2W(>(?Nh~5=?WYwUUb&1prvSg#<4?F?l2Wq9a#Qmu1wqVVz#HVH6HU%xc>%&}^ zFl8?nZso5+`b7%p5uluKlcPGXtql|{RU5PE2UH=s!n;?y`Xa&h@Ie#BI1mL=GOqP6 zZZ96N7y6A|*)>C1c78}7RvyikoUA=&qjW078W~#pWj4q+wD_ZHAE}RRjabqPW^Eo! zJ?;%qq<%7LL(-@Y@M&*H001fB&>2{*1XilDG6x3*{nn}pVR1p z#bN6x;(*`s!yAA&oL50n;iHVU)UTTYYQIR~x^mhf1_=6ny?xns3z0tXCW4n{2vuB*U1VTyM2Z_jLE$uW)82bSAq~qWlBmGY@@1z72YsW&ymNPH@KyqdSCRDuR9s zio@fDZUQzYxBkF z*16TzTV1f)2hN*ZxAyUnf|*oV-Gow$^jSBRo1Lr=$-+Y99+t-ZTVLo$@&&XWe?HtU z{dH@Bij%+z0oWI21)G?53jj|&&d#X$+p%x9D*^YBC&~%GGgO*RWm)Urp}A%R8PIeB zlQsrc4ze?clP?2zO*nx* zWI+KWmC}&aFd;B-l`ded|7I9jld|O~Yi*h;G^k*DgTKywLn){00+!b}-DvaVwN!bz z51*wiYKDsW{o>l;(3*lP8GD=L^U#`USZtDTGh%zogx2mcY}lp{mFnJcY1O*RX}YA>G^SW@IGFsG^i=!mu9bwpUO%x;RSs24ZXEz81RKpU0Ank406%xy?kj$3Z?1IhB3oLh4Uk5h(!ts9hF zI@2>>NG}3Hj&?wW;o(1`17B%XHZ;e&WbB+;%}@j4{AS;fdw#LBr82MGA;-*~8cl?# z1HQ-9q-Kw?SG%0J5@(d7no>ed;BBw05+=K(Gu7Q(?E{SG6?B`k$BM;q@t#f(>#|n{ z;Ec?7!1x`e z>B^Rls{-G8n1yXItkYq&_eCr?8;R#R-AqhZm`L3N71zL#1pwqoWaA%t{?3V@yp?EG zhLL@Q*}?;u?Oes5Ttl)mc`F-30Z|=i+QP1_I`UlFIBP@wAr053Qy;tDJMgc<%x7(k zMCG1gJ*pQ-%b>9=sfvya0~(goC!`+nz%{XNX7K-fp1R2-$xOHqIi^|H%iII`=^gy{ zj}P~ztjnT1dp}xlrxXtK1}=mAt5ywL0hnRAYQ3m_GoflsPONTqyM?dnMN*8gQrRHV4f$2kD?6Fr+e%uA}7@m2N(PzlDB2^ev|)x8ju)W+0u`23HiJ0MGWzB zO};S~%9asWoK6kd$9UQckj50vU=EZ`n_On8Kxc+|cJ{5)iVaG2!p)HMxcORO*=pN0 zVB~cE6t$25dgXrI%+p(U(Z&^nhzTRh)=@c1Qf|~h>iig9VG%oii2@Hnd1i4;23UNk zy4rMj#c9z%ulTOf3!cBaPr9q<$lsMT(<)Rb4g#<8=Whk;XM zggCsnWO!MAomZ)+t0wx}L)8)z+f2fDi;J}Rc6@|$F;O!{=%*bt1Xv5eVaA1RC*?rR z9_(F8SWWtgW4&3o1IoE3(-+;2viMrT+&Q7gGcpyq|Mz7HDd>j^mz%YobnL)H6yJob z6-Z3f@P05=Gm+{;10TVrP=kpEuj3V@hE18yNzD;`*;_vD&8i9hED zwbXGbf;re?8TR5-&7o;&nVRTn8N6PvneDT~?0j^G$HedFIcsJVT=XH;`Ou|0{P!W{ zqN2OYxn!Wo`gJPb=7XHW+j?{a2~xQcDMpjK?y|;ATcpk}B098Y=K00)z7~Aw5u}DQ zCIeGidW*U|+kpaSWnm>oU z(}_;tKrVz<3@c@A2k#_Ev&F9$F?@-M5!mg}_C*^b>pbl|axfDME|kZoDk-PcnP6j% zUIsaCv$n?916_L%YRdbXLB8N*r!R$zE~@h`O7aam2tR`iW&)<*?^n&7M$L7fVi#;aA>7 z2Es$JZ?wd<%kqIyAbaj+1^nV9M9%p5gs8DfF~{>Vu=UPE#5IW(D)NPL5(R%!0k;H1 zKyP&S=wA|s3Lkar)Z1vu8UM#PPcq<+LT4amNi%x$>bWD(-g-K$KxohhWjXCX2 zb!62Nk-t=91yehRsNLQcq4BcX&l-1m=FqwMInf0;M8AkZMGm>OQ+~CPcICUrpsA6g zWJX4lzHNR4r)jEHGc|EGK|G0^reIUvV!8=ykTi* zLZ@@PnXXzBa&uR6V^~s;}33oDV&-3_?e5a_v)%+t@qVOzVkNn)A$7$T66)dsnEy812TV5$)W^f`c zY=-p;-l+~*HTdh)$@d9Y!49{A7BV(-ZemVbP4(XNJ{}@^yX_|3B=dtV( zPH|Df4o@v}3mc+ZProK4D%tZ=bonBMST=j{!NY`AJW`Nf(X!9=)g#|5wHEsqu9t82 zhL|;b!up{=i5OZE@HMW^b_Kr5*8gOr1W{vWps(omX6u2HQnaa$sL{~lo6Z5HSy8z{ zRLZa_WbsZ=yh7)`f0^s-!54apivV3@RoZpr9G4a^Bd$f&p9E^hOdq5pUqEOW>5@3t z5*Hcq)?4+8=s6$=J2g&MRNd&`>vyf5NnCP$!$5HQ0+JLJrP@!IgK=5RWEj@#I+Y4MMjGuJySHp324u|&Q2<*=utKMryt4!2YuMIM;d{tvxALa1! zs$>}G5px`*yQt15)vy{3o8tHS-if($EtfF-BKPnifwLU537fKH6atAqXJ;Mis;Vz} z&-Gufq)zW{tMNHcIooVRss1#QMRz>!nlb5|Zvs}BM{SD#)YqJeQ)z8-{5pZ3vphX^ zWsk^-5Tzv=^tLEIov?o%+2Z;_)czH~qlS_5FqQbOY>AFb?Z=-u8CpaBeHkt*(ERV` zU3}?Oz8$gs1)jXTD}%$s{dvtUM{z;;5GhePe+h*r=3i6wvb2j)4w#&i?4}o4pyjFf1mf&)n*f(-yTNSxym9sMO zdzgy)r+{O!N_tL|BlP|eJi_mIcz9R^%)4E8Ia~29?*ZMnMyK_^yL`Ec3R+5{LYrZh zwY1ZJ~!B zRDPJRnLrju$HI=?H;pr{5)Kdb8+Nob6M1dD)^?9+Fy|L^m;m1^QFNH&H^P4h#UZ(9Rx~7;)zUs z6~7;&`7!DZV4f~v+t}9_(IZ4;_VaJ30nyi}+O+!qN{_nBVqg0V418#Sg82Q#jS3(` zx|X4}J?>_id33$(3tA}29R|-FE8D-MsD9QY;$IommSCD$ENBS_Xk!5R&j14152%iH z@);s__F4hhQ9u|NnXdKav?e=|{B%rin~o@D&!2(2frP`EUKVStys@x!dAz6|(Vt+uF zz-9DQNLv_eI#MN^N>i+5$u;xU!#mAP^;;{isR=u&69dE(HuQ;|G_$}Yh!VmCcD z8mFN)yvdI(8;v>eu#-;PAnnLcYjYpVM^xMkY`1tlU=5f`nUyTWk<;RK1DL_;!?_){ zcyXCvOSXdwq204n6Zp!6@`Lh`ZP81+MtrB`p#^$}*P0-8Ta49qxaw8*H9mB7nN_GK zo3^o5`&Wm+EwGD~OHe;BWA}FUYPD*>ei>6Ey}?W|PJhZha6ul#bIdcnrU`IVXi-k; z@dj>UYZp&DpwCz+F`j}gV_o&87iKqqRvcpN+tVzK*`U7qdJCi4nzOlT15;K34>`VA zx7GU^zS|5gg(4n0O$KXsdBOu!CP=o()F}Zcx zrS8dDhtiHL-Sp$m5-iE8vR~YcXS{4r+9Vn98$0@LT>bb}%^-U}FxWv24>@#eXy$Ul ztBY?`;tX^a;@663tHWaPuh%t!hAQ{jIw__%xK7rS=))3cI>~p891&Wyt?-tK~@m(8gE&X@%Sy_CFNXAE_6ATrD(Z$8b^^ z>F=Gq-k;X+d-tT!4Cx7;@2q&HKaN%9D9$;OU^+=Z)36az@@|GcsTm;6X9Xtf{XGiC zLH%;u36QTc)xdUW+HO$dY#?N{U8Hp!1d*17=9(GJnszh?gVT|>2RJTXhUKO_R8#6qbibAtcOGXli8p-=h_7u3j| zl*Gwj&urq-S#Im1&Mp&kFU3FqZ0IKKK+nx^$@~1vqr%@+0|Zn0`Ubjr5#ggh zt-QC-djE8v?s}i=-k|$_%y)bm%Mt?^{@1IIf~pfo*#oD=%+>a7pVIUObbo-Z_?{^w z#II=s^mEgyUIgyfl?$(T?gD zYS$5wX4~|$2_kJP1kD`~@|Dg0)}W;BOlj!0`8@vs5f|vsx>r)kN%MpqYXI z5AYEd>H(kva7>xaZ~pMnNa}MRHd4&BxSyQXm=x~bw4eBV`y0K2_xu=1aO&MlQ ziaoyv?Z^H#gV?Q(u(3)dU%eu*nc#x#p^F=h<;8E%AOSO7uv_s!FGw26fHASl-*Y0$ zfqESV`QSj1Xu~?F!yDOEO}oP94CPUbGOK{z5&d?qq0_Ws{3-V#X8l67>2g53%TVL# zwMR4C#^)}qY?cl^J}r;z1Hs8CXAl@7^&A5^n&7W55JBYtbabTfLAKCPn)i{-U za^VsvY&kbp;&WPuBF`XUa`vRgBM4D#{hjmwquH@pz<0v0?r^AB66qJ_uG72t4I*!L7In}x@m1R z_HFPaR06f2>tqJhWN*+mR$+TU)m{oDP73gfiR~jIium^qekG0)$yj=)x zSyda_d3jHhSD;rQdK5&pd&+H(Xi-1cc?=Rn(eun`QS*s2eX?>`%xcUUVi?wh?_9|K z;5WGLiq46)0ALrA8T%%MRp~cxKQt{bW7O-3hI>#B=?;&P&5kUhw^a)E=|&x}K2360 z?miH%RL~C@(Y-{y=;S&-_8Y@5BAr~dk}H4P#%U~DEdG^v90){4`cNJ>G3R~#+*Tf` z*JFBdgD*&dB!=Ni>CnjVQOalz**`#tfykA*z+!rN25*MP8yuByToY4DH%1g7@Trk6J-r;`RqXBkBpoEkFYZDU7lxh1pVFkQ#)ioYqSw9_I+_}XA=|=lvZgEMO5?V%7 z@-Hmxuwo|D)|uu$$mvyk6+uY^H;#GhK9&$z3hx6G;Wn*mhI`fKl-(cg#^1F@kNN2z zsS~o5m*zi~lR#!JYn5!cBuqijM{zku(T56kIV54lt|gSmg!+^FiROrrRR*YCO#r_cEybVDs)1AQ~L*vXPa zd8^+(6uy?2zXio|T0D$sm$eYiboCbF-IBtVaekbNFaEhsBWFVdAS*^%s!!Cn&k|BK zJQ{UDiFL5$yiBqU6(!8-Yld#sKy0g&c9}>SL^UmLr2q*gmKK$py42P4v4C!=c|2@@!<(mOI_olGhFCa%gd(uKpA2wXc6jxS(!s0J&m~hip^I)=IKvNK{ZG>1OPOkReH{q)oMe^Wa?3u&TCsF9rB}#e(Zjy0{VGFgofX7 zj*wj`nr1n&CRE8~SIg+OFw8lcRkfh0;bKy1Xv6ot^={6BP{+mW7ava7g&k4z+F5XE z@B2^*CLlw|87uLp$Dn8cc6|roA!n^ zOJqnc#B;{H1qF5Fj@Cx{A*mXG)ke|r#w3q2`MenRL4V>(m6(XJ<8#THE=dS~FZwD> zs=Ho~{xFm)J@wzY05?#jaG!Y$AEWT&ts>SchpC=L)UqFujR%JW(TAwr7E5mvBMy-@ z=r8EHPy{Nx`j3l*j zzRs2uZI2@-xj&Hm68%V)ytx+((UT3*{UI|Oj}gf9VjdG{Obq5 zPUq<0dZo)Q1_KbT!Bu-geXpB(zTdTc$v~OXVBKpeeU>*>!6(5)oeoek>|vy5h~i`5CB-lz;PMN^yV2|l;Bjf0 zBhfM!#8<0b_V$w$XxD&;HofSPrceCp=G*?!0t7w*U*fv6Sz-JLD>*4-!O#E=>B-|{ z)k#Ec_3X~=>bOWBJnnd$lG*09Zu^vz&v2#}m&iP;W3adxk`z*X6gh25A2Utb6;jZz z4f_<*dxv;Y*G9Fq2}3qrm_tqM45T|)`VUV$fK{B zJ?_w7qF%#g`Jfm!S=$LgOW-m~Km_v5mHD+_YakYTNiiAJeuLWD!@9b=8Q-dD@wNi) z?Z9r*6!yM?cr`iY#~8s&ork8Ub$^o8q{q=WaC)cti0u=WEc)Ccj&KjmBAR zojq6nUX*ry=`o?)yWWz^xhSy#5$Si1D7gAqP1XaEtBQ^=5`A-hw9FK>Ua$E#6zC(w z!q3?~j<&SEBfsCS1<+Hf3`9ovOYH=>x+(w*f!~GQq%I5{E2ztKZ+V`@2<6cS< z_p)QJ$a&|Ov)O|Z@#RcfPrmzJ%b=SJfT zHAYkd(&N4BZGsEBLkP18 zbW2(GJ6Yow#P@qnjd=Dt(2k0B5@Z8&wfKpj$8<4XZF^_>>hd&Vg|0uMO+W9;hx!H7j+QB2^DhBtucyIxt1O!vC_eD==nmP(^8K0RyxxL3z4F9AW;CqCu6Wb~xWV zG;b$rB0K-6Gc`rekTL&1Dpnn!CWqVAC!z0$feM^GbeL(0CUZYF)F4pH!}U0wm>ib3 zNY871>klS++DGPdFI)&q$HFRBzw7cxr;PcdmWKjKJs(WC%cY2a6;O1KjpHgUprPV|XuZB||%wyG8EU6;61&G7UmWg03HkLMk= zya6a2=8z##au>r3dY3aG$|b@=D-kW2TXRnj!d9eo;lWsOHi+tfP?yYXPqoC#W>H zP6E1x3G*B4)N&s(tf71Uq2|kOt>p&Qx$H+rH!bT*xFs2q<-|BICSO5{W2(vXa>OKw zx1ZZhT5Wl@@*|#_4Yo%OOmE$iu~RkOMwNoV!esqN9)ef~HA^Ozx!-eg_@I5vmv*__ z!h(wzXLTlR1fxbde6dv+AUO{>YUWg6pB&h))c#Q@q745JE+rQTWdq0m7v1vz-}3)X zL;a6jxC=@?=@0Vl`<#VBhK=!*-(;jd4ovj}E(T@`YrB4rb3ODXqDQ}vEJKF~nBQPj z1P`)J+M`IjL&F|R=AzBc#{)v|bn-f3&|w?vFUB@5m?Z{TTnn}K){UG&G9_&+?{{|MlJsJc*#^qq_d z78v4os{8*%+gCWn6*S*24#6R~6C?z8mk?Y7Bn0>1?(XguAZYLq+}+*XWpN3%xWl{T z`+iUUfJae9)z&h1rl)86^yxEm=i2#9mxEU{0XbZsW6N-+T+TZ)Evw*Bmepr2xvnif zrpY+};Sd{3n*Tj_}LdWv0wV|8+JO;1)^ znT}Y89=XHdH(TkBxj>gPo^jaV>oKSlMjzMS^R%>rzC&^l?; z;-fNFPnJ8oJaOaIM4!wE=Mqyq8Yib2+YTt`4BWfJLV=&2w0BW9)B8mS58hP)p81Eb zpM~}iyoy|bA3KSUZLc3lr7Oh(i}VnX+ePb^dn|pg~AL& zUnBRlLb$xm=7D)O9p3N1gkMkN&z?p=FZ0!mc+hR0fdVfhbV4S!;xl3sQ0N^>46*tl z(%02n742O2hjd7v#xUN;*)@o+>M~B4vrWR zXD0SZXR;vz6sV15w@FGjr)Mr_E0bBE3jGa6hGE_18x0FZ?DEX}-irQ4Vrw80{Y=&w z3GcdEh@2E2$P|87X=*)I(p7Y%iOWzH@ixZ<1hj_iN4c2}G)pN~e>CYAfRY@DJ9$k~ zsW0c}$yDBFz_tmLZ-ZB7Cr*MmGb>53QMxk;O;3X4FW}qf4gy^MNRUxDFX?LwwRjM; z6mz)Sx-}83wQ;p*_pH(d7NTTVea*17GKR!c+Y9w7r)>SL4g!^e>LIfK{d zfuZ_ntk=ri7N?a)2*x!QRNbMJ3ZmvUSNGTWux#%E$~2ISy()_PDBjV5hZU7`S_Ytf ze^r|gznKHDX2_}LwAqq-THj3hW6d2PKh#mh)e0Hqx)$*SEQ#V5n+250Vw1UIrdnzZ zc?{kw{t8*eDX)0hOuG%3Ls)9M;}%W#bfz1?i&H;sQ&!_x|5V>?5_Oqn7R*FO{JWM^ zm>&wY+}$}X)Aubifq zmZh{MIoo_g!V40wIKY*Q0jSn(Yh>Dzq3!$1$F?wOKq@S}e4`C$`*L-@j5-0)#%QkD z3v)$>&9PY+_JC}G+pu5qN} z7f{KPsY*t7W5j``eNL!Yy*FfDCXkg3B0wz=o2`d3268L%mh%#%+AXbEMq-+ zjm4QJG0(I>&h7TR;FAFOse(*r!@U5Bm0Zuy`)*%?>B>^UD1rMiZU9dt?v{TaZIKsn zx>Y*tVvko;SUoRUQxWHQ#(HvD;&^>KU;N#lX6sD4-K@>X9G=kbP>XHGAwj;tu;ozvX2 zeCyML%Uy8hsrj)E&pb2}zo*`JA79}Kr=WFvk%5{M{Lp~`fVR0{3%{Ev5MI9*chO@% z`cj`%{m@0vnlau%&RrX;nJfs3>c-a?v3aMM%%Asz%h;*A%r_ow1Da~r>Qob-6`Z@Oc&rRoh*0@ct@zp z^kMylEV+o5lUmb4xV)lAwp*U@3?G+SiOi?~fn3*116njk$MY~`PTXSCM#8{yZ%8rN zt!Pf_VW({HEf@S?QX|;leu)TPOke6)Vp4Rh(_wWuK3^j|_k3IAc-xu-IAwgzBO2hdMl)UT1(28U9w2eXs78X$W zUCJLpSI1w!)c>g7T0t)P=_05;c*mMi&eGZ*|FO^ny8e`ALc(neDO2!X*Y!~_aP%2T z6@ZG<8wO4r5-0QzJi(K~o+s${uICfz2bXnc10*jU%X?XSpJ&nJ*hjibl;2F@+E)B! z6xBZrIMeD@8X}5;f&4fIQ*>hPaGiio0^bTXUeRyoXN;zHPCoQz!H;M!hBYOu&~qRGoPjEhbbuy!KZ|L?zhnw zc$D^0)yu?M-#n3lj3RIp132c>N4&iZzdePXY|l=RQ?GCT`!9(O-66K|@ z0X15@>)vAo@CX1P0~B$@rM@NE!of+2^dsYl4zLkWS-;IwOR%M4qOJx6<_HV!j3T2KlQ=792AW_*@SnTkSNXb);3s`9&w877w= zXEa^J=f6(H!R^DWoY)4E=7uivK5b9^!|({VViJvQEwia=N2pzG@15>e6>bCM6Tmm7 za_dFYkPGa&n=AtT&B{=*J$tJ7cvHBR*0zOnIQeNKm!Kchrxm=0OsoVJM6;zhfRqG~ zmk3l`V|S~TFIKG6fVws?0B#gzSwhnW+oiZ?|fu6a%TSCz?Os+ ze7k_pu39CeD7UPx;t*~aN?qXB!8Y5{GFoR^w#q+1p`Fy1xAnTn;Y8TjsLFmQ8LfwY zI>12bM&8?4ZZ6F_*r=WJSEIxtauI!_y@uA(xgk6N>=v_DI1A+(p+jWnlM_na&$2dC z2WH(YmMe|tFh;29YJ3vFBfcC%bx_gflbf55v_xXD#oL>nS`{?aLQiub?Cipn41h(# z>AhCG@FIXRZx~T_1&$QVHVt~a;#bL+?U|4LsR8tJk82VZY&HxkRRC}LbsMeck;7s} zD3x9q-1y$*0#9xW+)GC0M@9_foPeW9*7aO`;fgETJ5z7;Jb7PxF6c)}3Vu-hR2MSJ zQefsaz;mQf$LPUL)L&tKYE-YZs)`mjYbTkC9-F2t1#k<3Z3_My9kKD*fI|Z;tQxR_ z2O`;ME49>FR&?J~@yNs;I-_OzZ&h_aIvzHp;c0wlGUSZo@{Ef}+};>AypfLdbiaWO z_7VJ^xJCOZqMxwUr?x9q;PD4h=?9^A+UcP^L=J4iJs_V6*%+|Qw6p@gw?xaTaUn~q z(Lis_^adq8Z%j#^mdwR`ABVp%ft4#v<^V4-{yVMnW=cF(3id!=xnmg@QJIk^JOHDz zNgvfcub1^2?wH2l9tL%(TDedj&|%MR1O;0I7wOVB0`&8ctU`WR%|_%30a@we_KyfC z$wb}rFa3+hIGx#RLVRv^s=~C0%UDjob<-jdaHgLe^px0A9x%4vi9(is=d{C2Qz`MF=nYcv1u$Eo0H)|y3r@K5hA>$mql!v~qLD;i zb1A5{@{kRMIPCzQ`vk(Kvp_c-)5!Je-ss=vq06kM-CO#Bi(8 zH$pd%K$7d#khw?2>EC_ySO_c}LuprR#*60GpyTD1Coe$kkCl16z^*v0;`D!6eE@Xz zVw;2K{!SQ!wLTX|>|RCe-DdlLb^+xKNOgQ!E|s5s*Lj?acmp^vLJJ(6+!!+k2q6QZ zc{%#DcDOYC+~wuY-XsTrV_)^BOK|yQ%&)pNgF>d0*rqXnP z<*A~N@|g1s%;Oa};Gn0AaU9S!3W8ACDAPr$BMv( z2oStEx-S7rEiA6?097!Fyr#{?uZRF98xQaWsqWq{AKF4eznPv$yBiy>f9cKNh_upj z#dP0*+Bq1#kEu9RIz{k?VyeHNk{@!vbv14tc9$ni_3H-&nL(Zqe(9kBVZ%G=#ev&% zla8Kx?DIf{>qc@D@kD5EL+yM+|`d+js9K zK#PNLo|YGQxvE_hSQEltx06cCqf$dVTilPBKc!V_X0ADa+T}{^`6q$4)2xGQXNYcd zySR=yCa_cPUpcAFYD6>dQvhcOo9BJ(r4B|a2NX3$3Jarv()Zm)bh&=2J{JzSuP@#z zm-NBL=1F^oBL`1GKxqFVXGGj{x1b&0<;56y$ulKek!3K>K3Ek6V7I?9sbSj{^FQe7 z#-ZLY2Y4ilx^Lbtv!D#f1mOs~VdDA!uu|e;MLGPB`nd?&j5eH3* zMzo@glC}Ky!Mx>E7Y^aDq~-pvl=kyOQk1urluPdpp?>|M+pEf!eyJ<&Z$`QWPdM{_ zerbJ?P1fDd2z5Y#sEVr-vP>|%@Ba}v3_Y?<9L|PY4d|-w4v=kmX|iV)7%Ipukh0ni z#@)6qU(+c-pb;EAMi}~KR9)Lqu%4kcW@TpK4;65tjbh22(CnnFFuNMQo5hx|Aln&2 zY><+my^gaF;jFBGp8dF7H|j&ipp{i;(|QRi;jZUD=wc{vs^{LT zThk*58De?+(98jeExJ*|o^yD@z!&7801lV=>7{8Yz?C0savG5O3IqDVpFWvz3O-va zYnhD zX^7ki8pbzY4hV7ahUdzKA*O!7`S@zN5(mR-oyU!OMSWStcS7Fd#x=ZhvrJeNfr;C| zz*20{4K0>+RvHf|YSdKq{bKn({re|uzEa-;3HIIe;n-7gJ9L+n^cDqX3^r4;xZ9uh6dVO; z;m5Qyx=Ji~4V!mF-rDG-^hKRf6R%B1H@moWSk9>Cj|5`G`y1M-E!lcLNV0B`_6At6ocvg&-_tDbr{OpAlF^i=~)_MGPgOv zbbfxzVAag)0vbEv_^oOU#nTvM=} z!!B`-GL_+jNKZ&YeP*}EJLauP?e6IpxqSlfwGow+`mBkV z2|r<@>87Dsm?mWa{cI)?@24`DZ1|jP9RquN}Tk zE?Rc>D_VAaj%kIarV0EqWj_#Llli!1j%O&IqwH=7r_yxDf)q-9JNSgcE3yuES!*et zY>0tfM${na!E4wa$tuSjwHZ?Qf;F1tEYS4euwRE>cE6{t_@9noD(TEK-tBDipc&_) zN#0!QYx*EFtpLu$N-MfClfY=$G2@T^a#4iLQ&EdUd+n56-s*=tLzySR(pPn@q&trP zH~O37|7Za~eS>=I%JCir+c$KqIv5k+CX$S3sK^oR&Jqulc!vBV#dz@%H`=odmuD0& z`A~BwTAn26Ntc|Oa>c;mUkfrm5|{>FFQ~N+N~0uqV(cAL&#M)t z2TNW8}(Bi$t?$%#TLE z_BUR}==n}+w|b{5ZA66y1{k}s`13og)T4zg3N z{!uZ&z@=6zG@}-lz{ja(tCX{l$8 zA$1>%vwtQd7189b`5SA7oXgvzkyN7@prD{AtC!11FEXGVv5|ZvZ;9OaNw0?15T_6? z-s154qWm*GcdSABzh9XLS|-4#SFOq*W^}Ei&zn+Bmlno>qcoaWMju zvhgh-5TTQtbZ1*xRcM+u@rnNNSK0lks3eDdD-mVqJE+$?_RL?gpV5E0`QFnnKQj5Y zd)W2(UeVU>uORWs3x>1f8dQR{p^IeRYt;Fhu29?w7=EF)k%YT1!}aNsF|ga9uaWa@ z9OP27{_Mg<^6W08UVmPX-EpQ$aUj(|&J1CEDlWgwkQjkuacRQHqBnj#Oj9Kp1Bcy& z#{SOu>_QgYeaM~J8CFWxds5atVSz%hYz6x|#fVTdLJyh`8WZ#S{ric?r#i$T^T~~4 zB3}~EGWN={i+dvtJ(_Iy#_ow{B&0Z5SO(<2keOVw6yob~E>~JWShO3Z?2IS<{h}Bt-PrW)2^altw%wJ!iQRiTBEO`$iCLh6Rn9o7HOoLXcRfh zWN3L!sNl^KMH`KpQ@{GAwa&Y+_?;0W3(Y5El=YOQcER9WHD$SXrjxt-ey!O!4rO)> z?syoO-2}q2^*&JLIuGB{$$XG+Y+hjDHJvR}lDwM6We_Q-=u0I!CR?9OYxlC$O&sSU z$lB~-NOgHmodLhpi=_}XW;3Fpdm&e0kd(`v{8j9PfvfWTb9M!a*4z7_83LuwR)6P6QMsm`tA`oNcyljuYg z4I>B7=zZo_x=`KdHaaXNC1@Cm+9IE2l9`)AnDCuo*pE6=9vn!u#}{qKa!6$R8<;2X zx#^tM9RI)e$Un$5u-5q^a~EtlJ~&vLaGITM3#L^%bU-D1Y%T!e&im@a0R~>X(tL{Y z*%(Im-OBaMkMGkPuO;OICZn-GDe9>Vqp6`r@z!gezHY9ue7HE&a^oJ5xjUtXBzxK$ zRAZ95D_%(DRzO86*VwV8=o}F|uUV~H(oD|itd*QGir+fhuJ$wpA=%;i=%@hqXkQ@k zq0XzMB6P5wcmL#^x`f$hyM`qq9yi2h8fy><2E1ZEnBGWVEHS{G#dK7+T@ zn04KcKSZ@9tI~|SEP7;PE)csa{VC6M0*R-l6g8y2-tbqoe($L?Vi8LHJe+Rk++U5t zd4h?xDLAHO*qFumOJY{t4&|t-kv70G~#?e6=wj?~6NOk`6+{G_oQ7UtL`q{4i zG%(i&toBQ`65kMl@Xqz1H4Q(@Zf`}Qc%!m)+)vlrh~JT8PmqF>_Jc%K*>;o8Ko#uI z!S(6pSv)^hc(lEw8T82y%;PJD?1 zT+9)NY+FYYgy_>lF~wph`C&=KA~F&AIRjY~eREj@7S!dzQeR1CnV()Zf+`+=@p zT43{ZBqJ@|Hc!?SRS5^I!XNc7-rpkN`mY@~A<@qJ99LfaX|Wn}rsiF=Xx`aNy=rmo zK8F@58iY|k<1=O=TiOm&Sf1)h>sRg@7jBqg+oT>7vkNir0?_qL_DG6Vum7_}sqcwN z_w^iMW%@j5j3s$Q!<5jFoGdN}g~VKzx)C5zP)P*C3RyXms3&dQJZxyCj9B68vs|&yyxs(Od3N<(s3=sZ;AVqniPj2s+{jM z54C>fx~_RmK{)D#F!hUbv&~A;z~aGM?UJL^hV|bHbdpFkl4Ev-JonlGe;lmmE!j6a zJ|mL~b2Sv~ybFxg!Uz4725n)W1y^kA45h7TUZO6nxnbN`x}nfye3u_?T2p%6y$%OT zEC|N4THtlbQRw!6582OltkZ$$GkiJFCl1s<^l6um`m+m*^hLk)rEsz2#0M1R^%ZQYZQd`))V z(&5AD5Wubd1mOmVsKF+Qib%C?Sx!OYlKjH)^^;gPMYpwi`THYe%ePd}*>k%L>atF= z(}81Nkb+9M4__kv+u7Q{aI6ugK5M8g2W(uJo?P%pLw|`0k#g2f1JjOzq>P0{H$(y2 z5{;k0#SxqP1qhQ?g=e3Bh`m01oAnfdX$;0D3W_=EeV8}v*ceE-=?~RozlR^TSI3#q zuWV@4V-3`pP6eV@2NFz6`_}deK=8Ogs^#!Z*@tJdxpJ%NR)5u%asJdhcmwI$Av37> z&JW}-l4-R>601WG0~hJO)(_;-*6tVp%KX+M93S?&K@4sjBdx!9k=Pom$HKoCQu{VplCASE{3Po-ZZcrkVf0!h2Gkl z{e4>|m*v;J5{_==fwjDJ^Fy1dxHCBB=kRYXcS$cPDk5Pu=ppRs4o30r)yY4ofw<;A=t&@S_9lx5|^-42C zx`&567$g&!gkn&kUN%@JOb1q;=eDslj%hejoPN-OD2zTKiwC$qpWoQo{q+Li)jQL( ziD*T`-&W`)!F_L9U;=3O`|^u!&iY18C}fl%#4*`*g07yYQh~ca zv*Fm=19y1ZvOTxTgZ`0fe(x-jWi z`1R)lX}twh0WXr2GbmkNsG5Qd7;cwun|X4GMF^e0$rLm0EF$@SB!vUk5c0UKpR_b9 zUvIXpARuY*xCogvGV7=R_5#QBLR>bQDJk_R>v_IzW5l2}d$^$0c|)83OGy*(nj3Bt zETrdaNj~I%^f51<*T?tzIjZ3 zLwj3PS9{vM7xOHshROx%_p3_-ya|Kjk>(iqPw%{+Zj;Y0gKReD9{=T<=e1;8&sK_M z>(j9^*{>j^UO^s4xG6{AqynVdSbytwBz%**GEQ;?dcHsFdN5^!()9t|)@Hq*w)WnG zt|&!vO*yf~77cd`deJui11^T;Rt zCH0%R58iM-KIbv(*Ual9`-i4%wFbJU+U5!HMYw;wP6!eLlZjO7;V|K1R6o+vI8=1Q3vF+|G1@f6MU7@gWP@ts_soaS!Yz z*J*q@ICj%(AAr~FWQg_c0E_49~#eOgq^(41GCvdO|KmGRT%Rc}h zHr8`2Doaca1sasOa8qnrf2CT=KvJh8P`7un&I{!iioQpy0DL6&N}}bR+){Q}zV8BVzBNmMfcRzC@FE2ArHU{oFk7lH&-SYa{DE?)Bcgj~Yqhjvx1h&CxE<-S zx9CTEzY`uL?i9EF*u(`Y3!E#kwhT{v2t+t2g=m;~6vUagpAe<7F+bru&`p28=CM3oUhV`}PnMUr6JPDXBAaJKTO6QdjQE4nG+_ioHXu`QM(W`q5q

    (%-Fp%pg!dRLt)PeO?$5wLi{bh!nL( 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 + +
    1
    1
    2
    2
    UDP Port 1
    UDP...
    3
    3
    4
    4
    UDP Port 2
    UDP...
    UDP Port 1
    UDP...
    UDP Port 2
    UDP...
    3
    3
    2
    2
    4
    4
    1
    1
    \ No newline at end of file diff --git a/docs/src/images/Gotthard2_module.png b/docs/src/images/Gotthard2_module.png deleted file mode 100644 index dffbd45ddda3c160aa4ad131f45191933f90eb65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48183 zcmbTdWn5d)(mhNIrBJM;#kCYCNRi-Hpb)&c2d6kig1fb)XmG6{#oe7yEJ$&82^QS- zO>cXj`}===^C96RhjaFsJu`dFnzcWvD$C+MA%B8~hK2`{lU74R!+@gxMqpv0-V35h zBv2n1E^j~@Sg4l|mib52F`283j;p$(rK`J%vjv)!gQL9#yNj8#g@uF5dq>xO^j0y{ zNgRJpl5(~%akX}Ipw+Opw?NZyv!LY`q?LEGqvht}=A(VhEyO1v^qQAeQi)bdMqOi$ zdMXzUjTQ|gEvey=zB})pZs6{Ae?OVg(yU!PQ&61BP^h2SXyAlyhBY7# z$KUAj;tZFXFiH>xclK=3n3qQD&Jxy){k@@}t(X+NNN@bDIu+{f~j zOXwC(25{Rkx_5tcbRD)8FOgq}V`IDiqk(*)D0cO^_3GQr&49-J z%qchAUponWGsu{@IFJ5{uZ28 z(JuoVO_<;rzp~>&fFb?Cld7$Lxvao}x+(=>qhh}VF!l9%KsPSzD{X#2$`(&b5?}QA zqe2kGAXWSsNp@Rt&cO^w2mHE;%UV4F1Efsh;{_vOFy@$XMHA@q-~|-*67cKrk}6Y3&djYO19YHhb+OjwSu|n|{fm zgs6|zt0}xXtHI0GtXGEia-X; z%%~SAZH2pd@-hVxx0GSQ7M^gAyBY+GA_wIt-!I)9HQ7}skgA^oXkWp8<5X`-q*3={jMa(aO0F{YT60AO4>@lk$$aJbmFrx!ki@(eQm z%%|53#^ux5@_FvY7P^Ff)m3sm7OBqQm~P<=wGYqn;Vwdy&Ua@JIfWfCm2_2e=?|&F zj6}>#lfghTY#6BsZ67>X-!U}FD6U#to4|AJ9GD5&TWT5=*t;cI9?2`hvTxsp(z?Qz?`)9+^k6mMNd z%<SvsS$5sF^|2V z!f=C=$~K6RGrQhcj}gEYwhnD0X7@Y{Ulxb7^%7gdyh zW}T(?k#|uLs3^c7-hgMphD~{B#~%>@(7;%CE+kF59Gas1$_h=T;<)=7Z4)-u*Elj? zxrlPjJFYGJ5Td0D6gNJcyQR>@`z;JgyO`^n{q@7^N3RaN1nmmL2ESscT(USf*AB!C z$)>^a{hJAa8gG0_T*I$W0U((Yt2vB0j#L}wW1%7@>e(4_H<~z>HFnIXIxc37joJ2i zKF4cV(1eP(Lrc#Azb5q-&L$) z@5j`SE+hFnigXDfn%b}deuaSJtDTCP6rS~(lt#<+c&|>%sB+Jt{{H6D8DKfd zammaj`?^odC!16-0kAFWda?C=eMlaH$B z1nre4UX;8PXYp@a&C0mewG`nCUPX3$7H+VM0guhl7lz(UPyt~A_R4dR^RGi>A2GPN zoTd$RbS_|i06-ii2z6^^NO~vD;d9h5=+wf1W0!*r19&v4kHzO7Q54c+^-
    `1sUn z?3**S-!xqy9phoz3yH+}FG%XB2#M{A;<=VHrw_&{vJ+U%J2q^7?!-^?QU@)zw;*WvF4i-=cHDPBu;xkz#d!OI?2o)&lmaNDd*hQVN}o!nl?AYu&@S*D%&=V6 zggHNdlq!^=Hmsq?8eI**t{53*cu($_Kd52UvT9M{d#G2?P;k+a$a!#;QF@Lej9*2$ z)acy`KRjFYfEmp}_yzYU9oXv=TI;tRon}_nZNUqN7QiuwCB<_xyRgVca3e*d2?7VF zwN2L2CmZ2cs@d9ge(s;OA;EL^F-t?1wH{P2B5*7zCbaqk8$rn~m`S;pd(Lrqwf~a% z;QW!XH-(li%u-CkA^xMs6m(^oCMuVElW)u7g z{r5KXH`dZ!eGIj)LZj3{sXhbq)ro0ct)k`Y>Z@hBS3c*4`F6UZxw66ftkI^E+!jx6R!EM>;}h@}N(89o)#N>na+!3m^Qw1k z=47C)pFk{7uPAZwp$I|CEv+O^&su!%nwK-S?n?-8&wPH`O~h~QLye!YtqPy2Y+10S zKhH~^kkO57hTlO0Wy=wA@+4m{E+>QU`xf^vyiw@M+IqCd)oKOjdP=o1aIyewW;h^p zcO7=Wr`^j-o|`RyRbT7r*nym1b`Y!CGi%a0r2EzTOHn0lFn)|B{WNoZvfF=vGx|0z z%kZ9un!~#e@!Fv=%^q*I$Jy#I?Ro1mT)5@S>>lHI>}LyI-s?1LoE{BdaHp)xS5J+S z-qnDe+zy5ArRi7b;UL*G`hJi*EDOwDn?mg4_?*`}2f6!=Vd)D86DQeGZlCH7jeWTP z0Z=RQ}|~;dnVx=DvqwIrBAmyNV}eI*eHEv7RTRIzMaLr^8t>689Uhxx*^ba| zTQT}kd!)AH0$&~ihrCkaW^OW$pPgSQjz8ywKQEQ51Ymcu&aBn6>QaGQXYsc@4_XsJ z5@#LnJQvOEJ<8{A`}CKw$LIp_ZD|0*>YkIk%+3?1R!)8g&=7?T-c zNDtsuv~0(Z7SrXpMNY}z5)RFLY1rTNBJ^1iQYR zkfra53@9XUo{DUQ7y9>5xVHq(m#N1abY6K+RPF>fdN^$aKgIjdQhlvIg-cP|vabnQ zY)y0D_f105Obw3OW??Q(GWiV%^X-4>tWh~pH0CZmYRj|oPc@{O`xSK!`O@b$$8G30@Avj0w8cmS^O<^3u1=ZiBm>eI?cT~w zL~a`i8#b;SCkUq)Y>xV&#O>0(8e@|iSj3*tmvMWFPD6tS!q2aH_;V)_oB_FLM;;Us zv}Lhx-jgOtu{zD%jBp4TEH+_hUZ5EW=iHaqH_u?J@J3&7hn>u#A0XY^-xPG2j$7Vw zHBsFfUDgxbh9^9qXW*DPJJTxNFD&0zkjXE5?_)W__O}p_A+PSEAN?}4SRX^2Cnvpe z^E9JzjQ;=)J0({o$tk-=i#5PY0Tg>y*fQr}tx^f_%#7{niAj<4<&*Z8U}vKcFa{|l z1mymyRolZ%qC*xriL`tlJv^Gxl(uR!@U89_|D0bCXPYJBxl}DgN%*u+fsPfqoNm{E}Oa4E0y_-4pVm;3mmONd(e8GDvWP|?CS=&Yy{mQ0le zocFO9Fuq@M=H)}~V2|H5Vz3yA{BPgxo%W8$#~)GfV^yfa2CasWwa# zw1bP?s@&gG;6Px?6;i}{h~k}k-*aFfom>y7isi*v&QjLU&YSPPG8s2vJB2a+dgiJ$|?QmJT#kvcc$wRC;+Z)0sf`* z>$X-_!I}Q>@-hoC%pQFN8JKkqZSZ=?^F46nl?x3Sw5F-O4q4GSr9IhxMs7VSAEm`F zcAbeqkdoQCP3EXmkN{XJ1q+|MxIP;4&6+ZHfRWaXVAC6X3N5cTd%@@_h_nB_3*1Jia9nKJtoc0#%Fcis(Bh*T3f1nEM$D0;Yus7;#qBo)dV46}ped!1*q2 zO}pu0JE?kUKRBJeCj$gvhpyF!HB7YFHvg_>U?LDnVrGyL8yS6W#qg_B@0wDoX{Y?G zQ_g(p{NT+DNq2;Gil}hpx(6mR6MD^rF6LtR2E%~jyw3UP2xgBId@?+vHUK&3*3Gm zV4OY9-O$M?gCCx{!33pxnN0egkLVtd-$tTNg>TSxiyrI%6SY(VZ#44j1V^wGA{aEL z^w_)aH&Q)zv>hR7A%utu<0Yj-!jlD?mi_aD%-P46KD@}{gr`>WO&(E$Xg+&H)9dV` z=mdZOUBQax=Gm9*V6Y)m>7r8#@y#N?Ie#5!i~DN>uL5R5BNbtv&(Y;EPCnXR26{9= zp=p2^FK9Q|cj$}XJ+Sy2cu}W^@3*hr+oq9!93TQ~mNsloT(Vl>)ut+3pS2w8~h zI$3Q=jhQMIOuGk}%E*;ClKNjh34h$G0_Y?wj$sodOT=9bN3@7gV_&_Is%q=pFv?(~ zZA=dBe`+s@t+8R=4-z<=g|@EmG`1*vhMz3dAsy5*@;!E`-^4yU!IW_eZMYa-ra6QK zi)Sw|Nx8;R^=1pG9ZZS3hBppf3+)1hd3Y>WxV&y(^JPbJinC-9d9q#1-3*=17MJib zONEaZ2G@SGXvi7kFqQEN$|p@T*>N8{jM)xh2(7rD@!t!}B7zSZ=FOV79i@u#_|8Et z$?-y$VaKvo+9hPeiX4RV767*ZiCLOr@}P?)#PAqVNK!N$!RA%%No5~oHZbCMJ{Epe zyBwKa&2H%%iUG?1Q|ld4Ax(o~aS9ckh0W{Exqo48 z9mP18^)MZo92IWgTxMXH)w$a)DWwQj?cBrZ=_8m4K!?1*kOR`cl|J?R6$|KL)wiJ1 zDZR%9#N;YlTNR`8s<7_ng$rL!O~YjlhVUL3FbOW!OiI>9HM&Qe)|LOqO(kmQ# z#TjiJtC{8VaQc3o#eJ?nq6y`acjwJEUiThdF z0MQH;39nJ%^- zH}}$v?P@m(XQE40P2cU6kgwiMpB->|@b1koKU!SO$5~MBWE5+4I6i(z%h*+6e%t<4 zL-lmt&7nytgH;n88F|!l(xL^An{2GsgfvlX>6wk2ln1UoU$5StytoV8M=#5DQW}af zyDQ5|bpX+dzutL{j-Rx!Q0FT>m_JXnF3+{yD=F(4Z#(tM0|tb$WQ0S^;qnW z1?%_3&ySG*puwAW`bwQCgh6u?9Af$mXMrE*&PHbC=~f)>(b&Sy8gE;?6(VZ2irB?!yZ1GGn4~-0msJ1}1di;- zzOq2`FPDZ4*q(H>+DEpQ&c75Ge-dpEyP&GNkvgZVLZu(f2S_ty~Zpm zSX$?tBX)rs$L(-Vg;Q0@K+5y$9Ax1)$u~Jc59}JUcqv4p3ukV z=LbF?Y42S5^Qx1;Qv zgKDSc&LLWPm840xq09@th|eqECd`KwYJ95V! z1+citiB!WIwM0w3ToDLm!RB6y7Xf(gN(Mznig>Po#CQ-q*xk0x)lE8=bkf0m(Y_Z_ z_IATJg2qvXHl()Jw#VK2ibZSh*G*=MG9fbMd(O zefjT$AK%G_N#0+Ydiayg3E)xdJ`rEU0qb)%=I01}6Qxa1#!s`eXsvNwn}if$@7>-m zbz51&tV+Vt@|f_^AM3<0bw~5VV4Uq$fP*Q9bmy7n*1gb0WcZQR#k!FvdkdtwYR`~I z7c-^RLxZ&>i1B7w%E^{RgZy;c~tQQ-Y`O5XHhZsXa-E)jItM8P_d-pkD+1l+^&2!WWwbThOAJ4C$3b)G-XE?E>pDsX zRw2g66o%fbQKw&R6HGvcwTJqlD#p=Nn7eDmM?v4tJijCE73$5`$BYOaKbd&p} zA^*{m?XM>u$4dEwGi8zs_rv&50Nm7N-ck>}ShN{>O5L62>PSYh=DX29v>mnhl>k*c{z8doTA_0Z z-4HY!<`lCc_icEwXCkavQ3cwPTG7ufKdK-&{^4^szUW&&H8I^iz|AvpPR*81v&S^6 z;w85PVy&0Q8t&RIRY+#_(cHKV%HZZTZx(ru6|mMV&YxSi&fdANc^)Mv@ew2q$P||* zmhN8(4cu9x#)Dwf_P3BmWX97y|5nRyhmhNOMkk#dCzO--(2jR4r>Depy_nDrz(Rg? zH>najDaK(kvZwbma&ROi0k2S={>!#-y0;Ov&yJ9d5x@QI?+cow{ngPLH${KjZlM(%iT*?G{7j^UIVb zjz|>D{YDX55>r8=#YYH{8nc(r4+wX}%$gq-g&}DpcR%;g7+95FON@?wbw5 z^!=SZfU~2b7QNzTI0(|;y<|kN1O!n0Bmx z2&ShK?#HWMn5v$b=&R1OE&dkcL;ALf+eV;NhMxQ66i=IrxzyS)Bfa#iM9D02uXVyn zpanjwN~9o`6#{ao4FSQLOO~BP_Jj*2%>Szepf$y77We$j6S@z$#*gmz4x#tHXA+-) zd@0OoBnMB0ckgYb5RDP-t?VeY3?erCqk3C26s>+j>AeYiqs&vq#zVwc5LZbhR#vO1 zZUw(`8dUSL(Brs--}BqbBe9!_aO^abk#y@iI}SRnkTX?bmHDF={KWHe)1wwuk7nfD za*sagW-WEw`iZQ$i9ilsx73|Rm^W4m9$Co_7UHp+hk2NE)b?#t zSGlp?2!80x1iq5H`7hXXi8s?o{YNiQb*wNmFss|TRiGxFKqmXD&mm$+^mBPkK>yc! zw@@YPgi1W8XXP2QyFkx*uSEukatxPE)2|83h?YF`Vt@Lg&2;8#W@K6ZUx1rnsfg+& zzlGOA{Ba5wKN>qtQNCaxd5x-IZJ$i0yC__vYA8RqU2RGm(GboRGn;LVy>uTYca`Qp z41M#&xyQ=I^RdhAp5wK{TTO2NEfjM!y8Wr#4do+n^E|zMw_U(+9j#AqoYT{-uruw7t>bvYuXa96PJt(Qg#P5%@ z1qS`^FN;t0JzG{hqpGN18e=kpSWNz09Yy;;0zJCjyDy$!{KM3%PD`PO>Ev1*`TRO= zayg?yVd}VeLNUQ>=nF=?cWOWW`T2ImcaymPsWZrHu&J?&|NVyQ334#}|CV{={y*0R z;z9p+)v+?`n-OG&_+n3ZjL#+DP+c5T6$G<+Ny`lDRPt$gc=tLlPB za&5GTg8NsO?@2#6)QFvOzd_y4vn*zp^#Hctwg3ARupcHPf)}?36Z)$9!d}ZNwrn?B zDrN7V0rY`F2#x1M6^al|J7d^k(qU)=lb7H&-3CF}hF<WwY;h zPL!s|6aL!JhMre(JEw*ivK!;nP1!y8yp^WLE-;l`r$M7Ip5u{sA%A6|si+%L6T4P; zmm_zr-%@Q5Fd{;RnqwoM+VoqdwD&eDxDg|9^F>WItfNd8l@8sY|MQh3Ts$aRsrJk? z>hfomq>WUR_*fWWUMHa+8rN@fvGY`yi7a>(WQ_5mEBlKGpD^{?H= zE*n;0*{@{jrMD?abMjy(TfgUUtp>l$A15V%K8_8)Y<08_)HVwAJYGt*?b`Dk@9_vW zycycN|K5;8IVz9)N#5C#yYl@r zGIsQD(zk;QV@={LKoYJ8U#k*N?*fNb1ACziigZGw<^VxTF0-%@IZe%qL^BNy(2?(F6)XCrgTNaz4ftCZuat@v8Bn8R=CI+h|Q?NVnnZc{{DIH^3^0 zxRi7_Y|_`wl;i{1=Van*72XPDvrv>q6+NZGSzWSz>d;6%gU8&UOQtRSn_iSwP1LeY zIAWN9Gjo&SuZkpxLrvQt`2}vr8B#5FENvdYzFz7vfB9F05AJvcN>butW#0Db`BFrb zvb9YdYtDF~$snau<~2f)I%nZ9DId*WvSBYaNOXVA01(E*Fb7X|uPywbAXw zaes3F3!i*RG8YSBAo}B_&3Bu-iXw>_c)xxj7K)2osP8VikG=i6xs0syo?8wCO=#t( zf7VpApT+Esh9PUEV+n>+Kn&NokL8Bhkve%)+Lox)N-g~X@R^5~ez zXEc(rf6QqwB%|re6sRha&4Zh)t=AKj61rxUr{uwx`Y)eE*1*LSD*)Cs!cG!1T_`F& z@H<^T7CC+^Sgb2<6#McrCLSXp;c$6QN$H@U$LV-LO*98qFRNWx8w;~?KO7t;A#~u! z4W`#-4V_kJ9!yzqxpqR(6$2XG#wLZ-T8#N0E8C}RS{MLXZG@+MmH@L0g$i}^CbjR< zliEK&g0c+KZ15-iEQEhf5fpTf*A{XvbrcjDR#5$GDZ_^xJ6tTJA?^!-s3c%+ii@7B z99mQq!52RytwjBuImU&EUP0hv7}PQ3D*hik3DU zkTmql^F6!7N2K()Ao3+(zCemebD-VLpR))sQR^|A2z4!4Rq$v?nejb+F zax1-e4Ch}Asps+y?GtPGIw_h zlJDGTa%NZGl1h#}2*5epO8~Y|I8xs2=CP%SuUTmS3iFdB446%jeyc}pO!)dSmNCb7 zn;)@rz`09h*1;;k1X2uEILmrPg$jF*dnKHnfidfgf2%1Q^p;}rqKlu=>lsN0BKVc8 zIZ(~p+XomofGH?Q*hbF;ZmNuZ+rgE+&dvhTyX-K*j&Eqp$>D?yB*Chqi1OwK(mQ1O zd%zO5?yp*mNn+nm5k7frjeOrpve~unyj&(+hKqyqyl~M!Y0$piDPZHw3r%g#8juEA z#c0JL5r=Ul^9e#dM=SE}_quinPBoZ9JDw?P@h#(o^vEf7AS=ua81-xH#dXGyFEb{; zyzwvnJ9FC=<~oUPy~>E%3T-T^FOW4Xje{V73Sw4&F z%pIrmx-@2&m%u*bfspTr0>!7~F+R70g?ul%T#!u#MeWWAl6s==pHyxnPPW=;}Vkk5vN;NNemSwjVNu^ok#&9-cnal9HwkjaUMWJkZ(2(vj&plez zXr4E$kV^3Xa7S>x`RtrmET&Ax_ zK6GfesxUkEHhR{=%Em-!62ScMYyP|}Ej?`Rww=prdsaYwF$}&%D>}|&{?qk)!KaC+ zPo;|6O0#qS5JPZ1fEDV+ql9g+;3>Po`inFSLtZ_%Cty!O300_8pDvUyEC)311vQDx zx7!!#=wQ4NJJWJpEkAXrJ^z`0lNluMyYZ>_!AzIwQr`RHcYaa}J{qr+% z8LbAAfAbkc0oo7*l^+(#?y9QkmXil8Rg_LSc6MR-BAA3yvDt0Ixj01HUgI*eQ(cM0VvUWR z(C~_R0|EM&`S~O@n0!9S7Gj8|!;;g0@{I2QcK4hEL4Lk;DsS7S$C003+54)XnY*_6n@ z?$sU5r1i>E#A#HC%kyZe2!zM+iX~0IZ_jL?U)W=(*-B8SGFVmGavkHL-@^yuhVvO~ zYv!wU24SxG&(idg2gf>GOAK{7k162!MLYDAudzd4QI^`Rd04zctwMFkRKdD=e7hv) z{o;Sw?6a$GzashP?pMO;L`0JI_D%A=yx)FEZ9HXQz!Ur0*r>n9PizNd2JHHK7isSA zPIuDg|HN`=#C!6j%Tm}9vJfC^6FkX$-c3II?yI%@=d{693sL(W zVTd4uRs|{jW6}>B>}KaMSI%KAzN+tHNuN&J#bmH2$oop=GzjIJ(~)oVXRu|ZF=7z% zJCP^KVW80a5E7!(Byi}VO`@UIr)OpwIQ5xGN}DJD)4Or!xYKT<>|7-8vYd}g2HvkXneg~Muw`|!<1&fh3HP%%$P(>9xJ0Ma-SBD*{7shft!cT*;O!IiIh50W@-#$3gvfpqWjs0Yl*w7=e3uHv(9p*evsyLPt z)hC!#dnf$Xx9Y!m_iafX7faVx2pP|s8Ju|flKn+o`=p_v(@ID`BX@V5@z+ZAheb|0 zel$3Zdv)kXM_p(22@Oh5#IivIL9I_tk*w%b`i2GGScbX4wY#t z{}JcrJ-Bol{@WDzuNcZ%`iuwl(yxBf*Jph1haLN|rZz)V_(a)}q>tC4wq{{tFu^8! zZLQqfh)>LNV*qi?@1Ld~xqrC#NnGi~c}&IzdBjqbuHBOuTx~Z6=0Vk~|G7;yrFpBgf3U60{-?hVr8>&?@V^{K!yvqN6BTSZ0CGp87o9l$cG!3n`b(3 z^tDiFS_=*8-eU=}Y|yJ@QHorZ@E@`!I}?YVgVv)c;b$9?It!t`I^-}aZnHgCF*0YK zv&H|A4>;3ok}BN6>mG)3g(h64OETp+gBnSi=bv?MOw?boXS~!JR5n9?FZy73Y>cnz z>FEMy;|OmD&*{l2r@D|vtF62FWiC!&v<368@rW++up-9KrBGqiaI~pXhwda~viv3` z1-06xi-`h+#P%ZHrQhx-rhAOp7Wt%d-<9NA*?o9|3YEIKXgTM5(?K8u9;RmS zdaQ+RNC#tknT&w*;R|kA#R%2T4ldG3T{BtRrW-#qv!VTcgVce(X_QF4h~M}qIBD=H zE<8wkPkd|(>OG1LiF@o#Xk6{G1E&` zMpFhR5>I27)RWl(d%g5*_Z_RQ_Wr{pCZDPR63uZK25%ZiUF ztwVw|dKAJ^rn&eDCKBINpr>EuWCtjNL%>ajvf=ze0|E54kuPd9PUwZ7!N0>O+DW*q z?Ffc{Q=9sSCdoRm(X+GMJz8^}x>(|?4}lSrv0SNywcu;JRoYpyLT2k{8-P?>o7jKp z77n*7PMAru2-#jM7~+W&o^xAVqU=ZWc>@8G!Esph$j@HI{8eq6K^-oeVdi)oJJL~PsKw(t$fI7q5NxsN0iTwIukdMFeA zI$K>}Wdu|XsqQ(phvy8$N~0+&er0Cq>7Ow8NZ2V!GK&-bfy& zS7zTxLeYr~NinnQ>|HP2!d3o6vEd8~1u-^KrKT>0lB~22^~7xd_=1c5MNKWcN%%$3 z83a3?oZ?%tQbCe(W{6CLIR_LIl$5kxV)Lgx5l!XuWl)s~)pa0V2YeT(Pj1Xx7(fX@ z<1G@OeZ*kiXU;=4D>8FMckSkSTQ+SyAk zz_L#RTuzZAs+**vaqXj!+0Beu6aF5#55K3VO}jsFIOqwS{Jv?Zpwvoq-pu!0inL3 zBwe{!ER0}o@2$26Q;phT-iw}jRSo$HizQu#KAQss@1`}e+q$iM)Ax&Ss8M3?xwE@_ z*;d}>7Xgp0#N>YCj-b>!RN6po!m#!`+?y7 za0ya1!vk%$H8k0*rwwJ=VopPpSZ}{p;N6)}QQ8Hxf*-5%ELojPY;5*VYbIfV zf726Ye5&-gs=v-h#rzN2QINGHAzAMsYnoH%%D8B;>s3d50zFfRT3WQL>hz|SS75m9 zM)v4l-XBlHX9PxHd>lM}E%#wIg;tdHY_%lwe*1NF(lyQMLS=pYx613Z7*85^EL3 zB=Wm$c^!2^ea_~GR`9$%vv;3Sr(9zx94F#mA9AEch^SEe`=2hlz_ax)w!FpH`I-D+ z=#JuT+9h{Sz&aO?(t+%3^@OgNON;I(pKn_Y2-j*u@_hC1sPrwTAQVVg@8A?i(=S-g zmqPW~#qOW@_=Rfl=d%URTb|%bmDuCOCA~g5kGPjZmk#DM=w_PH7ejKb%lA|%^rKwQFl;~^6oINC4*nrwXSCr3O>_QA9KWVZ zOtNbEadfyCLJgT3v19>J6CSz(d=_ojSHX;r*%}`tYb}`|dfQ>ysN|gF4s=;5ik|Y> zrBA~1SDi4LB{%n%;dkd4*dw_Jc}47qbTsS!bm8Wm4s3YCSh{Du-fY8poQGS{71MiI zDfZ@B#56Q6AP|<#qx2vu>r`e)9JPl~WZ{4FrmBu!+QQ0it)AC`tOZY9a`P-F>YKkm zPh>AM3)kQ<^sTOGHnaf%{QOQ3B29-T20#+9;gROuhiP%6--6ofrKXy9thss02=D9G z?j(1g6kaRx=zd>}v~OVAB%aYAe=m{+5r%QO==lc`I79b7`5gI{4GvFGDz%jSlY!HN zX8q-YXCcemBMFJ--PZhAVeCc=(~4RJ!QbsjqD*ibYlgjwdJMP6%=@TuG4NB*nMeIW3l ze}mET1?cDNxYkz$nx50Hb?CU*y?1s>)Sg=vxy^YE9=84zN>nd1J@PV#7Io9PoNf#N zE9h0~s5oI&UfCq$>>j$p#Dn5X7nV>0gULccI>C1CmbwRhd&E)W7iDB+#x_sf*$3#R z?Ypat@3%PastQAMqn>g)IIdK>zku#WwQ}Wc-`a^U1X@eJt;mR;k5Q4##eoO;4tIw! z8q2nn`-uO+ynG){n8qZ>#@c2b;fP5vr*LUxVg*DFUZ`ez=dL(u(yo9}PA)TZNEfUH@8QhM+X zbPT>{qbp7cCp}>GM6tCmU!m1v3x$c-99aon;U&Ec)9me^2LcKe)Gs?DF9nd8$OSC@ zCSB>d^j&i9u&(RdKP>Io#c*HtgHDJY4rY$c z`?KBleG06$=PDPApTg~1tSEh-cOEW^id!a!uE)ESVC}xcpL>__t3h$99eP*k!=z&=}#KYrLzv_%GIzcPFy;J^- zlCy3lnbTy2odJHZXkNnsreZm=C{N(?sE5EEdWCf!*oiz@PSCSr@GqJBMpQzP!AcuR`Hs_@jy^PMz><& zY!AzR*l>SPRxd7N`WFaoS6~6eoUW5mg)-{hSCC{b+c$>dQn}9UXa+L(} zU$Ry{uKk%Rk(}_Lefvbi*^(3hPgGajEIy4P8rYKpwT%(L611CL?yJmqh>NZ^2T2^1 z`xBFqRFVbc=wnqF`PTTqe^b+$>Wx)nULwOVwfdD;&k8HaK(T7uw8GU7ro3;dX1q02 z-6et;hMt!4OC~xaC;rBoo&wf4Mnco|qA!1}Zy}1{3UDZsXEI3-hlOs|C zP~wEK*H9xdj2G6-ccq$sJ{zSYO@wTGG4GB^5X^73d~zA&+?>(kfyOgtn+ojo<|AfY z`4`Z?TZ^x!nknAAOcn?0jeo3Z#^dIM9z4BAN0sf-?E;iXQ~Ael>VcX z{gRxZ$UA_B=B_*ploWf0*7S}8X}Q<{a;O9x;2nxG2*{n9_F(KkU9{cBtfMOP;w}ON zBCVEcA1{|`87#^CRQPNn;TINhgG&PcUR&)JuIpYF3DYz}O}>4%P_Ke}h1~{M?Xxd? zl>BP#F+N}s?e%vRw&wS;Oix7}QBdPb3JLR41WXBmby@Ip*Xji|_ffd6mPt{_aQ}z! z)BlgFcMi`adbWk%*!IN6#G2T)ZA@(2wryLJWMX5&iEZ1~edqknIrqEY^YovMy=$+k zRjYbeH&D(@y?AN~aI{B97Z-e4r0&K-3H6zis}P}oagSc$y?;m$95Gsu{5Rht0SgW= zkOf>^t3Nk^4Y0tk6m+AgeT4~KuUf%#+z}nNtPy>OE0qaY*D<#aE~TKFx#(b!O3_Wp zw&wp6cn4BKOy{QdY|vG=SA^^@V5!o zkZYtRY5Rw-+7NjjsFBR#uBn2_DfM3y=um_@DdU}g^n807PzpQjbagX5^@wNeab|k( z1`hvrL=9ECgnn;1e21sB!ZJlTV+zs4(lgXjOPr|i35V)#bAf ze32|T()%KW#PVv#)qxM}%wnvllo}|GTDUCT0E%%Bzsol-TewU?xt6?QIu7@jPlMQ2 zLc)8E((imclxsPYnf+{?3OAttRD5^+HQZ5yr%Qv!Yy7+C5v`|IWG8Vs-sV@Q{9laZ zxIXmaS!M3DJkSse``?NLNfjyaX>@a-n%gTMMlOX;n9KMx+Tt z)KIeacZZHYxFA3{z8AoPjR@%^zqPU8;=JLusjgFtgo1;Upl+IjlW@V`l=;UUC1Gci zf%pC8?r3@mZkuC!%-wwJ4Tkt9>a9wx#}tv(WyNhG``K)ZQIg-Bb<^JwOpbDvO5Ilj zMr?SK;M(vsYWCwmd@7cU(+0|@M zt_+V`R4K;jwsOR>##HhmwhwsTOH$OaYmilQi?XB2b{4yYhdppM4pLJ(#6m#m;4QS; zb#*B9Zlr+DdSLJ+3>d&Au!G7YvpN!A{4{ZT(PB#m?N}MhTy*pq|AO*&?(PPQRWkUl z>c>kfPQ#V9KRjd9kwI~0arT$q=fCFI$KjFA@<(9K-$>Ez7#=C_^9~GzS15urDSNyM zw+NqC*f6qAK(yEGM=jYJYXRlKN?y z-`|G49u&A^K<(HZiYIF^u2*wd)m){Z7`(x9d(cCA(audxJ6*;7lIIX(#yiPg1c<-5PML#m<t2$80M4KKMl22i>-B_5rKVK06 zU4*ZHWu65(+VDd^)1l*bOkQSU$YxWa$zwpXBw?<2M%g#0YYC1*->%)Q#xYEAGynu?6cs?QS1~ zWMrKa3l%$k8DgCEAjA#E1<7E+vBd5}yE>Hz&$apv!;>%~dwi|1Rv^bAeR9W`J64)` z8b#k++6p7p?Mji(O{~lK{-M3kAe)xfED@xnT{z+>i*k~W8XV;M?O|P}Et}U2t>{C; zi6kaeY)vVY&yVo3pZBJA$ zO$hzBKFHTXl0rccZVR069jFBSXd;TU*Md2tC1UR2f%-4|fY0+3y5c*U&uhCS2U{xt zfb{NpYZh{2+b(|@K~Yws?HB18NeO?|aZ>#x` z6b|pEm09p_Jz|#FM?W{ku*XA&gZ|Bf*;_^swZnaNp0U(AX5R|+^+5T0<90<^|4Vrg z3Qp78fRpgrF`eLcZwTq3_lk29a8WiDdi}a_Uw|g3j|WGj8@^Na#Ih{)hmA8t*> zGVu9+PnT`Rc))?7``H?g|97qkN!50rCkoP{OPoXR_|5=UVLHxj))ZMYjl_vCi(&Ou zioFxH8IQJ~pgkVr{KZfj|9X(yQM4CQ{c6qsI;SJhIYEfq`&4LDT{XFFBE^ygI(e(g zv1K`MdEo%d)R#nbB`7!9pRdK$*&(A5EjgRmm&GF*KNqc`T9QnLmMw0DfbBxl9K2#) zo!BQgg=ALo=#e$S!3)9Qszu>pqS3=$*Iu0NqP3T^>~W(zJsx5 z1nGGgGE}JKmOQ=D)}R046)AXp0q+g_N%ET=N2oO4$hRn5MNjbWh;g+#Lx=qSH?F1H zXecJ${SjBKzJ4)~M5!4<3?|NP@!oO4Idf$n?~@e{K96R&DsJ-XixlMho1f0fK)~z^ zfy?K?ExoTbOB4Q=lQXVDIZ@!)XXi3hD45Gnkw{uzF>{MKar75VZ-v$LW8O-2(@hmm z_ET{53+_K{;e_v4dk<$l31&HB9z+|2CD{M7t!{XN!3rfPN)Mq~m{wdmF+w(2y|)<) zcrMYoUG`Hr@U^YW7k~N8< z`Fy`>z47wvicH&-%-_VD5);EU()mH{3hWT0Q%2? zxm0UcOZ+|8LI>|hd{CXwB*;-Gaz)d=YF~Hm_j_1Cn0Ny_S@s=0r%H1lOZE-V2g*YE zAOO#g19nT<+_;=kt$N;Y3_h3S%8$2j4141G&nS@ZV8?e)I|mG%(P{ebIE;=AT@Sn3 z?q@@-$S9=H5yakaO-o`$ zKfe#k^BBg*vy<7wp1z+Jf9~;Y+}Bauv38{2BF9%;^cg>ECE-_HUipWuCWM~$EWe-U zt;y+#!MS+v0CA3b!YB=p(t?mM&m~)0m6*G4lJFHO#cy>g(8ve=lW_H!6IxeJ_s^r- ze{k79(c8Z;TiyzYka(&nzAz{?&r)N~<;dWb<;AJlNGbVPo4Tm#>-|{Gjp@gxyDo`f z*m<)1;M-jGEIQ0CmQ0VBS}qJNEt&&>xc3K9@=S?Ntz2eAOr_^}^c&M~K>)TZy*p`C zZ^GQZkO9{Wxvy9wdJMxSa|d92eu&SPwAVSB+e@`8)8gK}?&#sTRSAIvAMU*p6NJbQ zdy~}!CFsnt<8A4koxa%>NmX6>fG9}=vO@gMDxy_d1dZfH?hE4gG-<*Z=qUrJciRbLPcA>?1B9`Iue+;#&L67u{=wV5p}(b*qAlL}(fPhWqRoog($ zjWYw73UqVahAFS+{K$l!BcTBYH-}Nr_)QZFTyo`Gm|IPcX05(`S+#N80 z1puyN?2hFs_1{H(GVlgg;6L94i>0W&zu>k;%+1l`K8{A>lM_c?qthuv2kXcf^KwV# z{jx#j-Mz1o_UAG+J>-5&4L9zU_4Kc>O_Zb7d7 zx?sGm;h%rx@qQltC#41sFj^dp{Xt!n2*7g({0d)5n!okqelGd=E6c41FHMD>k!|SR z^FvfmY@k*zL(luTL~86(gb8`s{`ENjyD6ZTzvpo}gR}zdrOjgd#le6Z>7B4H=e!9M zt(UN;?nwD{fl}^K^S|K(T(Ks@1W5$<1B~rWUITmN=Ls{p;TdILF@3`8muX;IGgG#_ z+|&-?*D>LqcGOn?UC{L2S>6j*d)EeV@|}qz>Uy8B-EGgZ-rm=H?k7$ReGK*W&2sxe z2-~e+m{b+LcDzvDH=W(WYYxn50N;nKSC;Nq^y@7i-_EV+|8`shMglqw6D2UdS4Cba z3m@G$0<5 zMl&TacY^1ayd^XvJ3Fwg5BhpncwBc==H937GI6pHq24k+2$7Y?_1dEGwUD0om7c+p zOX=sVgPuODo+r_DsdcW~C;Fq*n;APFbU(*0c}8sP!GAGPWN@@0Ib%l#+W&;(dYZ3N z9Py*)>ck`2w*(_PKr zMGB=6NiyEs4|<)H2Pi?^emI5sEnJX9%ehyqIbOGe)%^wM?sMk?Ez;ZL{i?rPh1DHd zeq=zw8b0rYbDu@8P<@aOCF+@o?; zR@h>xUOPXe-`z0Kc-JpZz5H+3M2#n4{}TNFs9JcSx!^{buRq^^0&v+C4Fj zPeDZ*Zn{ob?e`$-8$pYe+RytTw*OE*m^#BhB~g)IcU*nYe{OvEh2`ubQVb-yJKTzT zzf7dv=xjO3UisMUv3a|lbUZH(*zKt8Vs>_7^?WSb?fqc*pnwDgD^r6CWyuFzT7&gG zL0(_BUqWZbo=LXrb3nm|;%-$bZr7-8Z|OtXT7zi9U_*oS+`wP2G?i(>{qLY>PO{5c zB-L0YA|s6?LnhKK2L&T$p%#2j~c@AQ%7w`vKp51niKHZ@@@V z4Co+_ede)L*T@ivzIA}^p$&hz!Hi!ywA)#A zQ-+4T2r)|KG!UX;@Rn5h6+9%~44#81?hUyGL8z2Yd{?4O4U`6yas`WMW zJM>?z8pwJh1g*cXc;m*ukeBxT!o&X}eszyU!U`q~VZVvR9n!W{H)Goeoy`{N82|SrP9J z-X-6!9f+Ytf+ae)BLIk?CR)K#7^A>Ft*K$5#-qjK_T<#I2r!Mocq<`7unI)P5?&O&C;QRk8Rl@-ZY9m-pJ2Uod1u%88G5OE>KaGC^Tz5 z{SCRXeLsc6+PPa*pTS$nVC_lm@A;_09mPr+OG7m%<`1o!8@Tp#cNYQCi8{Od-{<}Z zXJtW!<_anZ+Fm$38k>EuuB)!yl!qgAK0BzPUf)a_AMFr)ZZp(ojet%Y=2Hgd zeO$x8Z&GMyGyT7}!h{FV0nV zrFHNC?S7*iM~r$KaHN5V4HtFZUTeQcL{J*<(e(@Ad#6`dY}5>$CI!yYk|vXD3pHHOkedUTCGF_ntVCylQrzf|I)#K-N7C?trU{6^;e8a3pC*Q=Ak)=JE;)@r|G-o z-SZqF7n0z1en(<>LwjvtWyPrU+GuJ^z9qRyWL9d^ffY_(uh$*-`W#1(u0>r)v?+ zvC!Kd4DUiJc4@iv?jhF+Yo?{YV-pia73JzbZ_!N;K4-5Yh>uSKw$Q?QJ&;PIrKlqv zVKZhS(VN3%9Pq!X;;U}Sr8tQA%by2|L-zyE-NgqVff2V%n|M5dUlU(2F^R;DpT~op zCAgif1wOHYSrJ-j9~9cX0|mKb`)RNbhB9?;2bka-)v6z8zm(I9w8#``#-Fz`&Nx!`^JR;|aKroEqR?D*>3P-)iif z{MkOw1gc#3#SCE!5GUJoM|ESW9Wur&8H0tbk>y1rvGW;3C8oaoB zxHodpOcnOor^3R@Vf*^zl##;~8~TCD!gi>`Dsn$Dk*hJ0Cx-Bh6;ZH?Zl5*b4+o94 zFr~FF>Rkc*$x-a+)F%XfE0|T2cD(C-!cElS{2(OPn@GNW#-nTWMh)3n_0Yi-ilf*ERUM-=o{pbyC(D!2izd^=5~X z0zqGWD2kk#bKIGMDI06;PrL_qHgBc2zm@djb-j5e>Xl2k*gC(?LCo`8~*SO+bxs!U!P z5{Q5RHAp^^XXzV%Sh(G&D+a`ji>V<)kN--|RY9={?L{Ka=taQtW&`NaP}^pnsQj}~ z%;xEdQqi~6N4*iHUCLpMZ$NWOwdtOIn5u8X1LqfDu&~{%l@_Vi-#_(zd15_K%(Qf* zMcE=L_!`;^$^n>dTu08NuA0iNvRUV`{e0sH^lX_He_SwClruDZQnfa_YJ939t#2LQ zIZnck;6+e`Zl0&lxY#2@w0pBQy)-g>5~rfhsAT`MYU;H;(Gad4zHNO~hJqxwU=w7z zBF*0&(|myrz+2C_xBEH`&G3F(4N=tLFNwUEbz~nihv08p%4)3 zV}Wi`32oN4%%3S17w;=3J4zhZkfMOB-54>Qj-E+SYV#Wcf&EMt((IfVcXNV2&;cAa?P(n|^BWv>) zvBi(1z@0JVp*r|`z#jw`q|dySF!AWXF5cinMb$F9#MJT8I;>GVOCPj}T^PXU9wM-I z`dFTjHXEOUn)u=}T4|CYu?Gb9H?v)SV?FJfal)QE08(lT$hN`wx=KtYu+-msgf=<2 zHXk08zVV9tQ6L7jj{9xM{R$)4=OC@cX%Uu>hPhc^Oiya3?~q&K@CS&(elh;~+AAVG z(x=d57dm)k>PXjQ4?8{*-VWopp6JbMsyS0!(@F}`1nrUAO?H^1vpaP#4me3OzQIO#{ctmy#}P0BZis3zMI zSpE^7{uNyUR=X|@LVNiR4I~$6bbker4UAA$BG7BdACGhNXcN!~Q zV8{><9!O8Edi^N{`he*d>nEkkoy)@?2;zyb0>Xn^K@quC;m=+~w*(_VKqe|y5;K(4 zr=|}{?doV`-~7*B0D5S}0&~%IowsRs>*w#+Fb(Y&Nv^j^Ver}DJ)*v2Kws7a5eBx)@C68?FofG&_g$F%pm>qx(R0C`vJHOhp%k)RyHbWd~+lq8>}zZlp8y|^wi8w6|_#pv}p9^ql!KNOT;^U*b= zyTE#uV?M7j=6*JB;v%S~_TTi}aRU!?6xky8y+z1GO4Xyq3(d*U;`o$B2jpL?w#x56A=77I1vT zq4}-T=7%X>(vGN2+6;n4&pK+bgM=z03I=v^&W*XP=^rSF%YkvO75c zZh_%7UYv?Anm?qfG7&ZBpfC$jsb=-oxHaL?7^3Cd#FaPU$u2Xrq9Alw)Bs_h`!q&) z;Ius%XW75CpH4#;vU7*W+le2u3k)P-pd^Ad4DJMD`7?~PKP9< z;vPbji~YrbjD#TkixYfJzg1jz*olPXlOXtmcNFu9sLDg3@~Ar&s*LzLAk($2Evv7+ zVdBDIicIQeZVkh1c2wX;dyyxHmfq@6{}hryfj=^aF>e~v%-ips;`~%QYOLHpa@u0h zKq6)Y`q#=XA|Nm@TSR}K$rw|IQdeg{>b4A^VjsNQe?9USi*qmClM$!)j^JL5BA)s( zpQ;RCPcU`=KQ0y7KCioO71vUg4)ftTR zMqNs3&h@o-Oje2Q@W_T|Q<(=|(_b5pOF@64_a`^80YnMbo&IYOAiGK1m*xKG{=b9H5O^w9XQoj$5Uiy z<#*c({@?um^rNcK1R!Jh%46@{d>EH)vqJnoj2?_irg<1{sKsV*-#7Xj1Ak-zzFcChuJ&q#%jD z@dP5Ni}4v+yIpj8@~ko&FuG#$?kMu6QL+LvP;3t}V6wul$+9M1gbrNzhqHVjbqBkf z4`MTORuROtM<0Rf;Ju`G%fy(+&(pTBw8muT8??lYn@n00il#)DY@_>!Hsp>YPmpg< zRgM(V-+A??6L?SkEsD%J*Oic(TBN6jC_m^XG5^Ax_!jR3JR6LJPN9mp1OoeqT_El zJTd~wl_`u5zMP*kDnXwe?MQrmS{6hJx^@PT78ONAm$60+syAKR;ma72xveG=t*Ay} z$l%~wT-#FG3@=4k(6d6f&@6YfaW4Exd8UwjzySi#Lt3Xc=m%s}CCihO--6T-cneUB z;|J_%d=g-K{~DM6h83k|UK=T4ZS+BJ4%V@l!;S+CY#goWs)(V1%Zd0oD{aldq2r!B zjPuZ=S2VD#LuyPdZFy zpk!=tG5zmz50ZicGicvTJ9Ihl0?<&dMP!9FX2{IZsYW{v;f0o$Hh^`5N1zMbi&IR( zq;@9PH;)H)nw`Hw+>cPK>FNygJ@cYG59YT)G#8`io5PZ^nOR%FJ40k_>^Zjw1`Sgp zd{fO=)LKvnPF{At)#qO1?4V`rRr&}G?l>tsSYhCBhSrC?$!A@J6iA9$ENhl-_TjRf zzX4r6^AA*29$5%gst~OB4jEaWvZ9HCYS8Y57$fkNt4LDMr$vwgO=gQ!aIehRr*;<54Rf2@b?|9~lxUaK98AJs) zgTx+G!hn{tEattxmPxzxXMwC?e3L$%NfS#k{3zi@_8|0!rveP6+t59w%#T(NIGI*q1B% zh1X!$dwmnkSQ1+i&!iKF*L1yAg3?dl1bx zXZyye6IL-2N%Al$hFvR&v>YP#kW77`r^L-?rZfc8Xa8f~NQG%Vrc0JNrah|>7$avc z6pU%YEE-u1T;tvfs&!q_Q@Rr^<|b8Kqm5eRDSO+cT7~I+$WOcV<2qGCx_Prd#?K}% z7&BN*4@fON0*aosQjc@lTT|0y|`%nI52J`UFQ3B+f&IBOAWl$qG?GTYau@{R7zz$ z=&U@>SZg`!Wn@%)bj)AmT2cxg+$A_sXd=+4d}vhqamXCfW~iEZvPS8qUC0H;dgR9CAS*TM(-m=80o<=OWfH9p{p zRTgP3mxdR!FO6C`irRw)9pfV=P)Q5TK9#06w1i3ca;1vKOYDVk)l2wv%n^%U1&r(B zMOf?uKIt=oG6l6^UHaTmz>jc2Ez)y?Evma>J`|qeTm~umqn3`#1ynQ$Gp?Fy7A!t` z+-FN_EldY{kgp5ooZwcfJ`4hJm){PfRC$)DauRohHwXD}<^4RbGy zZPH}oF7vhG4m5vpJx-ydwc(r*aX*I{%KnsrKAE7sKhQ1WQb|izGOw&e+LhVM^WTH! z$h{)UQOcs{eh8^KQvzGKZ;^xs*@5PWg&J|Xpx?YPw6#~@yfi5<%}^!#>$1v(%?b8x z_@N`b$hy7H0sk*wg$s_DSs@J#t1O#e*(-M{*!10G;^J>O7KSKtldT~x-q=a|b*nw4 zaf7lAQ%*6ed`p`0%8XZXJYZFZBle8eYovD~%_K(V6gfw2m?TxV38vS9$34K#=|m3N z@&@fUe5ERCFX6+6`Gqodx#6DUHpEl3AazO0D4Ep&Pbm0$3SHdyi_MUpOfHEbR7|_g zFr`EQU?a!}I~~u)tsyqV5{jv2m2Hg1jpZZk{B#6EP_x$$< zUv%xK9v1GO`NFzLdc!2mI%mou9fC6_>CqDAcxhA>(STCRZTBux%q{{EuXZM9SG-R5 zeRb`%^39&$*~p3cx~K;Yq&AKIbtt!qN1W4Gqx1e1SFE$qWS7#u+~d~vuJ(wOw>ya| zGDMfF`?)y5>+li1(xkFie7LNQJvCjmq6!+dOFE*qX1F$$z*0*9@pjB7GiqGH*97!? zfk8)X|FHA(t1*y---!_=R*WD4d(xfmgYuqY)?U}~4dkry~MI2!2P&873*mslL&TP}CB=zD zXP?S%0RKG?cW;8=Jzeaa4Cm$x%aYYchcykdv@wH|DZKK^wc?Mxf$%tZyl1asA(U~q zqj+i4Nxqc8z`c9db0nyLhS|AXhMC_rS83%%Kp))2n5SJL@X1)~MtLiaonK*=3fNdc z;OX=rth^Bh^*5m14Zp>YtDf?2mISpmOKx+?Ao-(_qdT}bu+ZM*QdupKf{}a+QS6#@ zjB`11{6ZbB7guyT6IrdbN@eG-yWi=_nncd-%J}tZqwPftG$N~Nh)!a>yjeq6V=PNt zj<~vC+}^1JvgSj6Gt(6HouR3flQcUNgdG=Nwqp0dsHL;m_hD7zZ1p%xO}-pa_6%FC zC^2&_mx~q+8ecO1yXeUNlDQ(41{*x^OFW{30kKn5q(I(?(LixqbxuoB32?dnHi`TcIID zpVGIvN-?F^5iKE~HgM{|k+FhkVYbW{Nw%|dp?O|wyI2!YNkwIXf!_Gq@o?Te9zJLs zTQ#C+lSdI2OXY+kJ5%4$5>UeJq<}G$?Dp_P@OvU+QkT}-9x9S{Y2CtR1c-I9DS4yq z32e)tyfO z@=d7#8lYeT@wDkpc$DXZS5Rxdape>htz-#|=C&42FR?{m9C&h-BcF}8GoO12kI7d= zjRzf0%jx>;BZQs3MQ+y6376QQ3COb@l4L*J8d}?GxIIlFp0>JUo#gcdf3>bLJ#ZvW zw5N2AuN~}8dM#_Wio@Rq`b+RYN>R^tz}$6JNiY+1I)SC}KeF=p<`tbfxM%R<>l&}> z{}fHMzpB9NO_mAh&+ ze{BsVC+Bpyyp9`(%Ty+D=X=Xk#^Tc!B^%lK;8r!=Q5^#R5~XOeW=EJx)O#jL7W&)#anmFV3E2%U;8^2*23@rdDESR%cut~NgS>}+7y z9N3NV`u*Ne_I=zEPpvhSd7P6Mh1}A?u%nt%*#zhN6ISNYtGz~scItx1NFk4VbB?`2 zhIYKB+1W6Cu4r{n*@2g6+=$CVO_}t0>q|J=*m|Lis>(!<-w57ca1!EZU5+Sww}}aD zAmUJQ*WBH`FeAx?mD#GN8TQtj%Z*QG8mnJFq-J=Mmtah71=)F6A_D$2fNf|`9NcVg zWc^h^=p-(^n=ssb=V_>Eq35^QAG_%#KVH7rJ11@2ME=?8o?^GAOIm<#r-*) zHE`*1_QdM#P5CVre96M4poXX;WWw_%-8AXa24^$Gj4q%Qa=+fR(fK@9PBGoTSTw~r zaMg@et3Q1(Us)To(i-2=n3iyju=cV*aJt$OVp0bXgKvO!{l0x?xrX$9Ji}KxG)~ft zt_+oC%vL*uWEM?r@HU%5_xj+I;q{gD^U$s(B?=$xuz!q*@>Eg`YF-f)pWjnp9+y1R zy5lO#Q9krB$%?9CH@h4>u(*du0*3xI7odCi8G)0|B^@>&nA*vej|7+=atcQ+T;;l^ zU16IfEB%YzbX zRy0lCwa2Ir4pKl|TvS&VrH_M&ea1R1(UYQH&AOQCj5y%!3V&epxedQZ-plpdzH!#u z%9@sUhM705I8mmwMaZBJrLG#hET26YT3Jlu(ZpXeF1l zJWV`(XSl}Z<%fuy)_&SFAd4=ja8Op6I3!Nn&pgXkY7Oc%o)m!iz4Vw6h01=IHfe0v z8y7{`UCMnz_dzsrhn+i6)k8+@;SPd`@0B;K%mT&_7tXjJ$WK zoQzIbtDvF^>krR5TxjR9WFt$HZZo)qu7Zf679IGyr zM-L{c^n{?rrsdh_yq**Y)y%MnFr@Rp4Xu8N%IJ1DTORPjRJX`my-chI(Voa@%$)TN zrr->E?v=~wImd75Ia-apuP#N_4ERwaoaj7}Aw zDp0lxg%d2YJ9t2T))N@1b=?<&Rj$N0($CChIvojdAnv%sXBGzTae^D~_*_wYg(zNj zo|5r8b2W33UaA#0{3`S+N0O2Zt)xmp{-n4r1jO1?A-S=QC*rjlx^~kq8S|n`4xfHN z^rmOv^74mxQ!HH?<>38fuwJ=x-`X#n8vK?)<~%yZ0yUHwJ)7KI!x~1}l*RaP0tfl% z(&@x=gf0BUk$)(?Xn)?W7!d{};bo1#MHJA)*j(J*SG;m1Vy3mOm#Guep9c9mj!Ddg z)7??p)cV%$HQYog3Ey?f1>jzs7x9E0dEyLyy=VmQc|_~y_MNXSfdC>VZKx8@XE)^O ze)ob&a0E)o|DdRy=+*wAu6m{rLt+G=F}@s~A?rg|3KKPIJ}I zHqBF2>Zde}A%aO%>twT$kioE5CLUgxSpL;9{-s&s_H%-B;U$5(2HV`z@q))bE)LKD zAL>vzi}w3@(d$D0h;bJGn^{XyhRn)U-w}eIo|A{zp`XYd8WAqQMFtK~kvWwic0%Ul zY>s<9LuDm!eWN@T4>a)DQTPcuJr)|v4NI+Pi4ZXm>+y<#J4UYF3vq0B^6jT>d|$;) zrO4@J$&6f!ZQt1wv9UM(A>5l@oy4Q5%|V3ylTk#uU3PgNMl$UQ4z#$IBP@imp*W4q!_IwA=lSpQYKfby^@55q8ZcL^q}&I&!#JJe%Xk zWsM!@R0jCmh_-&3_-oqttKgk`LaFcIg*)O)2_|!<9ny}@(8SyBwdCTcfPE#LJC>1~ z%N(25YO4kFDsHOZL2CHkB|3f1h^RubJmY_D&BIPm0Io|vCfSdW!YrN0UGP$}X>I*R z#uBZo09T7{2PiX{2UyN1FEXZ@F?27tq(Y{ezdP0r1SM=QNZKkWAs!*X=tSSS2!!1- zrHgpSgN-oCa!JPHrIqH+;8Gu}#CNaw?Onh!OLW^YCL8gx_q1^1ko#9&=am}f?>&!{ z8+@{>rS$*$(Z-SiN`;{ToqYo1Pa(86Khh>xyISb5Pn4@|?lhbzGXA8?M3gAox>4Mc zj-A?G&q%tkbVj2Ovu7U!yDhE+AXeCsW|USg>s65PL?Jx|*?S*gLZ!Be{d`vx&dN+6 zLjbUjODgBdQQg6emX}_cE9sSvMuB$r`FA*LV(iEY(n(&?*lD)5NLOg|58yrtP(v_W zr~4k#xC@qdsPx%*Rwb;gmXI??tRCrX6ic6Nhhl;IACIrA0>zpIP_z{r!RYlM6)u6r z9`!k717(1Mri&g~ldhJnqp=?~22Bu#zJ#B;Qj8FNYJJ=9KqI~Bx1EPKl(Q&Oyem)! z*p&Ts#EOxCwUP>9tHEtjgEs{OpUVR3(=2Qd%4=8cB@0tqimJQV5|t)$TUX@`lCBM8 z9ujoPP@3<{x@$sTgW(n2XI&~qz$nNj3Z#TUac5PZab~O9#j%c*Rlb4w29~kTyyzy5 z5LVfs%JLTc@UtyxYdOj`6-Qa0Cz~|2tP#_TTO!jbEj&RztIs~4%LmBsRa7RDfh6BC zMvOXE$;Uj4fBIQ;T|cL`t#IjT9hr3D>QGd<#Uzcnsc352IxsGH|K9_q?^QxoSK^Cb=AV0@!I%O=ER{4Dg^qhX7x0$2z^E< z?Rd+I22fTbyrK}EieD|;+c*~toVL_Ot2sxUx>ZZBl~`xIJihuUkl{ovU6FJ(nT_M8 zi^6tP;Ue<@#dQahuf;0g++}Y&TS`VtEcwkN(DXpMBC?{jfp-y|;pW<3-LmaMOJ2oC zv#rV+IT{#Dfzx>2##9jD|IgGoQeDCingqyAvPQyxD5d^z>-81y!M0> zn--9M5#Qg{61Sut5n1*vgyj46e3V?{x-@lj$p)1jou8H|pW<2=>bUfx=Na8NYAjP~+7zWMf4ptk2rai=Kux0}x`nTtKn4_- z`N<61=gr@1@C+HUWltIHkrm^fc1rR_jAz2pI8bL zhYdg{nH<6hCqUu|2vVV1LFI<(7X)VTOH9)1W8B}Bc5T;2fRPy4h$|fSr210FT!=4) z$qiH3g-;!;$Sno`FUM2Rs>^U|x+R4F2FiJIOnzmS{zC7pr@OP+Ea~-|J9_!V@ozt@ zdbMTkt^WRpHL*flpYgrTh8GpnYOzu!cDtHzkC_RwE?Cz!_kKqOR|MY)?>?^~Gra7| z0;&f9u(}emuma@JObg|cI4DcD_zG!^6_SbzUY5pqtdObkgaxAGz8L3+Clb`F;ju2L zWj!sh=n{rX5UtrEB2+w^mJSv)QgLRX1?6ReFX=FU^PoXx0 za;i`q=&@s@$#HUXDr<46c!L>(D045+3JR1QNtNb@YrIBNWW4;+F;A7TJ_ll&yxA(< zMPt?@2m4y8W+G%ic@ zb$t4ty#U!N$(K%bXr>3{7}zriUB<$|vRl~55nJ6I1X%dPQ=wHp*1s|lQ{l|L=A$XR zOiXJR0aS{r@*m@$cE5n}$Cp{PVcPR(PV-(i+Q7sUHu%W;36=l_i~p4ssGWlbhcN*L zZZ2RSXhqkm#K&?%sO$ z^3g_<>CY47a~i)Lpp3DmGCW9tN$;E{?Uo0i(qh|#z|sQ^C)NrmKE8kd>fyRdQ66(k z_x;L$B50>|3AMTS{6Y1U!pJH)2EoR$df&C^NWu-dJAF6SCA&?17)7IVfyX$eWdIc5CV9=UIl_g6wtstp%n z4?EXG1=b~3y2u*6B+qH<40jvu!XF+MJMrbqCYtLG)JzwzN>XzeEgw9d&9Y0aeQal( zser$>{L9T}R3-hwrFCRWxvytTGUWbZwh984im))IYSD;2FL7z~YlVJZs^KKe*tGiWIYd*J&M z!1!A?8ZCV^M^bECd?2Ugh|;7;o11|RdAchCo>oW+o3`LZDCU)s^HaGNgfFDT(1qp% zX=tvk9Ry(ss#6QCh8wf=RcEvJdS^dL0V=XKFRfNCzfpuHwnOJ??R+#ZI+~TVa*S6d zYuFzvB(KgXGHs6z9V@k5JxZIET`ERl54SojC}_!o4NQKb@){4|D~Nl&oE@%E>mR+g zpSHuf;bTnGc6EEFZmfQ0Uty`8C4jWu4d`(|5^t&68vw)R zh3K|p7pG~_v|Kf8Q9z?`#yEVv}kb)#%-nqhCnffben_CY{>ySN^ley6Qnh}%tBsa#=$5aEUW)BS2ZN1R7hx(@J6*a6Yz4<_}j>L^~F}R+r z!ft2E{Xop#a=O}wFH)?Kd~#j}yi_`ocQob6h&33~1NA6u&AVOecxnot?FwxsRv$;f_$y%TcX4kY0q4feO&I*}VXz0AOI=ip6ki~s3@H{)IRT_qby zmcb;$qmp)5O8DpAh)UuxUt`Uc|BnO#W&HlOmy+!U{k0Uft8?$iC(vxZshFjhY)p;E z`o$3DXkjF$!Dq;hGd{mj#Gc+C4<=<|eN2!8*25wu&Dj%qMe#q9ZphhVb9?25U1&w9 zfo9JqEvmzGvcK9s_pg~P3Pn~|zewZ11!!jp4aJD2v*i0R-&wtRwpxE|@s8tX0ua;y z9qXA6oZS#VBGkf4WCitTg?yYto0e*@y4r@S`B|N*;|_tW``6-Jm)#2f*l_p;RWt3f zo6=6hfxl$AIVnIctOa7)PgvwdPR#gXKC?vFx4z|8|6t)UEyVJZ^Lg!$qii8Q#&v6U zqF{VGhv4J3jilt^>{lu}f?MIA*a#~QNCQ*gJ&V$A{6BOOQR6WrK;B=;Lch>N81OHv zbQvXe8{`8>H3{ zjK$B|L~buO-xZ-QEU=U~#VY3ORJzy`QgnbD_MD;XvMv^?QjCPkz=X^I(Fpg*i_v*7 zZzv7K!){WDGKpL;PbEXh#yU3W9YI(MByn*v!Yf^-v1C6#x0~#k8V5aHmLK~&$rqD; z5ct{?q=A%oi144@RKB@)QPQiWDtntc;!tz^{oCjZQ;L{@1INM*kfTc@W_ONzVJ*9A zmE*pMNk*ead{sx}+uj*%UG^xi-$+d?!%>?WKFz!xFd}XeG+g zDrr*tb9jgnaKj~11$Ofc(Hj%ef4*(DbCIf?nalQY(xN4g`c3vcD{fd!odC4l5*1QH zw7(yW?6IHvhs28s>0B|gCe5-pItj+)8|J4?sxmNp_SLa7kXixwD|*fRV56^+CT7#? z_v+^|BNu34&%1M0uDS(OX-EX+UZMH(t_1ZA4$)Xv)7h27pCZZ1v@cFC*K9ne*&(B{ zalOABD=zYgTAq%fj$V~Fya$%vGgQUCFH*ANd#U_t(uBI}#^X~duvSCG&=Jx3r$c%7 zHfo|uN%rEM&Be#e;s;%Z5*<^t_@hFO{l@u`Jow_`;VH#O4IoK!_F0;k?u-X!cl;t5 zmSupqAMsf9?|$K5g>oEG;|o(_$}1#wv2MOd@<2TMX;^gFTnt@Vy%2=y;krvcQ>+=N zj=XEDWYp6*8qz$P?K#y&`?J?1N(U zdC2C_)2fySB^*7k=15?u-w5kQc5t%+N>{~lO(>4*|22|vxuRBXqPJ?jjbpkL?M*|o z;SYtMzw8ko#yzG@h^&sLS9gnmn&{y%+K%~AQVW*1&ncsrIXtYL0g|e==;4wuZABK@ z8HCn$_MLjq&MaBNIAyaAWaV+KeWx&Ydp~s;fpwnx1k+xo{UG&de?6vnpG%@^L2%l- z2x*O4Eb^L{o~blPPR>WB)HL!-G8uQfKSPc1{6mLb9jGd`?PkF+z2sYtL@$tTZ!qgX z6IM~5nC=a1@n_qV{wd_nE*$;7P~5**gH`p?AIAy=`U0`5AJU5;;o}UHw!NF^^VH># zW%kL+dJS`yp#TG{)@!{(+V<$J=>bN9T)y4@BrneXksm9;x7VRc;btKdmyy<~7Ctoo zWvjj^M?$+C)0Vtw30jWk0te=$lu_rHLA@!vz37{Q)zD(SIRP7BZWO69;{+EN^P}N` zAwkU72B{ti^qzX*cEv0@ZlC-a6xA@!bOxV(aB!#?^R8L#K*k;^#`09C#jv)Q!MQ~;MCig~+xg$1q z8xfEuA+qCGvy%EDw$|f>gJiqAl6AFz+Y>Y3T5E5d9A=&Q(92H4TdUkhl*PaZ%zsjh zwon3-c;mA_6lkKs%N#w-K#IL1%DL6BY(uR#b;l3Y%ZEAtn*AIOjwE>cEq&7on2@w6 zLllHF?taoN{z?zHd*Iq>9?P zf@RZC0@zJ*BW5>$dip-{4KJ`^mfgXe!TcdG0G{Tx$3D>PKv8d`?c!=NL4Gw6fP>Qh zCe7m#Ju&DaasFM+PVDL@Xrp9(tsdS-Ht$X3jTnDjM$}^EKV5jR6utxg46)_M<)w5q zshGu}^v9M&ExK>*SX`t#lFL2v2>D@&pnluCcA#GrY72KQw;pEHhRp!!6=WCVmikK2!Ecy;p(O1PaW z#|pBZrL}*{LYL9_-oay@l4{q6>C%v4QtqX=5U`6fcR9u4j2Ir3c`4R>-313}l-=bf zQJupkMP-TkuY`j>Mo8_U&23Zu6hRNGp4su`P|AgS{Zc=aeSNo%r6ASPomTw*K;C|M3wcS%Gj2$VuwMv^?5q6(cPh! zJkHAIivc0xl7`Z;lp$X+$4i8|m*->r#Wkp_q7r*2k}hVJD^Aig>+X9HzMZAE#I_x{ zgjDDa?NnTgxiE3&!boICFHwfEleh2n2}6R(7TX6Ur}=~-=LR%1GaFk$Vl1YTzQf;W z)EQK=#&%Zc{m`*cRaRj+6Z7Pv?9ot})Bdg)^f~uNbHNGKM10x9PWSeQ&q}g(r`KTv zQHmU#92ynKGbv_5l2SfY@Suhe-s7BSuMU1+eRO2%hAz{^Pc<&tKzY%!^#yPf$EoT& z_uBC|sj;;fQjfiJT~%W;)}_q$;j_**d6HEXXmZrGUNJ?4LoKJsVX>U@Q9^|~!q}@t z+%@?-qIx^;rh12P2bF>=;cZKGthH$lye6~zF zE^4fXex_qPte-q6HF^35gfJNPqLd29<13Irq**}~LYzTIZsPcMbJ!Pnw)zIWJqXW) zd=qJ+#8J6?Z8O1%2(npsl_j|R%Lq16o?eH{`we_yAJ*j8D|@vqJ;{lgxkXMcv;{TB zqFNLACtDFF$7}r0STp92I%ZVK)@yh=OV2+y8)R8zQ79BQ#;Uo{O=%~X5*;^RP#S4l zY75NOrl&QI&M4GBN|q%@O*w6RU1SNlp*aX#?rZes704q{ur5t=eR%6jwX$hXVDE;! z+!G-lOuL3=u~|4cJ>z%syC%(61#e@ZhcGs?X^IeoTUq0>0-JoYSiR4YPeSBWdG>P5VbSkhVC*3tP*AN zB$y&7ISbLL>>f$=yMMFSw93^Dn|BXSj_2VmJDIxWts2=Ub!?FxXH$;Jc7Oxzin_!c z$O@$WSPZ02SsPTqI!n%*yRT?^+V?W3z7+d+;U>1Rv2#YWW$p19>KryAX6}c43Z>hh ziN!B-FP&n|6xh9N{b$kE(|j&+`O3o3kq`CV&{~zU&i;HM2<`Rg7zh{I7{G3>%guOx zao*D$zX%N{Ll{rFC(rhsO1c_!He6uyf7ux5?zx2jagJ8`*-*mD>WwpGJ06sdH9hkb zzXuyv)p@;iJ8&{~q)ZH2A2JhYB$k^wt#J_OuBF@()l-w2(~B~SMWu$_S6^D8zGr+5 zL4$i@H(a>8{VFTB;rckAolzXceN$grbf+Q+O>D4An)fxorI(<=rK^17HZih&{yc9u zfh@=6$8bFM~g`wJ!!)dhu0=hFdovZca4yiYtxQiTRehJEx*2MLEGClPjS^_a z@rg!by)ui;&nQ*c*g8&w$c z%vK_p${?3wuqcrQH=-w*#Os&2U><>~$PKv-sC#aPoNf)zRyL;J2q_F5b4vSdh1qU> z*?vxSJL0~${6#|iwM5`@v%Whgu$EYrRYZ;}`gvw9L4TElP@Oj!J~8t0_D+CXiE^SNX;q}W+UVisg5WY*$$*G&wXEQi_Z71OC>|$4l zdH2yvyNx@NZky#UlxGmkAVrFT+nM)#oDDVd*ijsAF2ryFFhnLlh5zyZbzx^q$!(V0 zrL4*C$c;XajW(;MAocf)Z65g*je9SKM|R!Qa&4kjcm|X4g*uF||ChcE%o(-30FqG2 z43W98)!tvf`U#!l(1F_LPdv@(6R3A`9#Da)Yn{~Agm`ay&wexB$BtiS%7c&pG45LK z(-?qOFZa+HN2#+iC)M1V)?n>zCFMc4V8dJQ4{uLow3v;%q^9tijCuP`J+_9n<+bN$ zVLtR>5g1WmdA!>-iWy3yz39oWQtE*Nxcm0ZGMAEWoI%5NIH ze?vB!$sDQR1y!xs%V#9s2mwg#k=@VaOO%y%ils((!C5mV}fbOk$no`vTv!{L#3=k5G&E1q9FCS=!^R|pA8S-O~lv+ur5 z21tBrc0@1buEM5EA}4(_IWGaiH9cHK0fGhpbvtKgO3c+YGGe)TXr@#UQ^di$!^4!s z9YH!sQF=};80t)6Ut%t~)F@+O9*}=I0XvyF@2TWjT}*g7R2!KZ2Y1mj1~CO1%vekZ zxbvAX%r{s$Jgs*pN9+SKhgDX7i@&&A*u&7F>H!(+B+iaKw!@<4Xp=7N0S!25Z8qEQ z&%WK?P0F+Cx3pr9HiCDP`+<)~};@33u>diSvX<(6<~a%c@;i4%e16Akg#sL-18 z3}SHx2^z|Ez-|H0WrC6M`7~6INtiyq+3KOKn97M;8|nQ306%U-P&sahgt>)61s69N zZS3>?PjaRn=92&hi5n_c$}xT6K!495aDyEmI8x&XV;8*4g5yVE5VzT&u8HBE}G7 zv8p^DGTWvcTq|y;n-58^FFW!r9OSy0c$#W#hdK;szDML+%uBKS!ZLFpkB@;V<`x6% zy4CiiCmKWZ(s?Ea^mdcgvegsyv^F1frh{qM$(vnUs?!tu&sMr`xm;kQK9@8| zRoLBtjA8-Cpyu?DecrCZm!?oO<{e|r5My05W+!Dh8rq}IE@KRpU_zAzB+%c!!KL4V zG_~d-qEO2GYMWAlmeHX~dll`2Ia%JTIj8AbWm0HY$}b{~6*TA&tNkO~()cL)-LVkH zwNT`KLVU+cR{^ox(X)Qes?OBZ9TA@Qa;6s{AtlX-&G;s5^4hTILdB@iyw0kMgL6`* zy`H(RXMQ{%4uT?>yX_%8Gyv`;)PUpnHVLD`x|JTfV4nPQ;NnGWg?KPv6v30LCvDu~h?xUb?94omDG_cDI2WU7YmWNR`kc59(Bys-SCj4T22-^lBA# zOGV8|?~J0umqSgb$V^pdP!2jLC-{RW4{oZtDrLG<|n@4>?|1NJ;tY-={>=A~R`HR*7k zjaLs`@{D?LDA?IKny-#X?9Z+4cB0O+FXhfU#?YUfR^Z}|*3x~cn%iX*#ZIfM#Y|Z0 z4Kg+`Cl>t-cs9V5U#pXsnUos8ts}Z5n49P_4a=O(U--V>U{)H^y$-;3iDznP2V5RU z?Vy8H3`9xi{4=wR`u-{anYZOkKrWWkkxH;~QLuHlneoE=N4YlH@Z7T4b-8+vv9u7` z_tLvjwbXL0wHY?q3;Qri9K8N#zp{s{`4OX9JZ=k~33^C6FS*`9j z@Y<|W-#UYx)qAq?()kT{XFgLEJMLO6)>Hp_nr@rLyqelnSVvItVQx`r{A_d(bbxt8 zH|?unZOU(yC%tPwsv_oY+>=S%{@isEz`L#^D3_YVY>eZ_SzDDZz>E&UUy%D)U008$ zIJ|t~KC&osW!DbkTTc$c=8pR8cF6e#7G_Y=rEWrKJ2E6VJFx$hK{YTDRqsVoA?JGv zH=n2qiiFc3GUgE)80sQ%HZNcYK{fo&&UkVaK7F^ZwMs%u#-SJAXDoD-%XyZ*mFRW8 zi@YcolFT=BB4wJMd8P_q(w9B8x%e$LQSs{~sU?#}M2!0^cxr#ceZB|UWmmG%TqsB; zDn;@_cJ3EeiS~Sfr?)`8CQs5BMwpuS8mJ^qkaFu;metSm#tQFAYao{aARpsfBGWG+ z&K~%Y!IP}V1BNs+f558sMTTz^m!Ym@_;&m!cU4?2)uUsJy?-Xj0BZ6T0-#erjmls( z;zGk~QCdiHJGw)Dsd>1)lZ!wzgv|BEYS()9FiKl6CGtT85c(H4=g2l}53Y+0q3%w& zhx`&*{=V7cdaIkde(mj*GDkntLh~tMh}w%Oa3xa-xqzG1xI=CTUxm^4RhP0@E4l3S zuiUj}sxb+n@o<>CwGIgr8S~H#Im0Vd9@m^RJP%9e1WVOi21DbhvYv6?053j)le(tY znm1awFV-#erU;9o`FH}qXQKQ3$}(f|piyQ_1oH$Qlj=-y0&#cqhRu^2(I5B&F%H#} zkGEz>{iZV~5|OVxFEyJ#w(cg{93@3(u}NloPqZH=87)0uz^-n4+bK)s{w^}&3-c#J zrKv7Pb@tUr=38r1;aICAYcPy$3afNEtI5RRx z_DdYcMj?t7E_bgDrqvKiO3!4)Dze+remo7}3*`&M^euYW3@c=v zB1KlEZ!F`1luF_1aHvX!O-72*5SHF3T1Jey_xCLB+$>1SGQ2$@9;AQ+VGBQ^r&gY(R1|$d+CTqN z!%(3&)F{k3E%ZK7Ki5hm3pDG7ghZw)BmP0{T^=`JoKs6SKs1Y+qAxYGu+1wfeHGWv zoFT=}OUh8%26KMcjCEw9X!&$~!c=MpQBDz@H;2O+OSx)k7xd#J$0H=AVfoTdE;tG_ z7P2%?j4)mh@8c7zADqGiOQvTj+wh3HEWDkCJ3xC=9oGmXwkKxp?KXK`lg}yUDK3e* z*lIjY`!oD&2;|>d`LX z8)`yT!1l(Webz%%-n&QaG%)iGC=bQA9sCuZcd@y_Oh5mE4@FY>n9~R&?AGg#AsMQu z!ji$e=LA_JmtU_+BZVVtNS8H#zBmJ!(jjh@x_A<*@Cm+Se#lbd%C+*5Xm&iXLw?## zZ=!Lij%iJB(aiz-`U-;l{r##vhSiHH3$FW_H7`eY&d3^*R%{I`2tScGF;@7;(a4(U z3kf4D**Os`qY@bQl*Fhkj{kDbZ~?mXF zC8I}PuSiRuITCv{f2`m;c?W7K|D~}yGyckYCL*?2u=QLHIBE_T!2SEYv|74@Pk&fh z(2_C_4d)PuAe8zHtuw@b28dT%Pb(@NEL^p76LLTZkOSD!-(JRleHmQ&=}siq%=+X` zT_r?JJZ(dSs-|#jbwLoiWy0W!Va23;i`&MKDk37AbqMKQwGb=&C9m1vdoN<896+^E zcX=Fjtnhwmn(q=hQdo;TnY^b`zD+0+Lz-yI+?Moxi8Pi6p$Gioe1GE}6IC(SinmNy zGtH|K%&LxT(2UK9bZWLaf>$nblsRJ{H!DLq)EY)a-}D}rTU3`^7NX1(P;P_&Ng=sl zrNCTH#PFSZ1*`oM9-`opoE2$Vv+h!&8qO%fXq_opBh!TEGffTlFnaEYV#AqG8X zXB%D-upT@3xUr5uqF^EJ35I6fc);_Rhl6FH^=a|CX>$`mQ`CRbZ zR~6ObUk8~`y7N|;H0(JshxMZ?ww=0pQ4c@)U=I_}yJA>E_%81P-Q7qb6c{aUb-*T` zs|}c4g`E07Hn*;*s$#H3H;Bo8R}2$Dz#6R9oO6^th*#d9lXV-q7WRIf@03y#$_a?} zjGQCbf#zgeQ;q0{zT;Y-F%1o&?LXLK<77gxjfoYN8J(W#Qr!x)pojJb@l;dj8ZfH@ zMw*)di>iETHZS&D)z!CW=Kvert8j$K4&&%1%}+dHYjLGm1{AeEC-=Tdwi%#M%^qs= zXzf>|WZ5gg#sCtB^7qLDmKvtW>+BpJ0co}Jzcq<(rt1+*Tn?H7mKY2Wp`)2`;g z-yjE~hezc;B^=8ITbj$9A6#CC(y@v7#NSqxucK1de}6VFIdKP$Ps<5|V6Wrygq99+ zWRkogv8JXppDoBG+LYWX16q^b_P#7@^pY6&Hsqp)S5D228x?z4KAUT!$t{5cQvD9? zYqe)%)$-{QBX3XZr~F^vwwZ(sa4V?9=6yrq1YZ`<;3%?UQ>mu!cqL5F?5gKR5y*x_ zt{*Z|*Ov=}b1g+fA&P3}vKS2H9t0hHExlPzZ7R-~-_$<3(@*+!or^7H-f`Y#yjLl9PHWj$Jz=z7Jpi|ju7%5&MN;rmH&v{`A0PZ$JcnA)6CesoT z@01)`&*i$E=A4LAvHSe?q@kcQbHdBM%N3&aLN(v(NnE^99z5mU?CNDu!e~8j2j8>6 zrh?zyAxTsWmny>u-**TBTI4*+-cA1YHK$TGpgr(0WtT-&KhyOuzhjqE)SV^?jd#Py3D+r&3NFbrrN%b z?s1OZ8Eq(Ce2j6z5tbs6j5=ISkY=v%b$*|44b-=|Vx8zmiOeT9DGEm z*Ch527;>}d0A(OsyXsvFN^|U4eX|t9^y(S~iP10;y8&(hxDg zx`X-bs-5%n4{H*OO=@bhx=vF(soM z3zjc#-D-A(RB5Y}Ry#Qc2{JZ62iJTnZ+&8scmCT6{-WU&J|#VireiXlAj7QTXhj#j z@}fpqb8ubI$Nw#$n>xIHuc$osFCf47*;Z6G$Je9?Q}nc>FB5vzm%$BLPR2s}zzC{) zat#iO(lPgxfY})+((M6vm>Fls66MC4+&ZN0nP$1I66^Nm7sjfDH5$a{L2Yt_LU_Fe zx`EG&2~ZjS66-YK6*S1pV&U(jM_(pEvc4L4 z{r5O5vBmB0y5Y)cE9P zg6xHsyZjM1t6CR=@XI^!)+$ac&$3dr7F0q-_IjFYfKP!4WxdRleV6QT$%z)n0pDLvtd}a_QJ^ zD4;3y-h>R@DhJ6m;wr>)0hK`=`z8E+xfT;Mes7@Y+d-ZOMq}q60}UPqdE4ojy0RZ2 zW~SDt0ew()`k>L;Ul!zXLGO^h_qfSaJPjqD5kJA+*ezx+t^tK_szXzrsJ9u?BzQwibeP7O>Yb-u}MF3%#o@ver{$|an4^hkx7Itf%z-HSc)OZ!j9=E@* zk3KJ~9B2I@8F;OHc~JVKocZlR;wdZ&(yktmQK(;R9NrM79t+-l8c@uvck)4rKIe0) z@+IFKxx_2Y^^;|PdG3mhTg&GVxNPS^%YZj+~WEUsw%hO{Ks>9RVes@5CbgwrU zl__62bvoR7^HOYm6@#e4_4`o91F1;o+}dfq#)I@_9E%PMz;lBxI8^U~I_(wt^K8F5 zvnIrKsT$UMSj9uV-I5t6`{A`EH3K$v-G`1oDjGV;b8KIBY?`|@5dHTe%YOPW=hlVN zd+X`LqM$S3LgR)j+uHq24eQK*E^fss{Ay0UsGKVfyZG9IRwJKSZR5Md};JA~cTN~q={MsteOsK+q ze$eM7NA}diFXPA3%RlQ0MU`aVXLK4V=s0wJ044fFYAo$TNkK+3nA+d zvv6=9xAUVX&V|a}*3x{E|Kj0^cK=WP!^}l!B3{qEsz>v{PfdCP`@H2$;l=x_UYc*F zicV)}MPE!3E5VjpNvS^@ZE^A(<1t!J+J4IS{eK_OrG8J=;juf%qVvrHY&-WX_z5r_ zMUt$$W$>`=!r;1EcOp$ASzJZb6TPVtfb;SB8~?vwq*^N;prKDVD64l->7{lL55q!= zavV1sUP5Ttc~^H#J+iGH`WXScK}H&cZtZt*|MQ^#j1=v$OgV^6^!`_zbf^@C_uVF> znkKgmAG)Q%!j>TF4e=MP6Vg>KqX=@%Nfvh?)9$~Ldea#c#=K9@Xskl}{~lA%ji*Q} zOXQ5kGOJ;~<5Ocj&j!)Lhx2%a%P5FSxn%prUH-cp z{x}z%+F|TZ@@HNYEmX7+WV(BQ+a5kwi#y^=uI@g=YCWkb!Hi&4J}zOdW%#G#|9tHw ztKdX6c<$9d5z*vnR_@|yjF-QgxB^HJ6A=MP9x!es-gN}*10+xt0&~t z-hWR2_bM0eMUej1;#ueR;RysQ(*A4uAL?4(sUL_c6k4RV z(U!mTr5@SIl>*?$ZAM<%QT_V*n9q*%P zegf5x3l5}CYMGaL&#unvS?voi{@_ypuRl4v^gH_MaZ0f@&biTq*>V!Xhiho_U9Bly zwVBA(?l?$BQYT}F`ybi8#Q0ZGhQpip*vE z-Z5>BkDphc<419^bGUfSZ@Yf*wbcdo6jjQio*gu}&h~lFF^Ab^;hnsEb7t^GM0ikh z`Oc~3e2+CNUUj^}=!N;iQU7Cj*8rwA|J}~G=wR1F6pmev8T@l;7dFO1l53b~(@kcQ zu6vuU-ovYhy`G0R6bizE?o>D0XuFma3!@_cNC$XTQyVkzD_Gdc<%TpYnP0^2hVE*t zq*Yq=V6>wfXrnxH)M(1iO1bv|)hM2A$0$prv$=xf@wDiJ&j`63d!s;a=a|`G&*@^L zPp6?tU@-n>f&LZ0zQAP%pf_@Oj*?kkNP`^<#r2zqf~bcht}d0IFPNHyZ_=$1sSHpy zm}_Q8p0a({sw7XEmW`$z^<#GPL9PxCeY%cF%a>OyEB$bce|s%c>vx{XD3eRBtUMhdrj zsb9&m3X?gy^+;Dhd!DlEW526u-6Lo#;=NQ(q&xtBMp>&`fEe^;LuEu3nKH7+W5;v zgoEcrU-{YRRhA=>x`C*)$F;~|^}pyyW%I8SitF{G@mtkxkex`|_ru?QBKT&7b%sG= z`N!29NgJOcueZr1XJz|pAt19G%S{ulb1|o zhnc2RNnfvtYYj3-Gk-dy_(Xbm{Pj!l(ek~(?wx&?gD%}i2ap6P#`QZV{$I>5r1>{$ zOmIt;yZmHP1X)+}>{e?GQ6q{*^ExLColP_&tKKbXaL=kQRngPa{<0Wt>>6pT*@)}n zsN#6m_WsuHlcTW2XRj8weZ*D#^urqi?{!U*j7EhiIfxa!oat|;PUtxX6#fd>i8*H) zpUX|OcGKB1>fKv~sD%QRP;ssWn>WIKwoRe&QyKonV_{}=IiD_8zkaC%$tzv^YBJsy z0cKY#)!LDX-P~eb?*Rx8BWB=2{X1@@HACrLZMlA~X?|l-M2k=+V@9T6XgOU3aYy;4x&} z)~)z*v)9F&`YT^bKV&h6H^l5NdFzko&|-MZRc zu#Nm3k|lG2J4;+&tLLWXwafCgXuXJc-d@Y8H=!j~h_q^#|JFa8Me(EdKZZP`+IqXy zS_Ia!GBigC?Tszhy{=Jl^H9YWwLg5pH}`I@`)c5t^>mW=k^4yKin6~RHPSh)U7J|1 zuH$%tc`ceo^nPp@-vOVSO3pGTHq(98_QYW60UNYUc-36{K+#Nu!glFSn34t4F6WlKNSto=V@gFp_841>gV*q??7tWd=saSq z*cwTpf*@1qmI&Ajq(#j+=a#|ypndrCX2i1T_Lu{Zo&M|+fpzaE5x2YXyOG{u@Bg-b z#o1Ghlz+e;&5FBLO*_I$Fw$8@G8IW(IpeHS9)!gy;6hZ&Ej6b&I?W?J5OK6q2TEv4 zguH8Q+gPLLEQzh|oabBMk(N?rJ&{JPSp_3CWxXHj&x+4yNSHgXs|b|;f@;aEP@!f% zcGQ%ax3WFjm(4JxGWP(G%11*_yQIwPKaYLAhXq=LtS1i}jUbb4zB#*4-^*B?GFr{! zGoz+glq?ITCdO$~;(~yGjb|LZ-Rmx){Ff!H$NbB*#VHsRY10qu>z0G4|6*4~$iH~} z7hC{?``=l1Z`!}S+R4al>sfL;qhGqISx7A$vHH)`R&W1bhEB3Y`%jtwKMMX|>HDMT YvB>ioM<|j867Z3c_#|HT@$>ip1J77#rvLx| diff --git a/docs/src/images/Gotthard2_module.svg b/docs/src/images/Gotthard2_module.svg new file mode 100644 index 000000000..f59b24e63 --- /dev/null +++ b/docs/src/images/Gotthard2_module.svg @@ -0,0 +1,3 @@ + + +
    Single Module
    Single Module
    2
    2
    3
    3
    4
    4
    5
    5
    6
    6
    7
    7
    8
    8
    9
    9
    10
    10
    10 Chips
    10 Chips
    1
    1
    128 channels
    128 channels
    Control Port
    Control Po...
    Veto Data Port
    Veto Data P...
    Data Port
    Data Port
    \ No newline at end of file diff --git a/docs/src/images/Jungfrau_module.png b/docs/src/images/Jungfrau_module.png deleted file mode 100644 index 5de6fccbe2485603e3d560b87f44608736e789a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43549 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
    r|qc^+j&XO=Eq*WFEEh2o4sx>4d{-URmms(?$ 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 IX_Juu1!+ADrT_o{ diff --git a/docs/src/images/Jungfrau_module.svg b/docs/src/images/Jungfrau_module.svg new file mode 100644 index 000000000..90f438373 --- /dev/null +++ b/docs/src/images/Jungfrau_module.svg @@ -0,0 +1,3 @@ + + +
    Single Module
    Single Module
    3
    3
    1
    1
    2
    2
    4
    4
    7
    7
    5
    5
    6
    6
    8
    8
    256 pixels
    256 pixels
    256 pixels
    256 pixels
    8 Chips
    8 Chips
    Outer Data Port
    Outer Data...
    Inner Data Port
    Inner Data...
    Control Port
    Control Po...
    \ No newline at end of file diff --git a/docs/src/images/Jungfrau_read_rows.png b/docs/src/images/Jungfrau_read_rows.png deleted file mode 100644 index 701cfa91300fa4232961fed9015454ccef360102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30029 zcmcfp^rJ;<6O@$2tf$*NID7*xLkn2DoBqU69;EefZOd#+J z)%Dr)SD3(;H>PDc@Hgd0MZJ$YPSzhi%syCwY#f~&thik*K3G{fy4pH@JVI%e1}@@x zx=8+mmD$I4PL6c1-Z@x-ble>21VrgxxY^SQ@CgXh@rg_D3rGkE(P^pE$t&u-BF9+| z1%c>5&lTied1mha_VR{Ie!09a`6lXSx9riMe9X`{aAz+awD7W4K!gwHhSO>=(+*ZkbKsijY^7cb)u%S=5_=-DgL)mHc!iW?-stysPSe#N-C3dK;MkJ4t7ax3NI{ zKMK|8|NkT_H_-?ZjOYM^WRoeu;M6>~2w*{*Imk z#7&R$-2!1xrU}TupHWU1>`mZ7-#hi<24;J%}UkFs4ay)S?drM2#wEa(rRlTDd4K4#720bQ&Th*V2 zFP3PM1Rm?aE!$O+YljvB;cV=`^6J|ny)#<-IT7~3avNqs3Zk#7Wf7FKy-Ffg3EYb! zJ>X_(N@zK1xn^kRLHkNLiF`f}Zd?N)LA7?mwf1s_}8D`= z9Dw2_;5NEBQliAx%%4nL=zt+^CGPohZOz3DMveB+e?M8&`&9r%EFjP~vpu5f%Ff^7 z=Od+ryZ0qxFL=I#0dh?L5=R%lFIzWsP|`Gaa+B>E|5xiI@}H~odSiEQU0S<~QO7!9 z0pa@!iDVxyC6K_CQ@m$;Jm={QAFkSd|VvyWQ~jlYSZUf1B*I)Y*mU=7Tw zdzE*2#ac%e@yF2TRS7ZnmW=a1D`%AhtWzmQm^ymyzj40bGbd|G!+Q7kuZ%XqqS5F>=(t&+3%rlkGNxuUMd7Wa`5e_zO(IZnjY#VgVl?xPEuTkxcMp3)v9ko zBhhr>Dj!!DZkW(oy&m{9GHH>Kv3{qB=&mJxb9?V-Q0GKS(@DG9vEs<4hJ9wi9c1&W?Vk3uX|9x{~T>FW@`ueB-05P>gdPv93+`LYJ^-|JH?+fs$H29?gSJ!<^~zU}Rv@M;Peqs{7h19B+? z^3TGTT*dW7*PB1wb`qdJe00lgXd7qK*rYVZPzrzieIyrKWsQ*lcxjwLtJ1Ij%7ghLT} zkpO*1M+uv2LO;0~TGv7j8kpkZL2QX~7vf^0%E@}J1Ykf%)`AvIC?8Mu<<4gAQF;N5 z&nVN2hE%ui{cyTt(jeFe1)(|%U^|fM={6ySh)_wzW228oM+TyUQ3dy7H9)x7I(&S- z=*+b&n1TGOCk4uIde~X_uXC^@(T}hi^kG4Ms!W7ZsUq8+=E>L5H7k5osP z##2MKhujP1Do+MAVK5i_! zPD8j}-3O$4S#3x*(pfYVNz899GjxoMFH&gITw+xWzouK&RFDEGK9`Tu=4Khm;su>H z5k}8lfL#G%08qCmFpTgA1{lK`0!D!>0TgJo$GsDvJ2nEa4+BaQx}@K4Tm9-)$Nv$d z=E5jF9AVOwKyWJAi*aMF*i4GxdX7IAVDwk5>PD@Qn&=(2UO ztuNVlfbZs`uT#?+6^CTf7x7R@f{7ca=y0;8M&YEPooI+t!cXgu{M_AQVUf0%UlVSN zw3Exbw%7hjT_tWHQ3VKkU6G2p3)@Guhk^5)b_OPabiWwahYmO;=O_Or7jkUOsXc6w zSUAJO=r~RMEeJhP{sw27p_(Xo$py(|C+Rph`bmPpJGn%FI)s;py~XK~gBIll)ckjc`0!Xui!sQZ^8*W}ho%&68|} zPW)X%=Hz0LS9qVL?cq!Zl20g=Fh6uRwy>(1<)}Oh>=#o4 zbj6<;=b2ZCjM!WZf6<$aKtOKnX>N|Z!I|?n#SEC*4VYHUXLJH;i9%T_1dw`Jt5s#} z5-xyk|5FCiF?m(u9i%4{>aD&WuZR)%5nGZ@JrVd%{s5h`*dP5dHQyf4$Zt+wS%5k6xb;hjN5 zVXfaf?S<&3-{Wt}#id?`DGsh_SjKA60I>$?|NOo#fnRK`k)17aOl%9kO4T#LWTGwz zqs7p{{H^5V-@Lob5ypu3sEh3?B*ws9Pj2%&+!+_*pBOmu3!xE*s&7pgfBq~oNMhA zjClvDZ;CEgI|@zm5_%+pfVV0L^QGfHQ{_5>94eg$ z5anI@jMQ+u=}P-u+71eq@z)2IU(8amF=r!CV3EOga&TMCVCefSWYW-@rPwC#^yCD( z@PQ?Yg2zLv|Aa>5@b}H-O|Qjr zWNg~RJEX&dF9a#^cB_I69I?!Y5)zUPbC|-!>x?pgarO07bkE1xr&V^#YyQo!tM%Oe z;SI0)c9LnIcb_^`<`p}`GSc~;|3|-kezw>a9j3WR{_}sWo(|B;k*_fWYj3R9gp>=E ztpP8NhI1-GbqA>6_2_d-D!zI_2g$l;x| zUo@0U`8e$ypK$G}z{{(2`llms`{$&cE>at^^2T%svX7aV&-b$B% zoTRcQD@^u3eJdIP3;47ru%OCajq-5OPgaPVTjy2?KjEb(ZH$KkfKP57$qEVVcC>^2 zzehe%=Hd#I0Fdo3hlX$1&*I`a{TDC zJofSiVT7X-6+#4mdNuH+MjKG@GgrNii@@}Acag$K>i+4LP>7nZ1*Cd;BRwb<;hqqy z)1c?tq-Qxt9kcmG?WAZRtvXMnV(Psb9)my5`i0?nY~Y>h^?_WHW3OhC!#4&x0bYaZ zgq@pN!{}A&1p0}izGtN967a96EhH!39n-^hdn7Q;-G5_#sP3&fZ-C7_ZV`M%%`^<^ z3x7Rrj2}B~{nLdb_^h|=2uqGoFs#-LOW#Dfo<<{6{3CMy#j1W1d9Td4=7mudSHD=p zC1&XDLDB>FxyPAly&oY?GOv=EmrG%!7&q|fxc-=_#jq6!P0q*VA)SK?kMrD}HRcMk zO{)U$apw6mmEb%!F`tUpZuZp)DljlJ4GSjnhy)jXVQg5T(yOAJ5Rh|?aep<-hWq!?hg5OI>g|5~uFGh%8HqjEpJhR^zW z>a*Hye#)RlAMg(CL?d{d#Rxq%!AX@cSeLu5{fztl@f@o03lg-tceWN)fl0TqruD=4 zJz%j|`N0nKv$xx!^Q)0uO&WhPN61B)4c)iRjt--o?K!F5Yt=dXs)^PCvfAG7P76Xz zo}ZRF=+!qee+aIDmT^a&Z#y;-uFml2wP1FCv06c+H(i=3|JjQre>FQKfs+$Nz-HrgWb97a93f^+ao1! zW`(tB^1dA$fBJM^>JQ?og-mceDwug;0V+XETUNanUYGVm=4LvGKXhn(Ytk)$HaIlXCch&9F$fq(@W8N|jc^5Y{vDm2m zF#kW-ZUEQ1oWK5cws%IY;!>9A7-wJp7-v(Np%;v9W>w1ak&^D+dRE)bAf!oIUVu7<{*9jxvLeQ z=8HHbH48X4_YDlvneQx_xeNF55mpGIU#(=GBr6`=Iw}6rv{a^EgGm2ag3!|RvpohQ za@|*vogpd5Gi#VIDgL10vkwl%u&Dw=7_qUk$GjKr*JK9<%fr?X*UTLgIuJ+Fs*=Krkm^(z525ui5u=>9z{bROs zjgHP;@6reP(?xza{sn@jaPG?bd=Y;KWBINFWEY<-7aGoG;=y{EtVHsebI)wJ8tkp6 z{syR}n@+#|+A~rORZ1eVa(k^Kp_I(zmbQgU zf6-oiCoDo_LhTHeHf8o8u=`x)c~FkoeMiRVs}@`qm*go6)Lbi$3Qzu5vs&5%1_+Vp zV15t%Xgev=9#cL_27?dh1NM^^^~+^EQA+ae8@g7rCCZ3C5x==-AjL0MI=y{xQ}R*MWeR(?!r-b=M@9{YazAJ9?wI9~|Qn3z2VW zuZ6SiKM}jv(RlSp*?(X1C)UAw?@-e#x@j>X8Yy>4Hx!-K9(zc0HJR{sbu=k%&7y|3 z(?|8F^Y7o3qWg4fsva<0S+e3h$WPvN@;z5c1MaCRMbK6-Q!EQm19_~GOfaje{-=Rz zf$I>a(I$Kd0v!kXH!9+s(I$f|e?!%jkozE{%n-m2r(XruKDKIjy{$-f?~J?W(QF4hZBI&&wOkaYjl6Iq1;m(&X-N;z-My zy;GC-p1pQp9yx=)0n2zQxwLy#lcwhr>}WODf?zeRdf2o}G_a`5hr^D>sD~7Cun<)H zU}4K)*KUPVrmWBN+n#tfMhOVkS)a^MgfP|3%#3|z%P=f(QD|Vck`u)m_1Z6u1FGis zBZLRsVMgm3(FAcyGpO1M?@Hf>*{3n{sMPMPf}!%4`hL>3N!`(*$sq|ODVE|1aHbZX z^0n^8qlFlRCM>P?J|NZN>6JvUJ?-o_`EJ@+49r3qxwu>= zX9mflI##fN7YycIY8Sge1ZTP#a{Iwp1Vj?;I!`(B*N4@radcHoxtB&1fFn2M?v)?^ z^NkR1mXQ97G5o4oI&%*bul3>L)1~*kw(3DOu7U$=OVFOGE&F#QZ6@GKY8?H z>Kx%XQ8@;gV?`|=J5}rJH_RvI-k(g=X#U4-Nm_4=%l&!`-o@jWyD3R>V%f@GzBI+y zTNX33VVzs<9Xm8AAWtg-X^BT@tovb4N95m`=KUzbkl8a2`2jScAKGFX!>^GO4gh@^ zf=I>Yn)pSb4xfHE(uzwjyy5y_Z-W6KhET3PEmBJ9I0ET7jL!QY@cwSlMiSqcOgQ7w zVS96Ol$I8iWEv`i0_*f`-DE z8f@T-`cJEidd7_srTlX{&G<0}jty8+Mvj4A{^0|JnH*nqrmNKn>c&GXBri+8Nbnwi zH=GEM47J}k>Gy@y$5nVrpWMsa*+@L%?&e?k)nQrms_I14zed0r9<43nHX~!IrDh74WST#cXG`u`MH0--- z~+e;zG@4u0xM9+Wn z&r8;=8`65?l-AW1mJa+bGnrX*_qLm@GbJmPrK32j%(d`bJ0tPj->|qk-Xy5}W&3VU zS}HmX0B?=0TZ!ik%1+*fO_>&&eB{)9W2%tqBoEWez-HS$pj;jklX zsos~Y_dxvi+}@V=+(=husBQgd%c*fm^L%Gv=b7$Cg)n+ZpH^x?s0*rOO>yLAE>|m6 z)`g($ktF`}3nUQJY}l5}4ejTxNz>Q&lX}{cuJ1;&#cy$;5*LJJWzAFsZ_oMC|7A=# z&aO>|^)qkz71tT9DqQ?ymQMyq@Z^5CVgT;&PO0 zY9w-#95!O=ZB}7=Mqv2ptJJ{7`zDv=+soBWQO6#gX;?_c)*{4pKimU#ambN0BTCzx zC*mEq&&fg*NlG05NAaeWc*yt4DLQ2}X`M*Lij|hlTLu$MN^mSbwEGLMQAFJD3;xXe z0ewvEcN>sIl&n~df#D39ohap$YMkpHZ#_l3j=fZlbf#p>fTCB&q8(F7F2v`K8EnLw z<+b6(5~}B58gR!Bit?(czgDt z7C`&^LG!CQ6$(OBBOYZqMHe*Mej1_NIddMUSw(Y`t^fusB7nTU#2Hrn8D=Ms3}e{+ z3?i1AnY$HyGN6&hFmsMois9ekdnPR!_p_5toI^#d2pXJ2S$PwbhlvN){ry?WN_AbP zE6egi8SEs+KLxV?BS`dx3ot+>%F zF}qZFSUjYj3Hv+Dg_zPY&|~E8qhPk8aSK zX9K|)4>fbd4|Y|~=JgZxG$%Fg%WzrnIT7c>VP|WQ=81a4PdPDXJ%eAQdnHrr9am_X zG?FEb^HU9YoDcQLA&-XP!hQxp9go~y4)czkX`_O>(nZRe7JcKY$A3cJ95=}L;ZL@f z^b8Z+dw1-qkY%Z@wSAobElOdgUx-j?rD45 z(u4ZN05ktQ#RhjWtg*@nNL#2ui$HYI9$N3%Okk0>c8SKcY{BEvj@W`ED44e!X)lTjwZ{}HdYi$2>HXLe0U=U`IZ}0=DXrt?7bshYXpo7Dp z((PW?-t!%b1Wne=#figv-*u11rS{Ef(eK zQ#=~PFu@~aQhf4iF0nlKoAYj(XdoA_L983u-m&#oMn%&Bn+V1F!i>1Rmn+VPV2HQp zY1sGSQUu^+>vw80oG<4+);qarkwH+yN3gC;6BSE)umkNfI?0h=;R65{ogWWxD}T6? z`1*90CopcVEaTr(Kb)_$KHE^Z+fJnYW@LhDf(rW18~qe22Fo3kTG(mlo#tXg&~RMf z8$u#2RYXo6Eitu{^YNQX(s=)`7r?F;%>ow@7P}sDK`|mR5xHz~ZOFxA6#a=}nfg-V zr6OyMUm}@D^Hxf>{jA<*z1zo&?NygX=ZoX#la<^**%a5i2Onn3K5Dgmw&&kABv8~I zaX%L82~(oK_GaVaY!4(;O_Z1tCyqoR4dP{NoJQ$;m#3ZPrR_hO>D~R64V$UFl{sv^ zJ{&R<$Yxmsg>~@v9-A9?H`dRKPCN7r^Ag~JnyzCqble@0R&LVwwC#C%lu>BqtUsu! z@`ENm^T?`4)Q(?%fDi<190TT-dAFvm48+JtTZ5Rmy>Q!+_=?&ZA$yDo`Rua7swy(zkJ8& z&MR79)(Iq!*`*g+Z+&0saUActwJHUS<`CRab1%11(>Sf1=)|or^W2JtXJSH|ADcR; zkH=zoyC=OkoFQS8-%3v4h&|7uTbhM2XB@yYr=+}%)f|2ln)+Od1p2K1=Xi3ne60w> zFA`^+Ld&j1vEds8nN@Z}@!SBkvOlBm-F&$2X}vDE>)%IPe$QX)=Ge)|3T^jze&-nB^a`9k>yz6R;eKi{4n!$APFm!Gi6_))cCD`G`fi_i&eu7oz zj1M8S2nQ5zm>L(QTgT*PUprGJN07aqt5Q|m`P~N`&AyU{p`;+$U4^@~UEk=)-8+6J zVI2kidp@a?e&SHD96LoofE>UVN=D6tg3u(cOlF4v!g)CM=j130Z@M2Dp}$)@=AAen zXDnhBXFTqWP-f_$Xqo+|?j}AR9~E+q<6^%J1~}&x+B~DWB6b|O;zWZd;ne;YcaD@z zM_L47*%_ElK9MY%Te=4hMcm$_jHgDA`zSj%9$~(4EpfixEzhGX68pyPquk60A|%R? zAUbv3LJ82m7`JkIG}+%-4r+b>z_Z%_cq%I8cmNq2IJ zzi&y$<*SN6l5qv1m3Afsb@8w_F?Cd`i>Ci=uo`&GOg~=jN-Te_0jV_g)SCCI9IhME zu|cBxki7n^sJ3rs+C(_J%f#i-h0l?D$yZ|B;-fS8eygM{Rfh9fjTixKi$(UyuzJXB z8DhK5{LFY;ce)9l#a31(n-`k0DlLgFA+DKTviuLS<|}`@-hTdbGr!&%qetN3h-Tui_{+3c5;bQZ zWvw90N)5|OBb6;xZ%agua8$3FRO1pXfiYxm%SHNUOlB(N(d!YRr&kHtOP7vC?w{x| z;Be(Y0)_2|u`G&$kMwQReIu)U>mI4HB~D3!Ooq`sgO%`2bG3&}u&d#Fo~(;4bgT<7 zP%;4_6`ggv@~#osJosN!y5qvpS3hSKkC*Z>uU;D^;q>JEF7IE(`n z>?5}{(5772yFZp`w(N});u8yb)k;S<_3;jwbsgSf0Y zsqB)?7lb2SVXP}3Z{NPmTylYkJxXhwLArLm_A09mUu>kGt}n&eQk_x(acpQQODi>z zPk2hYNrqt0a&d<1kop}HdAp3yzp6Ydz1NK#htk4Rz4koqdW$FB?@&J%T^+}fjE;iXo;_~qnfm3#ds9&Y1Y7mxwptc*lNC8B8>uX zRC`E!k+za?I6W$^W^GAOrQ<0?iHkfS#+^1U-GS;ZM~YJ9WIP?aW0N!UtrSiktuc77 zsn-rYtj}<>rS6&j#a!1n{@azEt*?(w*7>0ET{+%VH#B*T{Lb?rE{VrU!j{IdyCuL! z?@gt~Ap7mr55%gDx2NN{>-W0JlG~Q~`@@1QNx-0+Zr#@fV{+O%-@r0o9xnU<81Ph0 zGolJBP$3M~8vZQ*K~~pN7++M!^3A{j>Z|EbtL}r|x`O5N`Gqsj(MIVQSb0TDt;QJB zMmpC&{&?5=vfEUk!+hKj$Ka-K;*zoVRST<9HI}vA`yi^SFKT=Il!?O_)2S%Y{KrxR zhGrkQ?Pq17B?_(O)Q+=w)r8blXS!R4dY5++HJs;N#}V)RtaC~T8hVV}2sMSUNh|#G zznJ2_>9NNp3B%N|rgn{OlOBu89qkqJRca3|{AZ=7{RwR|MWa+X3?n+nTmG~ZwuR}-h(DPxJS_>7e&@5*eJ;6`@!IUGU%Xmn zuY7MW4CFKa1&>mi*-2!IYZ#eo%uv$@E!F z4LU%_v{x`VGE*z<^6V%;)t#9vl+cG}oc?sE6fQ%ew4f1TDC4AQUcNK#my1Kg8YsS4 zD7`VQ`#G-g%TC6ig_24TQ`$)W-kJDWtw*qaVVSa=K0j6Rp#8$|uRdZ}o(oXaZaR=s z!a$!?BbO744dO=x&K07Qeog_UUQ-5+DJAbFglpdt4tamXHTAa@Fx_bso)uI-XM&Tm zO@hf9N7wh;n-{$J=V_!d43wXt825Nv@ZTyVISs@`aN@2dz_vZk8JFV;P$-rgtfJAZ z(Q%w`V%+%!?JRVpbQ76BUcPNxQL#)H51>eJV(-baJCZlk*gg3!I=L8(p$qdrI=YoM z$bQ$pTz>V*{`(v#f#k$-xan%^{t>r)zx%(lWy?RIb(PkP4=%$pYkQKdvC8FMq@bt# zqoUN68n>A~PqD7cC@|}$LNN{dv*A28@JO^U|6{~_*?SJj}j6t z>ztx_(sfV|UNzWdae<0w&H8Hy)!8L3P?)F$sF_GV3fSl2`7K;2+yBI}^42q~C3o`p z9rGx5Lwj|nm=pHqWQ|j@C9sKnDdgzj9_oI!--hQVN;e!I2I$gLF=M?Gq5Ymm(Mv-d zpaa-_$grpn6nHpcqGA)0mHtf58w10TvALb1?<0b< zW8(&sdU3@)H%u1;j#Y|rwm+{MY@6#TtC-sNPL#UnvGT;ey?PC2Fg#aLFma*hX%X=i zLHaG20F^WR@quUv=aY;3zP-`b1&;dL@ZQVo?z-0Sl;PIQW5Jx}i|0StjY&K*lrO$6 zFUA>J90ud_$+L0M&&QKd{zl0HQ`R6h5{>mLkxRCWgRYr(D3SagBX3=v?=WA@=H{$o z-1_-rTu6gZtE!C*eYjg1&NAvN4|~FA8+DU^b_JEtcA?xtW!IA)W)`2|=sc%i)O_tC z`6!3yaNeg1pgdRxKjC<_^=iG>LAkd#N}?yp^p+5Z*8d^IypsK0*_4Yj2BL(Xl%V2(cEe!e)$yQ#g+MyUN*ZD0JA?`DSI3`mG}1pXMd%%=)PfkK-sF86OJ&Iu*JZ%axV3kn=jiiI%TdB=ycF7{FeP zVDO=yGX~V?o{np6L*rvJkj5T#5bIqrM1`+oaVym}|F})yj;YlP)L~458qApYS;J7Z zgPG%7bxW#H-+pWOZ0}+k@aB}Q@-8QgwL}Lc`M9^<0?3PbJL~LhkfJut?YuS5W z1$#>drso~oS9~`ZpXmBmW5vV97GC^xs3+%qU#{{g>ak{WdTnmkZZ*+p+uc1VAXlJB zzzn;@ul|bmI40R?1xV<7)t+EJ5d34CXozkXD_8LC%a)@B8Ev$zN?&G`8&Wy812Dl9 zC{_Rv2XL?aCpTp z&0hCqkvL|A#|Trq9P3~JB@^Yi5)8ZsJbp6>@YD2d?6Lyk5s*gaBUx!9E#sO(UfFG2 zfymvsX2922}{u9SRU?Ghdfxf6VGZV0tTO{PQpGaI2V|RKH_Te6nw-0;4Af zr40Qp*u2Nx0yc0?KF*Kt-dG03vaD}~`QgXyw;!B3s5Qe zN=jjTd^0%uvCX0^qk$Q`E!3wk$UE2u>@}kScwnWs>Y$Wp&npLs<>)%OVGiTr(=N#ES+$yz1PB?pGHa-8S%et(r!%DhCPJ0|9r zk_xY^)b?ynK=C-`R@4(dde2qf01?sIXCgz*#rWmo*wE%@bS1Gi0q&cmGvUQhESzJ3 zR5MQ!g&EoEQjIY>Jaz5P!TI8$@0hsZ!9MDNQBn%tO`A4Xa}DQLTPTmw0I-V%EBeU~ z;_;6k749xP0Ero}DGk-TmsP_bwxd{%*l}?>fe#o zbb1qv01o`YcW|wAZQ;8++rBzc!I7#l=KTcrJvk8g7tfy}Vaptl;$K?iXj* z#8VH^4*z&pQ#r}r$Y4A39r#;X@e9cx+#zT7PzN@MJUkK+(CyGq4 z>WAD@*DQ7)OV7i>sa4&del9R2pL|c-1NrB8=3_Y0eNn6JW}dL6)a(hgZ-X<I?t8B+DKx$(aME#Q}8%+S24zq9!=K0ht8v5fy8$+3A@5 zXw#f}Kqc7!1X`ZIh2eUlAFmW+B-mu$d}XWK?|IC;qV;w8U)ixrJaNy+~R<^I>?9kbKy z91q=LEp%dxm6bv~mD?)wJkiQNT}#~EuKFQ3x8AmEPCo$k&FN0-3iTWHQw|ddrBq<6 z?_+soi3bG$**(2G*XzBO2H&+7QZny904cq>p}6$aKk*5&Z^PGK>OWH1?HfK6{DG18bRGTe!lqaC{z@R>wRN6mpQV{ntWn33cSZnKRqddjLHmq!|}lNJa>FFVj1#?hfe_QIeb`* zC&lus+~z$d;CwK9asB38$;}K!gljIaIM7QlyCj)TAi|x$E(sRE;K5?ZVvnhdn}nHP zBrt4EtwLZt3$%Lu2^E7g=@*fvW1n;i%XGaV_d|R1SbppVlD8T7drm0q`g@~h+BaO3 z!+>yh!zeYy8NJ^`GA6eczesDCF3ltg3Z12Or;J1X)}*{MCJjs_68e)&c+F?tPI1Vz z8@;W;Sf##9exJcV7Ic#?M&= zKNBJy!8#-r0A$%um%4^98SM*WKVD0U8c!Y+Hc&K-}Pll-?T)c>#juWMJ1yY8u#Z>Rx}=_vXD z*!4^l30}iw#NbbW&OI&tE0jx(VC?Ax5bMRL}qt8bC72u#uiLXK4K$GOWt;km{4hk>` zUn+VRD&2>on9zO-K=C~(n~p26jQlqskK=J;uF2^XL=9m#eXkm>0v`YYyh_c6(!s{m zB+fu=FN5hYWq=l@50#wg{In2Oe|}16A5xJAs)*}o!Pf2gQ6xJ%oRmPugX712W2mM- zKU#D|uP`?%#RaPzynx{U+A(S1U0HvCffDfukwJ{;AJzS+tRGE5(cbi8Lzs%IU->BW z0Sh~b@C{c377K+KYmwqdyRh+<)4{Bt#$ptfGdwRjjR-mqKCt8NA?WCX96WA{|UhP06(9!WD zJKEp>L`G0re58j7VEj*46QY6cQNod5e?=hVktqVlUTl0drfoGO*y|&baC9{BFKktl zYM%9@Dp@`{a@v-Vy*d22jXLey+=tx-WI3rYv6H1DNR*C@HN|i2F_t0)>7W7B2ASQ@NxS>wYA1|@1ld)lBt_J1e z1jm5XV+xQP>nHa-i(^d7kT9;(ityJJlvK|N@SfV=&0#FQ*4O9tG{`>-l&PM-CQ!m# zN9Erdwkp^}JU>iEn3chFrXw$SIYXR$x%b}`KvNLf0i z-Jz`TB@|FiUN8SduE1py{~!dIZg>XRSQmT&a@u7c@Ys1&{x)v1Lee7vI?hA`2gV@l zMp-sRuH0!(;>`oP7UZbIq}E@C8}Yy)<#LHWD_&@wLyi!sN2(8M*WU+PG5=o2q#HdG zSxH(HbCL-TsB{I|_`zbm0tAYyro?}=%$56xKmM-;c_0{CG}q*uTS5z}Ftg&WHTq2_|3;oL7&@}O^G8uCcFm0?WPZS$ z891;9?M8$jq%3Fg&?%*czp@dxU9X&o3%>lf?~kJv-(Et3?3{@ir4{mF9*PhVR``Efmf#EfZ#Ie4wSUc>Q$19UO-cQb=9pdH`D&%M z_p(v-U^sMRnYb%csroA~`MKoljAfVJ6U}awuK2Rs%%3r5D!4njGHcgzf>wZUVO_k; z1{`o$AtTiU29X5_q4-PXziB|j;#y2(7NuHo3r5xyx=oREiMsdSNOdWhEi6n;)sTZw zbEJ?%8dkp?#HVpqz($NIdyJ|mLl}-T(O7aJQmlbnxDP@vb()9!=2YUk{tKBA=iv*} zewsy2C_4!wB8*RJTr}z^tDniL)g1Qn*C4lB2YXhK&ikOBVqf`=)W`()R_SC{9QdNX zRD_>bQ1T!r{*T%QfUFf+&YYiTIVV7$^OHOg5*_8+Ob#hmyMgnvuY*q^?cXm!AgmQo zfDNG-daMP1*svREPXIqy(2xW@IPlU(dmsh zV4ez9Q73s$iAcS~RDu;K3k-xm2~%GvJ(ugBa7Me#m^eJ;tHZ!2RQYUUtyB!;a#=#s zb8%}@S5rc@igawV6?Hlg5J9A8gIwZ_e~)6X)AciMyEfxS<>E7M?x8IDMI8A^QSa~z z15qtOi@>G;sMli73MV`}78j~SB#gq2Gl2ML--+fLMZDV_-_G3QoOoayU z{aw4Ofq4~R7+;9vG5r{$)z}Y=>)Iz@VtKO|m5~u|!H=+H-(V1+5WsC%?)-j9=b0@> zY6wH1h@3Gl8JGk+YTuy={RxtO4jQJ^cDN<>90CRff|L^hrLCPS zbZ;J)%+w<2TJTeteFn#r3L?x^&L29Ad2kq?%s(&^mH1?PV;q=Ta%|wu7DeGoZRL73 zWIFH(ELAQ`YDv2B%G7HyCLq$B!@)cri9GJ-M)9SxV{=WK=f;|DG~V_6O@20I_yZl_gYSzJGn@J zm4}yvNuh>aDx{KEreA&LAG1JLc}?)o0V{Ci`(Kf>#zC+St%lru_$LA|NL$NPK(C?z z4pV4{*q-3Y5cDPomW~+2%yoPNJhK$9#Y{D|v{(4qNUsunyPy1RoZO>tbjUY>vmCRo z>Xfq)pz22rpf`%aD(0@>8*~om90Am@aR`nJY_l+`B2vQdJ%U zsuzT`D2UuDXa4xe&5&t8b=)KT!m{H4 z*-6&TOi<&Z86&_ZZbp>$|Mdbm_bJucGwg4tK0D`M=T69IgKL+4tbqPPk zeMu?`wsg*HrT$~D=J@Nx!Q)&m`3E%z*$bd%4L|^~*ml-=dQKDJIHv#MQ6N%9DZqno zYc|%10VT^wp2s@ofPp}<7HqvgkW(xdKDYOpensfNz|6$Vrf7GO2H{3G1jt(b|4i`! zP)Y8iu;m*wX*YdR+okj9HWxxMBBQTWUskn66QEQ8+J2hIVHydd!(<2#{n2J_WAZ9h zh6Wd-jZII8eaIj)Wq^`r38etIRCzPYP?*AO z|CPX*)ELrg-$)G)4)6kaf4&v-=AC_I!UBe3$C0d7IV0RR*7lWa&wxz!5sMRZ%wp34 zFaZ0f?}#(Z`MCe#Zqct?vqhTC_j&fi_bsRnrJG`sL&h!VreS_&RksMmbe1n6XDV30 z!qpTBMA{4MI(vm(7zbO6^sMfS0L3;^vV;KNwR{r{V^<*(aC-tv>}K0{~(#N>dxnD>;%^}8CL zuPh}&B?8VynC;UwNOuxU0^!apg);*hKxU+vpKM58OxGc0OnwD>ot|#|j(c%|Ss)!4 zhXV%M-Y5w3_U!q*Kp$gN@0tw4;YtYmPsv$aOcTndb8Sdr@&8|MZ{d|y)U*%ZbeDA9 zARr(mARtIchqOp{clS*xEiEV@DXnyOcXvujcS-ke^SsaZzW>3u7Ha`FhjaGXduFa{ zX7=o<4CWXYQ;dPa{3Ukatmr4dF$%(0AL|1wk>^VBO-MHQvZ*tJ&362bxLN^b@n8Oo zS0uIn#8ByzDi=6QNB@#^Pg21ar%}KP{I~M2eJ{o!RrF8i>go09(o(T22PzG%#oM0| zT?b}4A+c_Ol4~LJs6|f~hvN^)z$~N+p%lrm$|9D5()ok!!^7^Ki98M=p{TYt5nc-H z#33^RBBFL19^<)kQ$|)+31wxx2ub6l64On`hDDFlp*PC9x{;~{Y8jQ41Og@UCNv_0 zTz>*zi1*0ISNQT?WndvR1zQqXxj7y%1b+~4x|z6*ftEcHNms#bPj38diRe-^Xzcf1 zyPCD@t#m0xMI3J-{m$yfMuCXP$hH*+2xK^g4?&qgSw|GpC|m;9QtI*bw-;@<^QVp;CEPv?DM;Bmnx#7-1z-R3(5EUj%Q0hg z*Z%Eo#wCw6EDAvw0c3P`HZ(XGc`*GQ6(1j8@4$e{rE9|?2?a&x_375w{Cs#v2+msF zR$9kr1e8*!+eI5|Y-65uxzhTzc>!?#9N()8QE7!EVF0=s0xXC=5a2 zXjY##h=a`ZOEBKqdRJyT8Bs&S=R%LyBMdf8T**Vf^7BPiRS6*m9l=;08{gGOr>BDt z5AAGbOW~N+ixGQFm#KL)*t{kT;X-{=4x5FFBB4o z-rp$jhRF0Nfx``+qMlE$iuXGH#q+_o0F;y6f|B;VbEAn|d5tC*x45I#l!2Wc8z}GP zsjRA62_n{OCAV+=jbq21$eyfte>YtI(X_eAemG zTkA}o)bKf|{+kA)UYNvDGUAMn6WNJY#W#~9-Oi8kZKmBozy2Fb$QFw}#trh=+S}f4 zEhuS5Pup^w(RFV-aLXzxvh6o5Dkun;vyn75rnPH2S8Kf4E#P(8#${q=cHGHHP`LKi zqDF;}XVnf~TGBf^J8Ru=`pkhG((&2n_F|>;3%*8`6`_@tl|j`9RIIN)7747+-~LO# zx&BWLEZ|R1R#;~D>)4pG&0;;FUJ0@LqAT(4?(XsZk>9(V==!ZRFC|@FEXc2tlAeQ_ z<*4O{iyDv1MR#QljYMva+OW)@<>k*zO-;8C4!VLch^b|sK@7aTDfr#?KXn<2I6J>) zYra~Ih(Bl#!mzNnmjWMzg@tk6%T^YK zG@f*mbGW5#DQjtk{rRIsKum1?q59((%O($b+^3ge@O^8k)Ipj?;sJ2}A{~6MV*`=Q zO9$ZvS2KFiyY~Z*>lc(vNE@kzxyTGEHDcn@lU>V9<}yR}wYw$c(G%*sbEO-<72 zV%>t=&YR;7oUw_C*EyU7goG<9={E!qS3U1mt7i1XTwS?sc;+Wx(Fd@1gROQ15^z0^ zzkdA^24W3^!3=8VS57=yNdhKzI@1Kb9CjyPvgpfiPD3)q+yzErk>T&u2ivBW8V9 zJJB$)EXku*&n1P3O*NxD=7=Tms;a7f6&8vEa|q^?8s$MRI3(m`$?M4QXsN08uzpWT zPp{Z>FDvtEZ91-Riri%tpW6(G;pW-Ie6o30fu5gQ^jBL3^ZT>y%Bl5z( zFrOJO7DYqmbtjMGMeg+vq=k}BD`<9pj(B1ym$bNO{JXql;|PtL%{31?-U~NbRQJD_ zJoi^RLasJm`B^sl5uu#*ex zW^R6Rydnl{5~kn7X*$Q7Hz6u{3PpT73bAyJ7k{juOjm-w@0SswTg-P?Z8#Al&UF;U zx(&fWK}f&ytqT7|MMY@|rKhF_4p zrJ^*VHY|A^{z8iNn!ptxOD1W(89yRl~f6Z(s6)YY&||MEtA)bZt}WZ9Zuy> zOiu1-_PNCk@7jg-zzp=O0+}!h(nhTgHLrVm@$_SrdNB&@E(@#AVo|<${4z0)5r}-3 z_NC{~^TBU5%ZVpHb|Q($7HVMl!&+j|oZ&cBhK~6VY7Otn-T2XIXyD9IKyiL=4rg!9 z_}|9uD|)s;gRN6T>80x22pnzUXbqN7n`ZMWIJJ!aundgTVD>j_dRr&omy-`Dnv`>f z8!P(jc%T6@7=>E*x2v)==$>OYo?Tbd9l8BXP@QHRRW~@)&uBDv2O@#6hOy~Gl-3x< zoUb}MqHl@bsJR-a%NuTGuh~JWLyOh2>JApDF~Pn;doOy z1%*tY-Tu@DzP`|w$NQs`iS!484?8;`9o*eR<%cPuj2kKW92NdaX#Tb#Jjn+M85#Wh zAt5&X<_Kvz|C19(kEW$On1A^A`%@rd-90^#r(~GOZG1g>>AqoebDCgaE-o(A(CD?j zk`_tMADtMl8X@u%G17EOj0CMDVgk@N&mN%fd?WmBYy8BhaoN?T&B4=FLa0{v=PE`% z_RJo*k#9A~F@0~BqVfs!7K#SQ9@t?>7boNWua7}PN2jwdj^Xo%#@mg7gs%#D9Isy^ zv@AyhR(Q!fjp3Ct|L>7tqi~HdAx|xx!tY*jvG(Mk+uX%T2%<~Qy@auTzZfc_e)&Fu}!wP_Tdd508UyyT>b3_{380az2#WVokL_vn84;+KP5=g1l7uYsW?9 z>BZ#rA9t(25}XSkoZ6MCLh);c^;HWmd|FE$f9J`Z5{4AB^1DQEu#5ak3gLwm@5G05 z-&R2~WV8%Y&kX){8P#}u@+*({I}SN~VB+&Q{%N|gum5Fbk8;djS&KU`=7 zl(m(w=g9BTivS(z?p*(|sw_2=@oLE4H(=!5BLzTRhla)Os?~oR1H4`rEO)+-NwU4F zU6j-jWubtE)5sv(ibnoLyWhHysO!F9Kh%Pq=0{VHe0Y zVW9o&#k|(3pdg%B+^N_Y;rj8Nt<$yI3QZ95^Xu|PC3H7gGrGz^eIf1I?9&?q=Avgw zm*$wIEZ(Yb4XRoczan{U77&)*K1Q3*WRX}~-}4_co$7mH2bUf;M(KhE*O-}`o%*~wE+Qr-=9AF|lG|&- z`8P#ORTb#sYWm}KI@nziA?S5sqfzsEnD63n(K^LXCicn5{{H#9WaWf~K_;HE z6ioQfO0wJaK725(%dvC}GS2|$J6``Y1xgP{5ZTsqvPc>Nbk+OfytboD@-3X4?~g4v z1uddpUJWO=fH|3)GaN3r*lThZb%B*C^LzA_h1cVy2%g!qH<|eh}wh6Ce)k9%oTUW(E zDqJ-$8iDi;t=P_AWp39O2khmj!go*CI?dZ?q|PwU^O_7ii4g z!3vRdCu}s!ip;RI*fq|7H4|HI-_q4IufQCzW&b5oqZiP}6R5*nCxnbt(s>9yVS-_A zC`|KeT*{`xWj>mrOb&i$R(IIw|IQr=DCxV(#>Wu9E0ndWfeldrf(r{ex?9yczkjNp zTzdn#0h8}>wyk_p-^*vB**%o}#&K_&6%z+%EhjOaK>GE zu0f)35Fn5dOvw7)Cqbt3;xusb6A`upHsTSEo~po9(NbX3rjHmqIX%O`zyP<`(9*K9 z_%4WxDjZA4!p3Ig=0;SefjMVG6qd<#_l@)W`;|raJYXo8zma)vu&ED-8ZyzUDhFAAqa>p7kl zXyl)D9ViZ)en_#Uf&ZtBvioD?JFEli0%#+bJ%@^x^>1m-mBVLkvI9D;(8Adc|Fb!}~J3w-ry3txP* zsYGQ-M0zy0rAoJqlf{DTT#hvfF=F6rd(j!u1V9Abe@8gq${^d7$nl3~P zY;d-#_uH8Cz8~V?It;Xxf9@nWS|> ziW8JMy@iR{9!oHu9!f*NL?3{85KS|#2%9YDmW`J5blDT~|NH_XELDjU;H3jWFF34m zER>HnP4Ak63DhM7F%eT$+%{osM;7lJ)Ox`GR&w-pu3Oyx((fSSR>&@t3axsOL~Mf8 z%;?X&{8Md9KAa|K-RK8=PQd*R@~B{zNJS|gs?LL~%}&~1Mz#WG_9TD>9UqT19N9Xp zb>6}T*v;zrQ$Zw_j=h_mhbLGp1e^QZ-8v~)DjM3hc0$6Ov^A101=!+Th56X>vb~KL z(4HhiVl&>YtBZMiJXFME@J(B7(0-wI?6_8kO?~mo<+X1MRYVyR3QW6AiYSdB-&`GNuvF4aL0OHg3wGL8o}!apQP`bm^E=S!;>D3B7o@VMWk4&bMA6Yv{UMCp?Tlc1lX-Eq-Nc4&L0}5fcSRb_5;7N6)x~GF81fl z!^jortX=&?XF!&KDDBWo13N5e~q0pmk)4>-(E* z-z-9nYw-)qb;Gfcfrqb#S-{_wJ&Erj*jdio3#%{aMlfWQ#ciW>iR7eIy6j*GFc}WChcNe zzBm(5W$_ck_EUV}?y#zviAm?U<4&BS5U|}iYIno0&4(xDl_t2bfPv3sW+ z%e0LqYSb9IKE_McV2)s7eQ!Jv(CBz#M-IF;yxy-`?l>RrmmevK*>qaR$Dd(Sz6}JN z9Kdwr<&syZWR}PIl=>5&XmCGTO?6)qVI&Zx`PvG+(=p&($|kU_0EB#c+=r>oRZCJ* z(zeM-0ye$I(4*#CY`YrrA9BcGoKx!hMdZ=exzmn?2_+`;{j4QZa@{NH7^nRQXOa8` zM2_*!o?u}JDd%s?e3qT%Nmkw(V3RtQLO02=L~u*5j`7S67hW|JBYE5jNkehaf3U3U z_||nOybb?iUt)MQn-Q;}YELMrCN|?Lr&njW&CXswQ^p*?JZ=PY5x@O=;lcjq1b0UR zUNP6a>};DOkr6^Th4;rF&IQL->X*9@o3DHZO=l73fgIlait;8q2Z!OyuOI0tut9FQ z)nmCAiH|IDdMHVq0O^Z3{Fp`Mp?hEXot%vIUe^S#-Hr>e9Mw#PnJJ-@^YaaCgwNa# z{scuuVTaRRv}3%QY?L7-C$IPh+uPl32Xd+Ty89B4)cAECnOKL-LDH-xo4R;wbMrjY z96tjCNSP^Ri?9&s8xK;=XyxB^9=XMgxzfBv1+nAhj# zEGf2m!R`$Rbq8Eudjj4KJUnm(aEk`&v}K~Tddl=>z5zSb# z3xvI0!Mcj<@#_m>@Zc2GW^(U5F|k4h`UG>sEWF}RY3=_aJKQEv*MAKUT_g)xKly3R z9(G7MJu8}{)OvQ#FU{K3>KbK36C_pB^R(PiddgB5J7r{FdN5*~yQbVqmP3T4Jf?h7 zq?vbD(5}V=D=D3dA$$pdqNo=QqZwl!2&Nui%~L$SG0goC{oeFr86^cgfPQNp)mqp& z6NnU8HTtRLoksiJ(f+#@kd%_zOY89#YOxv`kIdb-;C{y0$|sefB+T?Z|9v1vNXKl2 z`A9v3Nswp;lT`VVl_yw?7tIw#MMZWWCjb65_&x+E8Chg8Z<;W*((A$;=y%78NZ_vM zI-7EnMQU}Epdzwxn=8MK(&{;Isw)MKGojxrc~oL_C=9>9sN1BVyeZ9LFaHYoBt9wifX0nDRQ0t8lRtQNE`=*2H=GIEg6o20LLZ!F!SeZ@Omb0#HAQYCMPg<8v-mF_$9;jKbC8 z@kIYGBousKc9PTAYFh4Deec$&v{T9eebLnN^98<#qAvPAh$#f;=X-#ZM1DWD1kKla z$Ce?WErTP(1?H1XQf3NJ6#}Gk7WGKYSi1ei2I3HGN-L|Hm;M^eJa22JB$~7>M6#d1 zt+_PbybxSF^f+0mJWbVZW{HeD$7QPj8sycW-h}HF;Cn^;JUb!mfXBGPdDz`fTRi%E zVx7U@ZqXcaUy_8)-V4zd@g9$<$6h9`Hug^?i_{djdcZ z@S~63z_iVW-vm!iGwBhxe8u1o(~vg_1FBtZ+c*QI6m#pkB-ekFv(GzEXH7iQQiAP|DjPdx(c-=t^{*PVopa!m5} zY`iCmw6P|(6|r_``4F>WM=d+Ep~(i9Yh9leg=V2ExcgPn^k)KFqCaE%+G$m1E!J+Q z^R$a2rHfA8x)Y@Zuz(S01yRu)aLon~r|MZrZhTqZ-NaAd&kdLh$w06P#lGpB2m~QR zKw@hR{H~bVYgCL3+`Z%Zm7$vfo;w*W;z0V$b>s$_EMp{2AX4log2-d@OhHYQlYypq$2aW5*IVc}VPj zb!;f$dq?7TGm(Bgp#SjfDR5@}5}{fR2o3*HV*rS>f}mUD`LyriQ)! zE0CD0GNMKIcX*2}%~+7{rk$Y0+&EO;H%Bq)kEyCm?I~b^fkgi2O|p)i%=Y=M&AX_2 zYx2ggktrOTe6&l`9VXK$H!)>} z4KcaRN;9+*I)acw+e9GsJQdXBl{DB3#YwbPk`W#rICeTtW+R>ds_d(yFi{a45tedg z$(-ocNg$f&SUZK&fCs4|j_RPI+E-f(s|)c1K~+)E+;rDi*+siIQBc9KhX>!r(_wyI zzXyTln_XrK0T0|)%~v#ydauNlD|y{F-0DCOK}AL7DX3;#IqP$KP~*5ReO~ob)gYp6 z5A;(wStB7OE%V|U zlQ7Tw9*QH{v^dO{`)uLN|1_+}TVX0I@YN)C-$C#PM&TK*!Nv5>*4gHIRs2l`C|Svi zXmWtVQT(}T(^;{FFAw85koD=-uQ=4l^I?^jE=DUWTo7SZ0$|SqY;P~7Pp=^m09S42 z8(G`4OGm$q+nHblh67Z^Af?zf;`iXZ(CCT(L_%lu{UYDp?b^hu>@#xEd3HYkH-%QH z285Q`9Sk~oXHuMhA(2M+Fht-YLr~pZMP0r^$z_C^DD2tZkLP|_UUNuf&_?j1ix8GV z+{rQ0khU?y_LmjC9OW7C4*HNffA)dG`H~(hxn~C1ua>*M_xm~H+r#g36z6D&@Vvfv zyxra14o6FZ-oOzL?J|<4dj>KW0hx>rbvnl$0^mz>ei1}bZ&```4d`)E4M0Gb*J&M9 zhYdxX{#hrof&R>OG2yl0o|x@Iv$ zM49}-8B%}<*taoxXoxGWQaV*<>Z-?23TSF-NKcGx4u{V@&o|Mw(C20b5N0#dkQ>-2 zpsYsWLKl{Vf=cL$B)shYN{YlpP`Rv_J~r!il0@oOVmqnjV{F-WP3E!puy1(ccprWj zJJ526Y9m$WhAdyKV%?OjT`LoCY65cAr1q`VSYcj4Xl3a1cTx(V^rfTKo;y3Fsqu-w~AaVrMb&IU0E`9zoICk}E zxQJy{WhGkhN(@uARc7=e1T!D$7UzyPrh8fQQQr5-8euSavsCb%%?c1~vD(%3S+EN7 zj4UJPpR?;LXvq@!Q%{qU+fNm}Xw~8{G^-GW@nVd37$){B;b9w`_k$fsHXJrqE!u*l zV+-pn(m3WKFkY1Lc1@C@erXba>i4rXP6LbxtzR7KUHH+*J2YdU!|jT>K2 z*w;-&EKnw7p-Dcy)zH701Z(~FTc10R?>NN<9%ODIgO#b*eu)0m)npezFTQO;vz+|< z%zh;FR+m+i%|OOGB*}NmgsRVPil?}Ko4T~0*sB3sKs&ul1Kvf#MyIZ7Scr?557F*g zWEKkysn_0#D1J((f^#qz4i9k!(S`-7TkcUf?yHzavp@_~;nSG|k%XW$MxMb`z*ioS zqPYluk(l;+>_h1NB#c0M76sfx4c(JENl{*Kn*(g?kg&;j)-Dhu9g?o@kiP^4H}_AI zG8&M=D5a!=qX&~&#qCtL-sWG`XbnrW&Zjkbx_5R+#jj~G)r8dfC^!4K9e?(aF(n8UFPuqULL(NC-Q#{wxq-&xEKGqF-hR~A~#A%aXzGk@Soz#J~uG7*Xre^ zzE&Nf)jZifH?7u%N8DBw-g@I%ZU*pvyUQZg<})3Q8ttx&vyx788Yi*TsM;2P`VW-! zan+CB!9f`FKb)2iTHn#~5ZT?Sw~*rQj0s3bM`kUhRK(h{!UPVEsI}Lsr_LY{iLV*o zQ|4oqBON}qKSMPt7^~F&vvv!MoC(sIzIm>jV;kH?z%2@!#ok$=AlX@ARGSfFTaTQ9 zs&Kv*!PO4Q<*R9^4vMVRmSEF}>$f;8`w@nVH{M|;jkDD%gCkW|58X5=mmWos$t*?m zpS9vTC=ptBr(J&)Z!+dWd95@3OWA@IL-Ic|1OCO}N5wvob)xgGCoTf+0IU!SofZ&5C&g5LPTOad+Q6ZbkD0 zev-gRJ)3n<8>dYlph?%pmbtpE!BH~j^q+0#x-VINf$p(3`}0I7eL(bU!Yfp{d6eOM zMn*6XZCO`SW;l)m?8&uox+q+caE-)&rvztZqBnst4Yv}^&bRG{^=9`3t0>|O^Nsh_ zmMu0@Qj$ak+fcj|!F4kpC^|^{T$&>;Yh(#mpGz2Ld=B|}7?98Ti>x#;O_+t>mTq{w z#r!ePk+8;WL`?0J@fW5Jj{k24xpSIpCsE!V5tvPxAJ)$2aqIC8H$n7k76Q*Y=DC6p z5XIM|MQsl906Z?EY^IH8W;du7T4D&G@yav7cI& z4DK9Rg=4WXk1tl=9R)$8h$<5M0VBzuFv@jIJh@jg(O4Bffyrx0J3Cqs%Wzo0$rvFcZB~Ul-7cCC?nd5=J}|+1`Kd zq6>#lKl_j^8~TsR|^r#*gAj z5YsFwhq4j3^40F~{H;e-j#+VZ4uu!<(td^fHtOdPC452s5rb8RGgjFk!Qm@!v|%_2 zux%T2wB~bPUO|GQN8}5_apOfGeO+NN#=O0h$M@tY#4^$6Kc5Rivg2fXv*V3zA1BDY zPR2D_d=MB=+c{=;7vNhvZJs?|9lls=8rYDOQY45#>tYUN$2xoe?#0dE4h(j15@Cf1}{=Ib4M&yVhm6yU4{<+Lb=kO-n7}&xyaH_^is>r(b z2$RO2gfNfuFze_Ar=PIhYBz%@m2o`lx==M*R4Cx14PJdQ9HiP6>G+h2O1z<^z8)2r zVSFjxnzvh5%jpYU#Omfs&`4P)+6BTO>O?kn8#IS>1PwS$GV!m(kKfrS#J~PS5}hFZ zSfz1H;Q$B2p>9ELtq^JnJ+nalAEsf%3hND`c%~SS-z)0-=Hb@Qv#)y$A8|#TVr2pT zQ~u7CpT6ARyYxKFS{!=56J;fQc;UjQ9y`wnk+okU;T{k!zYwF2vk(X-W3aMCsV zBvzjaQ0UUGVK;fjs%T7QVa?N7$OiF zP2QZL+TLB4RF(;R5*_O^bvih)<(_AP0T@^xr}$`EH>W7oK>T?9>e7&y+nO3R6FJJs zP8nVK>bTu!0G$ou;Uj|B-qnq>QE04^;QrsnZ1fd<*DN1SkQ{X1RG-wyT-p1%KNC9A zioFL2@Sb<~7>^`zA!cyg3!-h(8*M_>F_byS`rvvnd#hsmkc)K;dfe*-H-<{#J=!!8m?owO?*A6@>hUJ7&( z1P$!0qavNRlaO_1e(o`?dlNYc1@sTZFtVRXdSA7jz@^O2pny(!Rim6>q}y+ML;a)UJqDK(XFg`!-dxGvrj zCyRl=JG;C6^DTDHNw{e7NH$b|4Sv>*h4?X-sJa}MLxG5u=?;=Zg|3K0Gw>$j)_4|i z4kq?E$S{9io^gZ(X|xVR5dlHgodvbnzL!^L<6LY@Nn#>n)XZcb<)!whNI}KY=4TFJ z0z_#xINy>$iv+4=ev+(8!u-!*V1bhX~8Uz^icMN&WvCVA|+1mVWu4wwSYA z|JxSR=KtDa^88<0%;f)Tiz)wq-8OUouiNIt|90Cfv;5y~oBu!G_K}KE`@&vG2`U9z PokC + +
    3
    3
    1
    1
    2
    2
    4
    4
    7
    7
    5
    5
    6
    6
    8
    8
    Outer Data Port
    Outer Data...
    Inner Data Port
    Inner Data...
    \ No newline at end of file diff --git a/docs/src/images/Jungfrau_two_port.png b/docs/src/images/Jungfrau_two_port.png deleted file mode 100644 index cd7703111746eceef3e7d6d88ee7e395670db582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29652 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�C6bT(B`n7031RAFf)qfe6X;SHsBBnv42Q!&lna1z1xamp0+q^b!}1Ymp#elP}D zj$HZMdIJ$4Z%(-ZKh_@2wvzKDZD6^89HuFZYFiBXv7fl(>T3hazW@y6PbXmcop=>| zcA4TW>GN^~fd54>L&-nL30kua52l6zg6%#}*RI|cCrCm!dGr5D-4Z)UDJzPM zQ4`qNpBIfxk>_aI|4MwCLQjX{7WiOSpkPhm8hq~CN<^#}^Z#gGudQSeL_(p}=`a*r z$b0;1gtgb_p&<3=yZ16;wpJF zv;`mhKaShS{17tam*zc_)GXYER<)rJ(xEf60*AbaTCx*FL?!x4^+vIg2rCM&#Ba|} z+B3oj%aNsly2@y%Nde}pAsbDuhR<6CT$J*ua+3)`TFy9?^XTeimFghzS!A~DgK*#4 z`BMpW?B`wi45o062iU9B6W?;0hgWA%0qw|1gw^}gv+syz(vCE|Kb;%h1_??8EEgHO zCd_X3;&F=teFwC;nMxk}Q&}O~J-c!j|&N)Q}8p&mY<9#fvNP42~Ls?!Vt^wecu%`39y zhazAx9qlCf>JvQ%k!>?v_&3A2fp18IBxR3M0zX;$=qJUWV*x`g{e>fihqA^6XS#$h zrii1DnHa$mEw2y}w+TpQvU^*sbYJIyXZ`r|h1V>M(i>5pOe4d;fG4=sXquV!`aTB@!&w#t+ zD@f0lN0+OyK>X9vdA^9&&7R7}G7vX)cTQ@{P_-w*votGCL}%H^OG=v(EEgN)0Q|DhvRBj-xqq9uP?((LO3lj*OC(bwMP#B zA~mPwiB?{(%!D@0K{NkPO|&l5X{_@-pz>@DAY~?FY+cG)<16(slk~(Wz^yRq4gx-n z@)K^3l>)ufa(L+m7V6IRH=$_v*8aXjaOCx!JgwO!2NA(vrFn(qM*U7D4AdQ7+uS%0 z=J!I#^5?y1fW3X36pPqZmJGAd5&e=M{zxJfvFjML%@&dx1(I0>n7Hl6O>01ZMB)(( z-y&$$${T#l#5h8 zR_nzMYn%w{{+i1&`P(|-5FXYKv!f^>w!kzdas3GNoT*7Dy$0VsPoyjalpn&dlBnjc z3cv3qq@aV6{ndQTB!2KGC|IRBZHJs7oH5jK1x7FPdXcaZ=w}=hS0yAUy8*g3K%R%Z za6iqui**{_s}NK9pCP1BSfY)y-M1lhfVUev@`x>yJB*xH9Pwh-2BB6X-3Pr1h?M=I zZRq|E2>zCdRsy zaRz(Lj`Vtf^V#f?FD?KY)dHR0VaNAHNnS#Suub;E1cHV#@ymIie9@4IcFtNvSvez1 z8PF&{kWKdex{}LdA!i6>q$0c_KjiQi`QdRfFjA?5kE^iXxFAP_uPI%s)tV{j zkZC)a(kVaB^GE_xCG~IkN^}OVPXom4Zk&9#;%qk?1nHDKV2aB7t=~nj%uh75;#AhqU!NIHIIPsN^q3e3+AovWI;H@=7a!nB|DaFrJ^nG<1#}{s zjpN<1Tz^e7#&(C84365d_m3wUbOrKr%hw9 zd|l=qEOpUh%*2fwn0~DXm{adt;KQV5!gBK*nwcR%xC5_X>uX20%-4f>V`9*}J?Fd- z7eG)QK)iu{R4vA$&nmQOHw-;&ebMNJWMngRbe&nioA22^$C)KI`uC)sj;=pHht^;H zN(*RC80OO<0vlhkN zS{!an3U)%E58{>nd1A{yT}?1Aap?^*c`MaXo-mN*bR&&9EDqE0cuNM|(ejniigCEA zK&{LV5EEuvT>)_Y6DN?6?pbVl;EuQ3wKtt;*cGVjDK{LmF51!1Xe%>Mbw43 zj+6#V+Tugt8~6};sTs;BQAd%t5e%qwgI9)iJG}d~T`YvwoU0+ZcwdHC(L^&@Gt1lm zltc33?V2CSWa==v(fAwhwn+)HT5H2~6?5?4F9Ly69O67g?WH-u&Egem!GQc44_h54 zVw$fo>n7G_u?4=`{W8nyZ?*NT4L>f`P4Vxtoccep73>xa&wmv#jPIfv=D?m+) z!JT;~1c*cVBVFU*Fi?`%KabtU1a|=M37`~tfWK^0)MY{M9l5>8>U1&i81r~*!ro7R zKbFV2CwO`i3- zN9qqmi*zkD{V&js4>MdZ+c7#R^~XBJpDm>Z^pGWmm?VP^bl%6NYBP1~L>;ETaCrmN zfHNB>Q?r=JFwxjE|HlQeX;g@YhJmL3?43n`s40MkguaU}hv|M}l;7lXLvp|v2< z`Z1w?xL2qlodhxxGmUQnh4JcMrC8P{V9^y@n5Tl1QEDv1;~D+0bqnXpjJfnme8z`OjJfK z{F<{}5D?*WPt(s|f!yuS8`hDUuHD^bPR`eFP-$rqynZLhCJw-u_gNuU1!@m|bmyUJ z2J~a`qL6=^iU5e-&E3BYByFa0j-OSh`1-i5syHCwdm9+wL8j@i}+HEvk6lg(Wv&hm+PS-9B9;BT92D*wP_eu-_K*+P{6-)gNB!7+_auJ2{(MJiI zw6A}Kf#QKaGdykG7AmhqNc?QHrNz!@`hLiv@-|V>A!hl`-%7DUBpJc-3a7UNcI-4T zq?@S;sRmOMuK8*8mFj`jtd54SRt(`*jyvJiE-iJU=3$@zODhX_q0;B9?|yEN_6QAq zAT~hO{~Tn{iqbUSb3pXV8Y5ajLyx@K8CSOk2X8~F)`BCyDfoG8&x29I(x&>axl=*2 zl@D1!Y8%E7P6b1F&Q^i^j6W1_n!-_`=lV%?XZ=kFHgrV;>93_?S8e7?W<4xN&9k(> zV;$jAFpqGf% zntfR{MQyDsy^<=WxuNS6F#_~Y`tIn}B@_YLjLCt@-Qw#Yt)z@}TIXj9;@fG$AL+pt z^^d=E?$kyOUb!*9-qF84!1UNe@Ug-6u`zkCMxKHajCRTG=6Gz%qN5(~4E$$-cs1Na zJw}m4HtPSUy0`vnqx-@~gFA#4Ef6RUMS^Q^DWyPhw?dνLKB#UVgjT#A?C?(Qx{ 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 + +
    3
    3
    1
    1
    2
    2
    4
    4
    7
    7
    5
    5
    6
    6
    8
    8
    Inner Data Port
    Inner Data...
    Outer Data Port
    Outer Data...
    \ No newline at end of file diff --git a/docs/src/images/Module_architecture.png b/docs/src/images/Module_architecture.png deleted file mode 100644 index 5f5c62650bd3f25e3c8fba093f60a8344d150529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74463 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

    +|;|nnW>_>w8Lk^vb!Kiry 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 diff --git a/docs/src/images/Module_architecture.svg b/docs/src/images/Module_architecture.svg new file mode 100644 index 000000000..c654a1ee5 --- /dev/null +++ b/docs/src/images/Module_architecture.svg @@ -0,0 +1,3 @@ + + +
    Client
    Client
    Control Server
    (C98)
    Control Server...
    Stop Server
    (C98)
    Stop Server...
    Client 
    Client 
    On-board CPU
    On-board CPU
    Registers
    Registers
    FPGA (VHDL)
    FPGA (VHDL)
    UDP Generator
    UDP Generator
    Readout and Processing Logic
    Readout and Proces...
    Stop
    Stop
    Control
    Control
    Sensor & Chip
    Sensor & Chip
    Control
    Control
    Data
    Data
    MODULE
    MODULE
    Spawns
    Spawns
    UDP Port
    UDP Port
    UDP Port 2
    UDP Port 2
    TCP Port
    Control
    TCP Port...
    TCP Port
    Stop
    TCP Port...
    Receiver
    Receiver
    Receiver
    Receiver
    Data
    Data
    \ No newline at end of file diff --git a/docs/src/images/Module_receiver_commands.png b/docs/src/images/Module_receiver_commands.png deleted file mode 100644 index b9831a7f63215a74582650b4c670505934b9a0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90298 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
    5dzteK%4yD1*13Uo}(1`fX<;fOJ`Pj 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 rLlL;Lf3{=zR + +
    UDP
    UDP
    Receiver
    pc1234
    10.0.1.100
    Receiver...
    Raw Data 
    Packets
    Raw Data...
    udp src port: hardcoded (32410)
    udp_srcip  : 10.0.1.15
    udp src port: hardcoded (32410)...
    Module
    bchip100
    Module...
    udp_dstport: 50001
    udp_dstip  : 10.0.1.100
    udp_dstmac : (specify for
    custom receivers)
    udp_dstport: 50001...
    UDP
    UDP
    Receiver
    pc1234
    10.0.2.100
    Receiver...
    Raw Data 
    Packets
    Raw Data...
    Module
    bchip101
    Module...
    udp src port: hardcoded (32410)
    udp_srcip  : 10.0.2.15
    udp src port: hardcoded (32410)...
    udp_dstport: 50002
    udp_dstip  : 10.0.2.100
    udp_dstmac : (specify for
    custom receivers)
    udp_dstport: 50002...
    \ No newline at end of file diff --git a/docs/src/images/Moench_module.png b/docs/src/images/Moench_module.png deleted file mode 100644 index 975ffb3257663a507e0adec55d7d7a04a1c62935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34670 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 + +
    400 pixels
    400 pixels
    400 pixels
    400 pixels
    Control Port
    Control Port
    Outer Data Port
    Outer Data...
    Inner Data Port
    Inner Data...
    Single Module
    Single Module
    \ No newline at end of file diff --git a/docs/src/images/Moench_read_rows.png b/docs/src/images/Moench_read_rows.png deleted file mode 100644 index 696df21205a6cee91776d8f39f35819503cea849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23753 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 M@Jdy-5Nhc4KTf<8ZvX%Q diff --git a/docs/src/images/Moench_read_rows.svg b/docs/src/images/Moench_read_rows.svg new file mode 100644 index 000000000..c6b3f7ad3 --- /dev/null +++ b/docs/src/images/Moench_read_rows.svg @@ -0,0 +1,3 @@ + + +
    Outer Data Port
    Outer Data...
    Inner Data Port
    Inner Data...
    \ No newline at end of file diff --git a/docs/src/images/Moench_two_port.png b/docs/src/images/Moench_two_port.png deleted file mode 100644 index b3c4f22d7d6b9271cb86924e7acee91daac4467e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20409 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�IW#@ z+xH#4$-FQaFeZ8IT|*bSnB>lbxc7JO5r`rPBSRP^tv|to=ynM20ylD1!$F#jD)mZv z&?-=ZXX%{e;-;RA{%JKgW5Ux=ID9e`|JdrZUlh!JW3N&_?ZCbU}bh*SuFxn z0q-=J3t+2YY8d0NNk$KTL{_Wcb31kn`f}rj!4)Ce4)M*nc;u?KUFRH)T7^cvG6?CZ zEd^eEZXdZob54ugXf`~k`wkzwz}p`mBZ`yNvDQ);9cQSp4kKIb4A|eno&(c@-VqYG zubscK4quH#nxKL)PJ<}y#K5!o*a$`$fP&)^WR+l$EIKrt5 zwPnk)Lk04~V|f13E@lQ+eg)N3yVlxD>-3r3c9Yt|9B~v57G-?Pfk*f7z#WqsI3^*}5r;*(v@{iO9H9)Hq^23QaKK=GI=gW)#T5hbx^D_9E zES?|W2U+|~u=E*gG3rb;)mC3~j&8S2)a}r1H;JQ=FzWv66u9qM?%qAY;}7j(S_8&J zP=v9*I+}KE#(nyZs zp$uC~nu1b9*2Z-k)FL7x*8_D^5D^hcF$J}Vh)9Yls6|9XQcOWDA|jGv3ThD%krY!< zi-?G%n1WhFL?p!&)FL7xDW;$n5fMo-1+|EXNQx<_MMOkWOhGLoB9dYXY7r5U6#E;< W16W!NNqwXM0000 + +
    Inner Data Port
    Inner Data...
    Outer Data Port
    Outer Data...
    \ No newline at end of file diff --git a/docs/src/images/Mythen3_module.png b/docs/src/images/Mythen3_module.png deleted file mode 100644 index 73eccfe1f6c7ef26e398fa4ad25620855f355189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44315 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
    OE#uCElYL&&pnXc!vLqJmPOf(`m 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℘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 diff --git a/docs/src/images/Mythen3_module.svg b/docs/src/images/Mythen3_module.svg new file mode 100644 index 000000000..2fd79812d --- /dev/null +++ b/docs/src/images/Mythen3_module.svg @@ -0,0 +1,3 @@ + + +
    Single Module
    Single Module
    2
    2
    3
    3
    4
    4
    5
    5
    6
    6
    7
    7
    8
    8
    9
    9
    10
    10
    10 Chips
    10 Chips
    128 channels
    x
    3 counters
    128 channels...
    Control Port
    Control Po...
    Data Port
    Data Port
    \ No newline at end of file diff --git a/docs/src/images/Receiver_architecture.png b/docs/src/images/Receiver_architecture.png deleted file mode 100644 index 8aaf00af42e4a41bc8d562faf7cc45d86cca2fab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68117 zcmd43cQ}^u8#jC#Nj6auLX=U+DA_Y^d#`NCo>`GuR%Z4H+1bfn5g{admJqVC_kPZs ze$V?H?_clnd!Ofc-|KMH?Y^$-dwsv>_Z*+|bDozVMR`el910u+0)dZ|5?4kbE?^)K z=!Mu=@J-Z?t2F$F`Aih4iVepL>?eWn`!z=iO-B{mr;aX$4kidw8(V9WyU&arOiXN^ znb|t7Vl)WCMXacc#2icv9nEcRXjILuO%SSPPBa|%XhfV$X*k$9xM}XO^K#zf<#)cFBC4)$|Bky`sqQA9o(?A*x;}joYRyg*Ak!F)i9K}%J+qqV zt94YFd0s`*FPHqMKdejDvb;)K>H#VJ?1 z#uC@r&Lx*GbGEt=5r4z4Q+8k3Lz>tO(rNL&RK;}8Mt41pX@3&k{sgDt_8#a30)ZEY ziy<1<$&k~}6xXS?SKs`(NhaimKT_NG-ghp!EM=ywesh!3(I&5F)jHwRlmwE+sgqkf zrf0HXjSiRku5ai(l?o?|g~EB0<*Ub6n!E(435C3jWa;p}#77aHem{+gBRu+k+LFVL zy34yaR=+To@M8CA%-p)G+Yue*7foUEz_rklk+%3rommf_0~M-)@*-tNdZ@6cj&+jdAby z$I*h{>s9c>kq|;phA#Z6{Y*3d-noGT_aP%YXCo(8*22E9dD*;9uNd72(HVHJ0G{v{mS9v8ubdlANf5wK9sbki z0hQO;GswMlSaTeC3ssr3bXaePw`B;^(4=;oI+@2K;65vu6WrIgPzLwGh;Zwm$=QAE zHn3F;QOH?`ht=aY7tqo6k3I7{n|L0P2X+n(4rZBgo(JPI7W`$E<@xwT|CxO*yVTq$D7_dX-a! z=%pxmpomOP|Ki`js?0GcfebH!dVQ?9b9TMe&8T+91X<>&_OH|H@2jffFY%HSH3{Rz znb&>5PgXNIc9ZZH6GbR9NzjLXU)#?d zWi_WMN_{ryS&U@&C&KzoSFIyIWvAKxB$DCt`N(2(Y*agL^~`tg#xzfTsJRn@_R41- z^pcs90A*UMyPVh0ch&w5%$Pd7bIR_0S(&O{@$h1#!M!G7(wVpme97`4`iIH#|I82( z$CT8?45|qKlH)Ox;%MoT+z}_oHYwF|a&#n(y>JK{b#AeU<~!8kS7Y(xqNCX_ea*(k zux5QD^*$rxrOEmHMjH1!{bi)3XEyf>STALSu=ljq)YJ_0_R@m=rgpd8KKE)P!uONZ z=-w#aic&%%gI>RWjk-9Hy(fF)5Tj7<(2PTG(_v_%`Le`5Jjo@d3^EvE zmdK7^IaI$L`|%@2I%}RB?`&ANm{qR7>#nNm>bC-#4V{qWuoaiznkQOVTB`6St1BtJ z`Ds%*$Z$5S_dT%o{QP_wo65&zWMmw8&9KAY0$p!c!5n;r&&Fe?fs+yv64E*S7PhvP zHIyNUrp8NmU}FOT$MPZ!YC!WQc)PfC>tr zpFObgohv^ztk#vEwV8dMgWrb;OJ2CwOck_s!>!&C9~Ej52(jPWZYGJ@uthVDykvM- zg{+sFz1i)2gIbJ0r#D>rH}+qs$DKK0MC(0pLj7E1LE=xy{n35A2N|X~h_U2p&W+Kp z{P=7{L|iAxnoG{f*|}rNF5+RxGcKY88ra09sSi4=ac5h7@$5=j8dxhBFsuSr3=8QL zCg%}()ochB>??eB2|FEJKV!!;&(8lH9)$o?NRWL5PSoE}Q}^6Q#Czj4M@+10fF?;w z27rzPVq>&b7ZtI#Oxwf8R_j=yT{;`qRkmTo^c5Q1P#`4(&_Z z+W&_9fL1&Vwv-hXMzBLj2@a>NBrGhfiB$J&9Pi%9iM){6rfEXMNuC&miDSk58KNBtmXvN=+;BQ)|HUzzd=@VfO4A#B~SQKeu{6Pb~5qF!r^6uEEh! zt&tCx&rUZo@B3$ibK{WfUvywcyz-frr6*Bhjk}3`9`B8PVGW>|^du!Uq<9FJL!^8T zS#ZnDx+`oU*udE+!tyyP)ZvmPnjtGq)2NI3Mn{>N+2hHu&rY|J!d5o34~&kQJ26#Z zHZ|JQf%V5oll{^;pQEva=LUG*^n|bElH@!DZzs6EOt1e(~^_W}+k zI^KI>)^Y~r;K4e zcRBZ+zYFVxYw789G11ZU7lrnG-pZSXmn0=7ZhhnI1{W;0;HVATK07;mP}^|GSHCl6 zDfUSt&Mg@f0cH(j)huKuIWCtE6U^&D5Gv`KvLofiz4%guBkW!i`^Amohaq`V^yv_W z4cJ|Kh5FDC!U_rk+tJP|KXc9dvlnihOx?(QcDPbeUY`5ulirU?+qllzzKNr*3A3HQ zqZri9TykJ^@Z;pH667IVzgDC>;TcNfu#D;aA$xR(qRNNQX88ME`wDsIfN_=3O;<$p*Bt@_Me)>Vf zekirue3~eE{O-;V+ojn!eUNi+!|{&>UDb(I&s{$2iBG!VNyA|P1`TT14aw6@q0@}i zqnX>xOib4*+y{RweS2EU>%LPEMlF!1q4!(@3@$G}zklLndE%oQ=<;QVPj{bC)_d>- z_qKg&yw?g2&B>{K*%{@8*~LE_D8f&9c{#YpyyD_v6$ODTucJ0ERVAff?^bp^G4O26 z%*@IX5`MhAypCJ*y}@BJS;_~yUZ*Z_mw8trw|1?wb@*w3d%fO;mm+e>ylTN$?)I^H z?RTQBCQaM%s46QfW6yMSc3ylz_}!)RZl&4b&N3=6n3?q~4(1;Ue1aVSQFTd(80cfU z6}wG4@~UZR<#u#PccloR)*eql$@32X`hBzIv2qLwaN!}kpdB`qwd{Nmgog!fN8j#c zLp-Y12}9Wu`K`*I4#AE#6_cM|UJT%uhXoXeH-HL(CiibG^gGQZyXb8+*X89gn{Xu1 z4zdrh+ilFW=M@&l&|8mw%$hLne)}+^Ie^e|wj)NYCib9OBMz33?uUC-I?{Rdm%z*t z2B=)i^g8J+q0eq$g|c9%;E_99GUWj2iJ6<5)4t<-zA+QgmYbK?XDW0!N*$ie>mdf%=X^e2FTYH_owE9t@2rwjOMw!0SZ zm|0kGojxYv!&Zt3&IPtjgSj^~mM{S3OO`*|#E|d$uYWt&2JnaVFAS8K_q*{|cpN$d zgFlCdH?G+5%kOBwUv?qQ+3NfDj^=3?{CbC z)jaZo)otuLGU~G+5bVygr36neYKMdCY-c0R9=wl0H0PwHi9`Y@xj#ATKF4SOTRgS9 zyrM#SuBq`&-_TIDINiNF#)Uf7$^-#o)jCBV>h@o(emX3Qy`#l3Qy+X-tAX)GioVQc zRS(IG83&n*ksS}^9Wv^hn&G^UGL@M?Kq%NQgN86@G6Q79+8tv;b;~9?h5afckoS)3%p}0r^-g^ks>qBtzh8Wv%>C=*nND$}BOhic5?Y zMtp}D3o*H|MJ9h&yG&|#!pqCBq3#5hzUXt2dVYN*$@bIe+&Vbz5=|>jzUlGjbIE?+ z8+h61ue0W>7xuvv$Or<;Z6^eE-IvSzsu@0Unts2-wN@4V`By&f_7yj*mm(h1*C%?o zhjln7?GcE^y*Gpy)9XBj@BAQe2a40tR{rREGztl7@BWl3Z}Jez4?N+>eZukZ9gSk- z3&9BqUB__BhkbMFYHDg0=H^V_h$soTxw!=_*yU8Z1$KXa2o*AJ#Ty(Ln4f8n8vAGx zTvWfK4UlyCXSIsg@vxV`q&=2oO{dobCSmX?>U+^{wL_wdBP(FKVc ziC1cgoQ}M;!IOeOIqUEZ2NN;LG1HtoT54+ftM0j$mMv)E^lGk3TmRjX zDCG5tejzJPPgzE$Gotm9pC~gMTio|99{z^)){iEg0A6C`bIQF=PtZbldnIoyELToY ztK!eGUH3da-VHd?-T)0vhv)~G77X38Gxn}_wZp7QvEuxy-geu9<06ax{_D5$Ie^i( z1B8yIJ}v?RFpm4N9NRoagI7jmI7uEMo#k(BY==Os1+l%D!o~3u1yJGkJLq<_d=8ss zopD>3`P}zpKOqg!po$+hQS|jE2TK?f(`!@B;0CWd;IGzghQas&FFw&%>#*L{tx=6E zd%pR!ys~ns^}20c!96y|srs5|CY5ZI*Nx0f=5w+5QDNPzO$Y+wgULZQJ!mp=#qeDV zr0sx6bXY5FF%bq;`!7B<3A*Meqz>V-)!AuHQwg|1%2wHCY&lfW3##GtcjR9E!D4e3a9~324})E~qscz$L3S~((%p%va@_f`;gy+Z-2yp7 zLqmpz0D?pCS>t3zt<)1_TNjnBg4lbE_UYdOdF1`(p8Jkfp=OC_WSP^FI(Qq~9^?4z z+@T?L?)&%kNWVa)cszMgsON6w&-Bpi4;F_TPRdb{6H*rdDoAB|lHTvheA}C;r#cX& zqMGmRdHF(~5AI8&{fUESQ{%^v9NYr@H&91vfOJ{A(L@8WZ zp+z9#c{Z+Lmtqte#%G&r>%L0%Yc_;oAlp83H#(!AJZkUT{wlb9Tb>j>M8|9Jxd;A~)rlzJ-)O#-kV`5_$`6l+m(0zm(rn&ClUj#kx%Lo^AYqu2K{Kg3|EJ$3m zTkx=e03f0n7c&wdZC-9}@6YOIPKV2tyFA6O zM-161JV9Ic^)eBbb^*jYaNQ7~|0jZFhJ+@%6BVdToR}(_ISg@2^ug}n_;7Ovzl;F< z)d<@eD}WdwKE%=vVDAylRh1?PFqTRRJWuXIH1_#lvD?08!G%I9q4##m5iP`Y_*z8Y+dyO9$#Q4CGzXTmlTu;s)bT}4Jq{NpRV zlZmmkU($Ebf%eh;BQEd9bc=6XyY%QHTn5GfWD#EThZ@qeA-t7L$^F55aAHVaGkhnp zVMufSwJtb)!9K>|C#70V!e?I@SP}%hG-=8R;p#vKt_0A`KQ?qEv3ZJdhMt@%Q|ZcA z1urK^$o~O;gM=6No0O+|#mLQkUX00Yo(smnbl>V#f=>p>20hzc`ai4uvoR_q$nyCs zumuQ1nzKhD4BwH#iW>(s&VKb)h=>WHZW6|2=R6;>G!ugB-S`bsp_XR~6<>a8Z>Fot{L2ql6|33E)%K192_;pFKXHNC& zT+g7I-v0QD3RDVcFh9a+w*`to6W4i<)6REZ_R03=+*br|W#=_{bX|X%NU^FoJl3XS z=MapIzL)v!d8(z3*5c6Hc0pa0X^pRv?5GsbU^4z1PYqsFt-vC{56~Tm;RUQ0#G*Um z^MptTW3%IBRdC3aOPFG$HcC&Z@4ty6jT@lN?T;|ZenQ?C%89Q1kcBZkm{0(<93AaD zSE8Dy6anoHW{sd5zPkX?vC<{UXza*PwLK&k2N^{VY!D7P2Fcu0{0iho4PIdl?|U-N zJwa5q`pyf45p2@bNK;qEQc!>UGP4VLB5P1Q#@;K1KD9_@hVq%r${oppzBfZ2!!g>r z6sTuTQZ@-2An1Y$QhpE*t=nmHN8Xx?SH#_7pfPv*9<9*#E9z3YOZh_Sa9rNVTv-hl z>Yfh*756b%X_L9PRmE!MU-c)lntvR;fHwW*39_Fd89QgY*55g+^wm7-S_AGT;YpH{ z1}ekyR*po5+@Fg^-uBr#eRq(iM%M%?Z(2D$JiE;Om5;E{uOpiDm!^?5%E~2!Er@B= zl1vr`57%3{_&3CXXFy$N70OOD-`rafT|pg`d!QqRi4fCZ%GFkGeiI*7k@cU8f>9S` zx4y3<5K}2+#f+!PmfqmSv$hENmtRBRpy>&2?MHeHq$qRizVtCvOXl2Ga+eOxx%^MN zD}c7!`rUo;CbI+i9YQRBt*lJCfV8fQ2~=m9KPV<9YY%bvqN?d56F>=%#I?Q;w0{rb zy{v`uv2gsLg)8jlWtAgUjhtv3F=M=JJw_tSsz^{LKimMRpkEY{@358f%*RE$#n?dK z(0iQ~Wa?QD?ij`CJr zXUt3nESpDxYjnKFo1KVUYkybs)h#;I)7bN{F?=?~qaFsq_xAApiNKjK$*ErXG(P7T zUEvO{yXXBT#w&bw;u-1&?_QBVXNy1}MlcO&P+!4LUjApx2yZzetn-{7abJY|OdkK` zg{=9waHqzzXQh41TKS#ulsNOD0xfmG%j7go!U%5@J=b*!ld*6ulozd%ZP;sJD`17( z0BCpwqVuQMghw8;(Nh`(VtR0@Ibi!>srWHmX+VVXm$3;PCa*16fS`c2_|F6QI2)Iq zA`qT~I{sfy{=X1MRRJqPY%N0$} z<>cfbPgUfiPy_z{R@56qa=?1S=@P+Qw!iqTf7NO6xvUKIW=N{3t7j`RW&+^=0Abwo za5+)H-MN?>f1Ce&p&|UhFcp0Ks626cvWx3=0yImp^^b~$CH>PHX=!PCByb|V37n?% z$ZYe){kha(2-aI&ww@}SPros~y&l{GY27Ud5~4Fi2yGAMKa zxlH}hM(08C=>eO^(&GtbUEOhs|Ml^)m%@#KH+jkX6yPQ*(T{65nxz(bhYHguyp$lD z-CY84@MN+0L>d@@;!g*Q-b<8=&yN9khu^mvVZUR1u8<=afP~u_EcV=vY#SIFLcvQF z=9s>v;)bHc#6&^UKPXZsJIQ9zg+HJ<4YKTH{^!cs<^)wkX(_{Ta!L1fcg{)&2!u1l z_arkbE7dz!`Xd=+4)}p@fb2roq2LJzl*bsF*|F4`{pJ8T73w$W<;W*T{#aILjq4wG znb5^%Io)d$$^+`)!7ta0qJ|T<`t6~|D5e7D^5&)_DM5hKWFuOkR_UW>bKj{{@1F02 zvpBigWgyl2sz<%zZc>CU0wIw2@Yx@e)LnpXdGFs#g$o|MhX@Xdexd&9!SKPa-A_4V zW7^~HtMy}*wy8U-6U9(1(kgwLTV1V1D6kcQ;*@4P*AW!BE|lv}6DE)9sA?LSGjJLDM^ z73ze7d+*c>wX;C5o>JTA<3d2LAjZa|M*_?9QgAo)!LJ?w>uCn;?-v&>JPv=N_-_n_fG)SkzD+@x2J2O-K zA_3+6Zk2%hjv1tKH}w=es~zaxMEqE05dO)xHYB}STPR8W#%n9F^622`0 zApmNlXlxv?vtrFcc^#*EJ69n_m-Oc~e^m{QyqX#gNW-$T<+-^T$Ov+xrA^52YT!pr zZFczW!z`HDSjo*?o$mun#W&*U$30vMk34e-ZmbLx=@#N({$yra2gZ=3EBSHuHO|-N z=KV}gj+w0cP&j$1U00z5csT3Eau=pz}fur?hSj9FMe8ZAX83nUGc7%Q1@R0lVG`L+1^Q9t}x*n}+% zJ@qOf*+&z#MN zYn@GvKq4Ol-B_94`yTihVkn7TP2ux6C`)l)dFXMp-lqM*z~|G+cJY$X$+QqF#Z9On zzL5%Xn8hdsqM?58cQEg>KOrZx`X?=m4)n<2t87ES*lun0E94gz%CV>yFy85xyA|aI z*^8w0BRyT+)*UzHrC<3{KTY!o|ns{eBaVyY3NFp@~CHbxOiX9Zyf!GHl6v&&jfe%^|F5d zUK#bBvisO=oS%2(z=Ky_&Ty!s{_|H#bbtF_Xd!`v^@$ew-rv&hMeq^_!@!@2J`1h` z8%ME23ywA2o4TxV)LuvH#JS4}rYXG;1-PI6`6iND3&bBPyY_o$F_@S>^{n)U8Qmd?#67Y$qyA0z@@W5#R}{Ja!M#PSdM-)InVqd z>i7+Vv(HxWI_USi=HYSe+jBypqYo!Xb3#iHt~6w1f@S*$=7dh4>$;3PMP>?}tcOE2 z4CUZTy9M(v-gxnWNWBQ+3`()4!-a|%WMa1-ZaM&c?6z9JyY-!K^*#7<6qf~R=hiz> z9mE*Zu{fv^j(<@1=Z~i0^TN*Ao+iI>FRyUwP#q5JZ>e58RuhJLwsdb4VzJ_4cWz)| zp%+n~E_WTSRuV2AoJn!SkHOFY_Rsn6NUtp;r`O4gSqBW;TkJZpdlfe0d08@X1dDaL zwazFur>{NgHn0!$Q0Jb9=}@Lg3*9sQPT2)fxv@c!C|1(bD>CVf&4qjzpa#e-6-BU&JNC=f?Egu! zCdSbVLq;7jGcTUpUte$2#o)dDX5MDRF56djJRk)N_3E{O)=7eWNOAprX&DL| zu*`h|G5Sb;P_;>0m@;6l?}(s)b3-tX25T`&Bka9 z{QRkdjV9M0ZAcC*S{Bq90_+0V-wqY&=I{P;FaAKNdn>9J%2DMY{IkbGap1`Fl%cI8 z!(c7y4{M2L_JlE;Br+&x?a;336pOB_>z?j2IUvQvp8bio`18$(igy4g-HbSXmzLKS zatS0oX<}3sR)3)wH?TddpVku0GQ0T@w@XUz`D{j$pg-=F=+0$lkR%h4U4G%+v|)Xr zBEFUQY=fRcbJ1jG7w$D<2Sih?moGp9F4CX*~)!p%MStUk#cE%1$ikc^9MSOBznWjc4^dgnb z%@-ot_P&`40&jEhzD@Zz&|ha@@oK}K1WE>7U0nyG-JaPjMOC7>S6K&8-=p?GuUI4X z@aG&oQbFjrEX8e+>8|DnVU-;DL5NU=r$^nVs4H7M<1VcNsms=I$lYnvki9dNaSRdhjGubwS+!8)T{8S{_}0&M6YKoao#29 z!}n$Lksdp3nK<>1X?q}h-!3`oK;5ozcfywKTNB^JKrR}{Tk-K@(OTznvR0I6h6)lO zW-D`ZOGL}=yftzCt0@~AYKZI`)QDpw|NH5-oLq9EP=jcH_JuMR+a%@O6wUwd;@oy{*V zE$bi7PZ6flIr2^mUZ=ZN+4A^iLj{pd-#`Fj7sq3G`({5yMR8= zTV?)~HxsMM&#QOS=eh|mCMELXmNF3D2s2yx$x%H{&=s##fN`G@gXQ4lb49CyS@ylISR&`5D%hWkn{&8B- z`+Oe++Ms})hEd!+HNRQcyVw!z14OI8;np?mKMk?%Px_iFc#Rc2E0TUJM;n^;BnP>3 zK6`3U8{c1jE#PpsGQXrGqkE;%V{mAIR7pied~ncnaDdc&tn6K#UQS-#5el2xHjL}= z2sZ2*@_Vkk-%t3~zPeg{r{=+EL2g*siub*!_Jxdaxf!E3eGcgg;30c1g zxqeXLG>v`#{%cmQ3I?xzdM)ne)&eb zu!Tyf;`H2*kZE7_^DVC5N&K{x#TM#%cV3@|Qe8}}S)vrZn-FbNW~jSjd&0ZP1_J(y zB+Vp6EIT`O_xtLH&ZE;?x2|-Wb;kBq+u@3 zDZ8p+W5I*@n~;0kDNe`6#Nq=OqtTTpIGt`)eNTbO-oC znHQM&+8J_kt?T!#=GV6!d6Tv4-O5k)Q%|*0_rIC?d#rW@%}j^ak_J09fcL?=A2m43 z;n<8ncvHRq?*n(_@Re}p_Z`b2( z>5bY(y-*YPE@}RlDt*Is5)JT*B&uc(N#>yOYP}s#0Yp|A8<*2V7hN*|bg1NE+14u` zN`A?fl=eG+8{<6w>~ivZ9__s=^626oo^KO6DfzUSylU1F%@mml#W7U&K{dcbuD86r zj6!RfxT1}aujoVdE{=aD)=>X{IL^p#g(_H;-!b?nAK4oE9%@h{gr?8Cckk9L=H+vF95_NF9Eu#cE&n!xUSNMFs%9?5 zeQTqWZ3%!ghn$K6|N1M?*lrZ3b#T~l>W*Sb+_ripp)VKGza00KYDuU+8~`7~h8(N1 z&j2z88Wz&8>c3EmMB$bBeEs7*RF?<9z{Tph6csVCmn)#xgM)+kdrqioYYns(ltYpE zcs<-}pmz0BKHo}}7&OM+bi92yJTQ>y?~f&sp#=S+CLGtGAiuHUfCBLVj!H9&d|bB& zHOk$0ZBTVLK+pRTts@@{U*a{RIwPEx3M)wv1fSb(xU8u>MhWlZgc%%%nh?HxUp5Ve{~mV$;Z8IU2w$pU;YLU~YG z>+hDB#QS&O4-LI)nhK6fs;sz08k!C1t`k5&v!$W_`mhTq`8P^^tg~GNPNwWhd!%Rh z{=smAXRopT;n=X7fHPEKJ+O2D{;x@dZ&x%-+WmdV1JJrFRY!mtJQwW8XUNa$LCt_beT&5Yjn z&|v1d5taIZbdLk#+N0%VBnph#)H}W2`D?CnCszGVtP*c>RNJ&FERXZ)D=u?orL^f4 zDJIq(v+){pUI+SgSlrkc2@cjc3Pb(*Mgk!cY@sxGZ>l*tuVBk^tjt@zFfsGbAJ+1U zTQiOnkj8JgQH@nBe~Var=*E?2S;Qn%sbP>gZ2VD6h0nRnVt<2KE}5dI>%s8*EQTVf zOg@?|S4x}!6<)Wp-OaN+m7E|pz~{2AKECp!vDmwhRrU3YZGnap@D)x@im5hg!Knwx z-|RUK)Wtk7G&RRNKLR}deg<-=209iBSdG8MgDsSo)9$~Jf0*p=XmeVhUxdRP(~ zWZLukD@uT%;MloL<%6Dno7dx@#CBwxRml1%eXI0!Td9Q=UViy@)NFOWhJyO@>dFrq zzrH23z&^iw!ja?ef5or)Wm4Mi=Zl5_Bh^&*R3Bf5-bwQ`e{s4Tu>jt!&li{Lzf)M5 z@f1$CVSvmQU$eYO6cos`8X8#Wx2NLisrNFsFOl5*6T?Kh=xGh8*bF=<0rlVcXZO?0 z6L}pnfu$r}$_P*Q82SZtz;)ZVin_YF%*=I(oH?qHJ^-S-DM{zo%IxHn<>x^h{8|T) zdgR!TD7Vw&9g%V9{(ys3oSX*@tOQl4hJxb4v!G|tZDs?FUWN@jV1QWV1r!-`$Gbn+ z_+%FsJIscQK6AJ1Z>B2f4so+Z%RXgWa^iZ>cCh^P=V$^&AIUF|!!hWG$XWssjg{t{ zy1PyaR}smdk>>1gu`zDHYi)hhVpQT8r+?iaSjxPnRDfMW#rnm7ccD89x>OccYFAk? z-HYosUZWHic+mX1I-StaP!vO43Dk>%=niwBWWK7A-`R_Gsl!9O`@CyP5^BE32lw{^;WdEM>fe%`V0pV&v2V5^m{6N44B-8i2Gw5=Vc=+7q zpjR&h^$oAB+I{?;c)ng|$=@7kQ28JC*d0f;u3&mz1wjJi5l1hVz#$Pi0ENTp_2_!U;2_Xh`V$BP;bk2lzMt(DsXzV2{V3Uo_GLEOYu@st$gGb@PLfaY*cc}Iv=&FK_1yr{HFgH15Eb3-Z*>?kato%tk3A8X@`R=|mYPt<+_!ZHwGP;`} z{6T0Ng4YO8O$&>$k8PB!tqUbw&U<$ajyS*h6fAuCfa)n=jbm{L_$ z;8(zk72ik~Ng#dDvEeYN?h0i;a^i6QjliM8$2sMe!>B4>NIVJy7B`&Kc&-QQYwF^7 z+uyko4D1TP&nD>F@G)sRm&*UXV%C3A5BlF#NBi#{J!k(AAF2F(QPleq>nU|-!#N7g zc!??__WU@Gm3pj;&Hj0I!gzm|5+y7H$2AplyOfA-CSok~n=4W5J?8cdXD8TDg+xmK z85cgNG!nAufxTWasK8g5Rq z$~kA{?VL>G$fp`^<$qNEp7)cZdOBFAe3oR?uGuX_WR|L5#R%avWuS^wh2NnB|F5xr zgxZkC?vhPT8rxmA{sHC6FezRWCy_=Td+9!6q>9Y=!P2aW10VjsH%)%r#KXjTH!?Rc zY*Wy4M3E{l&HJ03w6uoNAmnwjd-&UEu7=i};&IKih;DNyEtF^wNK{?6HR`a4MNJJU zn1 zXBDd)@GG0i^WI4g$zN9$ZEIR+^7LgDb4ZB%@tfD@O$4eJBV@nbSR=N|$v9LYHSw>? zJ()AU-ryTbd}7e$fzOFvWB5oIO5-;w=*f^Xq;gNlkbeeZI<$1t?{YnOAQPD_n_vVj zK8iE;j5E&|=bfOrp{Ibk_{io@Gb%(jx(btH<6Um}k+!dLq#kD|bGmwZtQWa8+wIx5 zc+QcN_s4gf`{@6}HS+(?woyCs|3!uS|FK6qI{iET+>vxHLFm9%ZTpk?!Vs%Z1Q7{3 z8oIG?eAgYlH4-e!9}mKAe-E8*|I+sTNy1OQUD;a+oYQZkwBD8oAYVANMjkZ&UYM_5wcb0#Y zn08b1AFVaJ&Zh;?h3nTkX+*Ip+;ZC#VZwxhmE%v2S-Xx2_Y?I zhxS^lkq@*RRl`dyCB|)bYm*|-pDh(RFlSFkMDxm4m+JIvXR59Uem5`IcCG*Q^&?cgiJ)_la?mx%?Dzc2ia+D)588#j1SZmx z?1prS>_F#)vuG5Bxb1hwu^9vY+~vAOM~Bd?w4oATA2L_l!?oAYxQd`5$3sT|E!Zhe zLoBB`wJ5yBTjUr1tlk|%I`Wm%(vSp`G_2_oC*~D&D zV4&HS<~1qt%N;mEiXjx+5O3uj0h~S`)A!@kx zr?B}Rc^J)@B8>p+4euvqT)9q692(LtOqZzGH0a|?vvn=D@6bhr=!4yqsQLwxUXS5J zUy1lToqx%s#G_uz=QIQK$11ZjEEc9q5As3XXGiV+w?y!E>SqJ?zArVq9OB};kFBik z#IovACGwo@v_-w0bnB;jZZ)uq+Y6B#PRi(2)QZZI(d^E^^ z#ip!!e12np5*IU_>PqMv17#Ac&AI96jt;W`QDbo;%y~6tO)d(0ay%*Sga|9JxjS?e zVzO8yy|17R=GF7fKN2Lqg#2rWe01|BTuko`2Qp@6RWs{)wMMqr-gj6YB$CT!xApds zEHj#wVTx3@eK?Ya)#}8t>Wz~C*+&90z9G&4X z#>(U6%b>atN=zF~BwoCmr&QRglZ3xXLK4w5H7S0X8f83bkWgBbuWSCN7a*g`ae+i! z>4_SRoY`j@yV=(i8pU~2yBLvNYxZtbbhUJrtIu_=i z-y~9$x${S0rYZamM+&E}D-g(e4<>c4wk`N$y|pnDcDA~sZt{dCnN#wzoF)ihT#SFb zem7D@nH{(xvvTb(j|+d!?V?G(5366axMbRGG3ks;B-Y|hDI!VgQ6IIYrbfcd!tgD1 z;-#-|ikUyR4R@{1-o$GhRVQarGT!(L@kcikN!@N=WT7I6{;{kX8R?79`E>1Pgc&-? zOj`DIrh9f_A^v9rqDMQr@m!QE2%Cxn#r`QVP<*lkql z%ssL%zpl0{i1227<$q0rk3IcR7@Gm>W!mXl|1`HIk6gGfmq(dc5<9_-q4aEjq-uK5 zSA&R>r=eHv?J4iSC@3Phn4kBKL}G8W-`h<34JKMT&E#ku|C5&1M|_ltjq!MO4e@v( z=(jL#e`49Dret0g4PZgUFgD(p`4Px?q!-93r5R<}`cqZ6OpIcffT}OOC@e@gJxH1q zE%Z_A!S*kvamh7TT`B@qHIXM0G`-PTS0wgKuIYDmOFqSuThB4h6t~cWZdDl&t?gq{ z3KsZH+*meCpEi=gz3e0YD#d^(l4i2GPZ_kSmmnbU5xAvvr97+6DGf<&rLma{@tE`! z%6s+jv86byEd68G)#ZrRnClNzt2~o8U5MqdKGXD!GEL4Pt;@u!R}*zv|5n*!Fe^Qw ziwK+~#G1mzTtjMUm5I@&D;aP^n2}0T2<$EAI`19vk22Iy2{wdGq*zEIZx)kacy}^P z{?)>#zjA>@jv3U?=GR+olN2%J+dcE{toy|uSg z7D4rBK{jzhjAC~$p?;se`^zlgveQ+zJYsCSA%pbxN0HvYjhxDwt87`z%iiUcMv;Lr zdedX`XzGTt-jMVs3N-~A!Oy7Y^Db<0eov1kfR?gGG9HxTjTb|2U|B-7Jg)Kp_m5p5 zBU`F=jF`BJ1P!8U99>#EyVdp6$8!4k4SG*w5GE1 z_FRsbg58-f+QZ;*L+3bg>?K}SOwTT`vY@{dn9YoYVQzUj8JN5Cjg8w75Z+3s4f6Ho z3=N&1viCLnX#`Tk&atfl>%ox3x*Qt%4sXD5&+Z_bWh_lxLgK=85Z6;5#H1sRnMLBy z)$Pu^cOx)q#|(*jd9Fm8VET%@=pCa#%?BH`!ltD-`}bwI%x`YjiW?&taClV5F07I! zh2)ed`F6KWU+Ps=e9ZSe%E#e72YaI)2niiYs?;}hWtsio0Ka8T9=t$HxC|n@=cVY+ zMl&sI;sQHgoS3+0FT+KKjo#D4{(NF}FgaNklce`OOhDDy`4Jx;9YxcOz+>7PTvHa^ z2u(66M+K>L@6s3*%lCGc`Pe&Sw-b+^T>J1tLU!oB7QVb`nHWv_r7u^p-*qjAIg^WX zVS94ZF6Pv=;O0CC1n(WR5+tnX-+x{FdGLd=w4V=>lcOFy6c)#Da+3S5^4B^1BHbax zUu&~n*K{g$VtgZqlw6{5zw37e*ZAY+f01C$*56mF8s~pcB*zf7Eif^g#M@>~M{!-A z`axhT17OdC>e0oP8GgUp6hg0h+^v}-Og=D2n7v*<%%J*Q4@yn+q+6J-2464*lQ>ic zg(Z`+|jFqBjSCW&5h2Hpp_gOeIk1-CfGa(_$kzejSU!R!a2r%c*Jsd-C0=d>ocgr zpU4N?=~N7&8;E>0?X=BqSr-4a#Gs~yWSKoEn-XU3wtmqyQr=N$9Uc(X+m)0jC8|h- zh?8lY?PQ*Ji&XNS?6XGIaBKd|83rRlZP+r;Kpa7oH>(ZA)F+dH8;RsDTnJ~V9)?-F@>Z^|X zvo6pF3a_^nb z%kf4~TKeZO0%9sEin20H@I*8ZDg&AWg3P4zKUSuV4~9~UgkrwD#KOsuPDRq2`DOGK zDz6Ake_yR7>Rubz98k{4sxHY#Ntgb9apSpNzfGGdH}~G2n|WC?ZDKTFEjl<}(}^g$ z;Vf=94(3~c2Mu)wnJC4i#~G+!+Dk9T_hM!VcIFX}BKVg)O?%7d&|l!=Yx!#R1$JL8 zUEWvXZhAomMo~(NS%4TD0XsJG*5Le^06Jmye~jHTYe#CgYnVAdtk@e`t7hrGKxA7G927PWftV zk42`ZVWgANFI$e2D_+{SytU%n7mpig5pl0T&M?aZy7XLmwo96cl-=Sqy}ID00|Rg2AxRB6$s;W8-y|pP>7`nR z4Ok(J3y$d#7f1BWZa?C~OurP~3@T{W)SIi?ll!eo`!)tPjgZ=FluGSJ|L8(30O5K} zc}>)@5|yQhUyjX@Y~7a@DjK>7iUH4_-9(8F6Y+_r`!I0j3QFg=(%KboUES|*VJ&mn zoQVj$mD8tuNuy{h^(j1Q(cJm4r1&ETcojJ_l-BgVn%lXcG&cWPvSkNgv$$jT*SCuC zf!HbULY~I4{4bZ?#zwcox|zu9Zuil*^feKvqukTF`=X96D6>dMirhqgFe~TLTzoa& zHPwXj65`@7r>x);m-&|k$3V`&p8V&9!GX8p_FS(ak##*H;+dB(&|kyrC3tBjI$g;? zN0-P&uk;F&YV0i~zo>Xr@F0b_kr6w}{YmKh$~PT+`-W2Gb5)6w&v>aHe`dUaSj{Lg z$?bIbmH{+f6Ro*}|3(IxP55*rHdOrEgb*HvL7mSj&_Urg~@|iz>jQX?XdKMg&f?~|- zj7-j+3K1Jo=JM>19C(KG_Ai&Cd;dD%A80~4imI+6g!S~OQ6B(wVSPTIXCw^*QRgX7 z4^t868vVe>)jMu@rY}^q(Rf=IT=QU`Vf!^KEm@#XfDC5u|0M;ruM1`jmk3Q-=-R)9 zSC`PeZj8O_{TX4#g>fU!1k9kOHYRDD;KjP%#-Zy2FF|&fqKz@p=QG%;gln$e-{mKp zF1-6BsIAnedi4g|O{Sni!t|;A>Sy;j1*x$@v6^VYYu()@*W9Mo+5mlpW6+)K$bQddJ3IL*sSRlpRnMMt{B~ zjFg#QR%M>m+5QrA8TDvH9N{gI zFHzItil;*Vo3rEk_+2o7P_&4rK(r!&dxAj)XO@t5-xxF)0g+T0<-Dm(`3* z-KV(6M~l|U!C}y67LS){e^cZ(KJW9db}275kUG^47YG6{;Ef3hP^ylO4!fDJ#Cyk{ z1)3%3kXv0Or2Yb(80_%w%a<=-5D0B;?KSANK+z||#rkdVhXiD1W@ZeaIUnH-&6k8F zB_(^%wn>PL`~W=;l)R4E_u=mt&~$QmZs+S89&9bRLIdaI=KdPIwo*J&{p>c>SzlQW z7fnGm^fT%&STsE?oq|q?D#)V+MxKdRvR~tokB*J~y|+GH9=jz-5aF|eN>1HEZK;Z=JRhTPbw4Eo;4 zNN*~>6`Mnf&`6y-tkh9iAgd4gR8HA%4&}5~C4B36|Np%)-ZvO`c!4iCXYaMwnrqIvjBj7sT`!Og zk{%wzOii0_6N|Aw`*GmsR`&|a9;)HjSKnlc5IWY@@ZI3Xo8H^=+5e_0w)4y3!;b;= z%+j*(vbC=RZ0B{q_bn$J_9iw)?bm-io-_aMn)_)fq;IEhDb8&Nb01X3$0?c3K&BsKPvFziem@6ovV!}shK3%guXjN%>cb#I%I;4UPvPN- zqBCi0rGsVW{Jq=hw)7RRJNxp&a{#Uw_4ZwSK|&R+eE)NVnWu|`nD(Gu_r{^Uche~w zx__CwSUxG;NDBupy6#nqunyyUlS>Y==9O$0V1#m|Ejk*zzh-W2Asmkg&Dp`>N9{ut z-^)P+k{nv=0=d-i_;@7nA%pt>9fTzZ&|vRw8YyA-m19g|GO}cxv9y2%I@3=U%!$k%I|Ae6j zD~Eol5b-h2;Y}tV4e#0lj5bOCqt-qpA+t;|H*}Cp0YIiyP(5T#`2-7g7&|+A(&H}h z0ARU({krz8DF%n!vjre=C4IBh=lcD1em)Mk3@bfU=G~w&+dWM*l zJyUyd)l$GUjQAD_^p`uqc_J2+YAm9nqS{fCnFY!ToiZPy|JZ;_(=IUot>O9r`m2qH zX?r%C1AW8b<8BXw15%A=-peV=6Iw1;*pXLi;?MQ&7m(A8a$ft!)gQ&F{NN#$M&|qT@5E{opI;WA5iYN! zP0r1{*3~g<@pEkWW@9lg!7fgKYVzU^E`zAguQg3{UVo=PHBFU|dW?%}5vwkC(aDs- zF8WU-1qbJ`Dz>zwHMU)MFRN0qLbDlB!a~C8PiOkdie9R`@04tu)~0%tPI;mOMDnUp zU(fN^*x4=R+y$%@W=XKn2IuGB&y7WN6>RNH(yM9Pv*G>KmqWWS(Tj>AshA<4n&o`; z>O@Trjo0WJYH_lsXZPgXhfkPdgP*@-YrXyR<|G;lyN>py-H=jL4|=T<2E4akJ>6ep zy(qP&mZ3-Sb~$&R#CBW)C^Ost{sV5(I~+C!yfLF2%(1L5nwqK$-jWMvWo5j~h!Mxb z`?T*^SF*j;olPf-T^^B{llgS~`SY0Zja!y(}U(j33kn<3Db<(wbk!9qwv$Jq|1xPd54Q0oHPnX^Bs?nq%}qaouP;1QB{_P?VHZ z`%;%$vfHZqD;H}k*4+_hHItAUbGt$9BS&9x3nBE;VjjGPud(k(u0Kn~d;`Y=W&$IY zgF~u~d64w(u)-%1>2qDxKf)qc@xI&$RE>4q(6*IIP*z>OoJP+6BF6bh&5q{JoepVE z7PN9_QH?0lyS2+J)enxGB+WHL>W4DrQbuDh#l^iJo{9+$I7AaNkDK|dQE1Hjq0WfE-=XI>K;{=rvzj(SH5PL9HfSi7t`dNb+Qb+39HA26F0E8OF%&eJd3n|wlb1zI>2H3B9M z4)RewVfWVtIz*|ibp~h2B>XbN*%{fYb%@4rp_h8>a?R{1>}MZIPMkaQ^Y)$%!>jI= z>En+*o?zXepv<5D9(IFRHheS|yO_+boYK(E&F88pl}nEJ=-OdLhBO1+BXzD8nF$Ws%yG_i5FcytM9SxTy^c%-DHRcVR1>bnI@=UncdT|37s;H1NH z0QA+JuW@jmutwuVvAWEE}QBZPbwmB&51 z5O{3rG+l!Q`4(73wGRay33m7O73Aikfc1nM^t<2O3Ut*;;fIiBX&D;E?gZ}mYnF{q zwfKw9oof`XUx@h(N!YZ#XENvK2|0{>N~eobfIY`2RR74E{15w z;c)R663y%O-(RjQtFI!cv*Zu zpTpke)LED5YHEhba2LI)ZYXi6{XUry{x;);?ATemuDXfVD|SYWO?#)epAo0p7G?}i z&6Tau$Hm<|W%50RGSuy0T`N<{pVHUY7sKwirx?AM=MQoL0fFJ^X*?}*7F=}5@U=8G zQFTUfAXKA{Qwjj`Ia2lzGcgevrjJZaP|{d!9r|4h>VqR zNgjAZm87Dsjww&(#>T;sU*~zU^wPWLG78SCb_+iET7)F556SLUfbd|@%uHrtvWb;A#75=VYLI5h!H9xEM7spv%E0XJ7Q~&!5o# zKj&(!#G1=roAiH+`@j3u`0|A_J9<}u^y2CrTdv)?hWg~t{WTt${(cvBbpIyzTQoJ7 zxbS3N-Z8wMiAwi%>O@TXsVl&^rjHaz!#>CDsZFsAziVf~x zJ_1$8b>KOc>Y$bXv2b)vA=8ZLVcUfC&Ow*^s$l19GovnZ9_YSx(Kq%oM8h=L}VgI2`7 z$^3$20c>+2!?-#aTzn;_&~MUo*YDXI59d#nR?g1`3nfhuyDSx8b0 zl9AuPe<#^mTU%Gd?@c+01YG=HOEQcRb(#u+Ogf( zeO{Q&dNZ11R;dj9g4ceBS7@BmUxE4oSxb{UU4B56z<3u3+Xu{^EI|$t_|wJNIqIX$ z4?*jcX(uJ)9e(?B^_L=q2|_Cjze$H3u8|A zgrO&WnL<~1{V2lZXuRr~`YLX+Dx~OG3Hdy@CBWaxS8;YWw z(do1q%QU+^WK!VEQSq$D$)_)D1_z&1|5g%-wvUo^hYJpCpdfLh=C5bw)`Nv5ej0PS-l)`)iB+kz^4|m?k?5 z(XZ{d=5hF&&pRG}J>^scyJk!qb%H9l0_`+ILvg+hiJ9-6L-X^2JR~#5Co6`pw9^?J zn3#19#r3)xILrP4pcpbQ?au_FuPb@SS;g3&sGm6#eNWJJ_+KtSpm$?dE-$QQ!3rVK zD<5s-<*Znt)abI~V;-^Zeg?_LohGSdwkEO*3t~bIPAg9ddwIMs@vh-hiMwsL%6h$|qBW0R9BXTSFYFMpe#pNFX04O$h7hRTKpU)iwgdMHZhjmjwz@C8gj z_#r6{_|9V@3u<=cU77W|;Dr=3QuTS(`y>NaX09DgRd(&m1!OHt%JmIJ9F3 z4kUF?|D|{AF2LF|$fA03XA0cu)mZPk6A~K1nT8+*Q zM=v3<03U08;no%rLP+Du2cOE7)#4m_G0ilcXQUPOZINSS8z;w@GdaKC-qx@4+wHA* z{ozRTb3(MnwftE+#b&Lz*CIn9?>D{@W1)$pJQl=Dz-UP^X_28FuzNN0+2LNYhC=3O zf|^;jb|@uT!JHC*+eFOKj()PascGOTBKPOX$n{m#8)pUKMOthcsr`y*HAf7Bgb_$Q#mH_ zX_nFrInMcK9~G2V0!r@NI8^>+3S(vl^b*B-Wh|zbj*u4y7-K5Ir$}cU& z1AWeQL<;@Js184jIk&kvVCv!AM+tB%kxUAoi)IRnfnP^TQ6+VCf(rAtcmSF{)Ie$( zSFlcSU6s@<_}mlxbkA_!xh%wk(~RQfT%`gMy)p{G*k($sQ~yz$+QG@v73^y0#avO~ zS;%zom}owjqdcNVaDdCjYsIzni%wP7cV*9)IMcCLI1{>7i|F`aZTt`+^2&61;&gv@ z?V8WSKncC?JnekWv?&ySre4$__G8)y@(xI2Z!jKgayKcW98}6H4y-7qqrDPl`C$ z4eQ)rC9^f_)YXOSH_ca!P=1YmqU%T0-;(v?!>Zk4%3US1pS^^(=J##6>)(sn#{7C? z*dEVN|9W4kiJpY;bN;vzsa|09gDQ`+QzwK0t90;qK*mb?@*Tn?# z0}?&2JDa!v!_W|u*QdR&3L(l(pH;y7d&|rJ8@`H;4jJS^#Da=lIp4n7Ol^BjZFk*e z{?=%%P;);5_qJJ zC0E{{L?t^PmUM==hN{2!OygZJx-YcQq&#zBAt8}!m?`rI_hd`Z_T-&X!GKx7&HhN` z7Q(~1mNI$elM~Jt9;?wWJpY8tnGi6Xv1xU`9+ulnNhURU_@H6Mvc61EkOdz-{@%U3 z_jzdL-eR>5UICIKHus5s`)H8hT)@7+mqH4wDpw_gOn zm52f3k43OVrupi(c?~pyZ5_~1u&6WI16-!*?h~H;y@>pQvpv#Yzz%2mvVQ{%lWlEnOG-=S0t3%O z9J-zpGKR)MVrXSiSJ^VqtHybuX?IghPj}_?XQMeabqrT!T2=BU83l* zTRQTcBOsj|GtBX$a`a*A^7C@q86KoquEJ) zpndwq>7}8cU=6zoFx97>C6>Md)9Yt51FNkmT@jJkM9kFmZNW_W{&LqI8_>{p`ZPDv z4(2`50$|UxBq8+tI#CFJ9-GlIF4ae6E6vix`?Z8k>OLahmi`>iUykm>2wumqT-C(s zOGIv6zTiP7P3F(cC}vesq(5}Ft}N5(SlJQ<9?6bVHMW-k{=&KRcVSqp_cr~CB513? zHaQ;l6>zLo%$s)y>NhqvPC&hmYg|d>STGU;MZ5)&g5P^>(}Krq2y{LR3JWp8^tuy4 z44@No22#^raGBAuv9nu_q%xy+%gPJ*^^p^)q+y~9^c^6e9;$F3KwD_ZLt+n{T9~0> z0md=tsI9LpbYN#g?<7KpL|x>6+y0*Kz^^4iI|aO0EP+sa0tzT-Il2D+WeepEGprTJ zmSN%efW)pEJVFq*F-ZRK5o?dZs zgi|qtL(s(V*swU0O}bVLZHQNc+JolY^dP=za<;g7jS$oIP5vdr*u4*LYxHjm4P>D4 znpY5bwzy%eduDMYW70o7)oU~VJuR~|HXrC%v^=J3Yro^8qlZ24vUs4eZ1nI>h=Wjl z@~ak3tZUp2<7F;COYnxVUah4(&e0O%RQ~-j$75p?nyQR zEYR!BGTRARqq+KSMbqvAEoJTKYQ__NE&<9CxhSFg&0u|Q(N+V}5ENbAtqF)PpMYcq|nf{;ax zQTa)K+gZQ#F`~l_yvRyQ3T^vS)<)}b4s!9!ux3nhPFsJaRW5>^mRio~uV25So}#sf z1clYw4R(^3lSGNNvd2Z-)5UHx`l13dKs>yS+ z$d$5g%H;Pt>)X8?-vAsn?J!Ph@yU(UypHG3+mqSV{WV7?!d1ym zt()A69bV()@S1eLROi^Ym~7sfHVyv~sk14)ZY(SG>)4*FXV5SarEx7oJHzW)+98b* zPrpD#-CGL{D^|uFakBdde(%qMzRfySUFLtH{iHtR*te;JEF zz)NO!EI8cnXmHjnFGtONcGb;~X)|l4rlO^DD`;VWUmPyg1z2X!RgY3AKPI8lG`z{Y z)4617MmdRk?w(#0TMFJs4zdfsJuB!lS25z29|n@rC1YvvVpL^j5^>fH76$0)JiTeR`zglzpo%w$JNTJF6kC;1wxt%K@c zu8bBb!1w_k&p~`t(+UeB1Lc7{8I=kOgEmqZS=^m|JjjdR<`(8X+%0{E3 zovLVbpA($!*>Yh0Je+p=RJC;bS?cSK0d@9{j5I8h7KsDL{!i$P{_3hlk!1_`_#xA^ zX%C6+;nrAmlwU*x03`b)?q0H6i?ArhwQHX)J`UdFko-8HOPYEAGne4Ok-kpB7TJ?q zG#4+^i@F~Oa95TWew*NJH8oW`1cq3`P)6RF)Keu}rnEHfA$HYI(odi0yr!Vy)lA>s z(DJ(;#e)W*rF>T^4^P^8W>$IgyG(laRXWjB!{=RTS#EBSW2@!sB&Pt zBn6{+oYabGU7>#=8uz^}yP{y}&$F{0a;FkN#W3<(8d}xPksl6Xl8k^JF%MdGG#9dE z;-^W7dU&#oJ1M=Me!5Xzy^e>i1uziZ_V%y}X|h6^KSvz)q>-^(O%XOv(cS10;Xq*iZ02@?j+R+b7A{I0qFNvqKmHhbcAdfSvip+m!)tSS;eGbU zhQ7);B7@m+unU3c`34)KsIPmmXg*#%HrB^xRlV@}AXJHXN>>D|tXzTrKveX~Qo&0k zS)C&$EQGCq#3&7a{4x$IcV?-*ZbGl*7Rg7YE0l$W%rY!!SGBrdt=i4myF?RM+zyg< ze<%Wii3}lHXr0KjKeo?U4kRVGiYBq~*?*j3 z&U9$sr0kE;D9@~{ljgr^m?-Fn`m7B+m#aSnC|sK1Tl>l1r&dv4t7Q3Npma+5 zwz5rq^<4*Pba;|2jdIy**SD`7roKDh&pFSLOUDR7x=qB{J+E^FJw3&AM9;cC2~AC> zBM#b&iVq zH-ZgCMLdbvlxX64gg0$(kj%AslkSVQ**Ge{o$4=BtMdMAqEi8*@ z%J!Ev=T|#o>Eb`E1dEMF+!j_M*ATUgx)TjG`8wVQE=Tv3T2kBhYMEM*eQSnE_IiKn z%QGm##|#L)%j}CjL%bHRs$yZ)gInEC_f!bA zh<5`zmigy7Zkc;~iz;eGj61}6ap|D<-9=bzWU01qCH$47OtSv58SP&qqCVCa9?hYs z_solQqc6Q>1fP#R)sj8|1I2QrPC5+&x za+(&v4RfXPe`?PRi{w9UroH?w9PCXdUDpL+76lra<c7mC3h{eRN>7gh;sOQA6#)D*u!>Ru-X&m4rL!~2idUA9OZ@Ng zf=}tiNpA3hI8?u24A$->vXZ3CNKGn1W80xXkXEM@B|w-1NRKeYz$1e*WjISz8>*n_GH$-Xo z-{THGKR^EoSV_;VwZh1+_RYiP(&Fqehs2MY(B2{e&I7Ok^ZwG8)$so7FxA+63^{}u zh0v-EgCQm?E8LKIL+=%g7hO*43JVKm(`^AVT{vnyhtVJ8L2Z94>J?HjqVdRJeHHv~ zq>)*Tv3HM2c$Sn(9s>(oQLFeLQMbUXwWtU?C-_1fT4=lN7(@h(PnmHIntk{Y5$5e@ z*DWv3ekb(-%OWv5`*OjEm_-Ya+|Y5^x1*BN)3H%V*8@JaGJ~jmR|+T@MsNL`g&TU^ zTmCPBm> zMoQ4M)=ip)kJu|ddL)Q6UZ7hJWY*;l941710}%F8xJS%4ZV>HI=Uy|Qj!nlHe|4XPlD(a<{^C;80ZGp zAkLe~(Sm_pXX+wteiN;!`FW|=8C_jrF!3i0;7v)GUj`I2XqM*$9?|Gkn9xkySwXYl zno)#8^kt-~hM%HxCpY)NF$2a5H{Yorn zcF0E?+Hr|Xl)UYLTDYwa(7?9Brn+I)y>LFiK-drv5FklRi!Q0V(7wC7xD-ViZF~Rz z3fQDD9PmeXp`nHy>H>cf>Eq38dleQH#h=hCTKs!UrLVH6zN=gITi>2OP!tjehS&Q5 zLk5Hpo?p>J*53N*ljXDO*=;e`MHB!NdX;ALYy7am!Pc3mF`G@*;Jqsg1VXTYWwHim zt?c8YFVT297pag`q8Q z{}turI;v)ARkgKA*;M5b7sgX#BO_+jFCj}^;WSR9sj)ze6x3!>^^QiA1pglPoz&M~ z-P6$thlPevQW1~!T^~O3U%rE~IIBKPQkf zzhuk=eCH86OwCeVA8_Ag#_i-XpI-z*FWj4Gcu_=C4L<|IlbH8UdKj35o~0qW^#>vz z9FCyt#~>{vi=1}qMLeIaz)jI-tGe%JBW(@vN}v}5_KOrI*Qo$7^7Hev;G>3Sdjdec zAkNIMsUZcQoGxH^G2^1I4&@}k#uXCaz5}NrSOPx=_OTqOxPij#^DRkv7rgLD^efFG z=bif?N+48SUbAMOr$@c>Nys7hS8PU3UD&yvu7+2kU_|jI`H#Mzmlv(dZz7@w8lc)Z zxNSWd13)BGnrXFolf*IR=f`;7aD~&DBI-D7>dhU)|E)b-okRoZKr7h()y0RFWW@Df zR{S&B;@tDMZAP8M09`(*Gmzhbd=kQ@3U+If$SnmAH7nqWoq(6M+y3eu_-NE0KYpBQ z^yIm2+86=$LJ)`%Ix#dkh;fmq0T4JU1df(P@M5Z(-G(oFXJ;j#u@S$Zwt?wn_75NS zzzvE553D7yxdjhB96<7RyO=Iqr>3JE9UQ8_UmB(Yb#8ls2^1wNF*8%rVj98rrt`~^Wf~%?zILom-W<{blIR%9! z$h{4!t+0Ruj&x7pUE3Y%SVcrAVFF=iEEy*ZY}{?x39KCA9i)xJhMg~a`}QRSgob#c z@Jibf?lN3ZS;X&QH=K$2=FQXi;~|6pi6k?Bb6Rc^CA^kA#kr8WpRUf45{OfyK$;#= z70I5<%Ys*CLGkqu&v@(OmN#h=*Bu^i8_&*6%(S+a*XioM)h;urV-3TWn^3`Jsfi+H zj<^=eYm;S@J|NyEqf+$TiOn*3x;1C>6PEaz_}ZMIo%?F`sjqV+dhH4Z@lv16BgJow zVPQ5A(Z=))*d$3^4;0as0@`yOnz%1 zM`qzq!$+G=ri)!1NShD?29eW77(Lqw?qkE1K4{SGdNs-22e7Ql-Mc$(=I-tS7cfZS z=v3nKRVgV3NW0`7KD-7q4PwDR%n}09htHqiaY(y>RT{!8**!k)Qy`KWD|Zm&;3%5h zDQH?OW235tRgo#_OA0rLn%@c&c=$VBL67az=!hzg?nr?HQ?@ys#S+&=;5yE(80=ha`#-JT^ z^Sm`FoNR6rW6pU_nohlUyE2^Z11`utpaJ0reLAF-^8(x%FJC@^)9#H~OXK7Q^FN2c@895W?O^;*o2mHiy1aq{ z(h8wlT3SK`5n!*70Q?)}=77zO2tHRwtl@W4a?UW3`*oY?j-3Q;>%sUK zJ2P|c5O;q?d|D_YP`@wB{258uMaZNu$f6A{BCd=~8)F|##pX3{rB~J+F24D{TmWz` zfj$gu=ebHpf}{7XNK*tP9m;xo6AyEq{1@}L`nC0=^*YeC9xTwZX%V}AKFu^85>IVC zs;e}F7Qk@3^ZOP)Y69SmLx?`7m4PN1l&CGUUV!_953)5xDuXHuG`OFO+uIKXi}Lc& zjLIiwwtC3mJloyhSJ2a=L_#ojvIP|ttH2u-c{)q>Gx6B|YB z2PxH>r!VXT3G703{vGu6vJMY>(wduD#E&0r(I@XGpRTLmuL2efVMx){l@A4JDFh&+ zmt8(rIWX{0e8Bm2f)pD3MC$1sg=q71ui|75Z~A3I0RamYIDB|%YFI$jg$|KpvI~&= zkOLgDQa-TGN4kknazGMAb=^cZFi;8-QpAD-NzM|@#Yq~j6!e5)*xrdDx+L#Zby{&K zrDfbh@`zL2%Lm&$LtYxrZP5eCvW~JA=r9YWTg+0 z5<;MH5~3!FkLS4#KNyHeGPdjxyT;}1=Pj&HR#w-P*dZoCO1lDppdc%_!!702H(C$ z;p-cBT>4BKJ@D>-&g_6gx_titI(x*7jPXz#&8^Zyd1FxLKmm-maF}K|_1zI4UyD=gv z>hgMKeCH?G8ZhSz&B-yZ-)MtW?Ze<;q(-rVkB=BKr=q*3XZ}|}AOnnG#C|K2A@St# z;~$S+|3bP)zsLWl_)6kQv890uv8_DkxR|u6?B-508A6{0T?QWvkPQ+gr4eaY^oSPA74==1wj@u9o_6hb1yFuXj);@ z-#72`^w9ibFC;QsXLRkr?>x5^n>GKk89tU>9}aV8Lhx$L2PsUfkGMqjViE+P=N*kf z@2oRYj+VRZezI$cI2q+>T0jspsIkF2J3q(qxU5Bvgjd8-$OrgiZorIX;o#_PYy;AH z-wJXCp(I#h`g?){bwVsO%_06Gk}dFkL0oL|Jd+j%XM@t-0=*vkZ@F*Y5U9N(z0tfY zUuk}prx1!dz*NkfH06DvNUFmYB}Ge5d*P;qO$S|0x7@(Pt3_l_`Sb& zEan9+m#~{gMn-%fZ^j86M2?WL60IpH5JTdPAq|2R4CQ{UocS!xQ+jdIpr9bG>(_h3 zur4)j%RqhQK97H^~tdj5tuNCG2r+2XHq}g{0^^B48}<jbMA79hR2plX#Jmz<2Uc(IqJhf(+foa4*jTXJlQQ0xH{XOe~}XiCa9G4 z1>R2QMTC!k7@mOy0xotHTxo=fhm?^J9TQVh!l5ki^{{&Wfq~{4B|Vp;e1HM5Rrq*3 zc*?B5%aSSs-J`tP^W&OkoKLME}r0&?WQ&$6*g{^w(AI@XR}Qc13r-z=%||f3z|fU_>t+ z@P6{=z<;;v8$Cht)7NH=Eu>n1r|JZVx5q;fs8maf1a3XHVS3WDXVJ*Oh`v2YpvAzN z45>kl$%LU?>w)xb7v63ekw}2z5utBOf|;;p*|zbL+j2J^0tbO?86pUjLZzjp@W=PT zP2cvr=FTf4BZDw)VJ9ToPS1oCf@9uapg$x*K3rN$h3+o2n766*&qRYnyeZpAm6DQj z8SH5}n_F6zR#q^Wn3zB*1v7)7;y|>(h+jNZ+s+m+Fc=bCIVidygPGlYDunWZ=@&?x z1hy3Hy=l7%Q>Zq;5ic6@ZXm~Vk>j77oFIe_Zf@?tAVP+I-?V4XuJG{@|Nr%XkMTl5 zD8gz-h+JUh43=+l#C+aAP1IrL;FMMFk}%uHc3_rb0x=)_#%Yl=6a@C`9*vBB-fvi_ zDJku0r6eS1;dDo#5CT66FannySGVmMVU(<_Y>4MeC`urkd8%{;RFMb}Fk&=5)zIix zH4CsIu*8E%9vum{;_aRv14R&L)JF0y(1rFC~)Z zA}^InHJJ z_V;cphz;b+Z9+mq1aYt%$Owga`7#iWNJLDL9e892dlMlXlYCwy$2hHu$1|`lc7}^2$mzL@N%A`LV=iHQ+T-YGg@7B5M)6!vpmWV6C8U z-%*mN{5?4{gCD1ap+%neFgOe4b-mEtCqkz%2-NW2>LAU!%t&zr1OO#Glj za7%zs%s}2C!+PP~Zr#4Sl;XFGRE6CL>epHaQ<646#!5wUZYM_|%zpgH{K?*z01qI* z4U9DzyGCQ6uOAIq5`dmwx3PmDPp>lI%@B6fOISOE5*RR|YJeUgg31<*9Gq@KEdQ@) ztEYT37Z19EuL7k$09JU+u5NBVf$5k{-LjwWt0ae}aNG$~D(C(8w@hq+ zKENCVVJ#))M(%f&z3)(6;euY@8f69xr4~2AFN4JTmG=f#om4CP^bZOnZ1S58@v{{KbHEXVL<}MA zH^USGgGLYT&aN(Gh#MrJn_~-bk(VHqjOelI091VU&t|1Hq%gRbFZUvd4U%QSoU1yK z1A|(-xViy-NZ$cWN6=Ix8z>ofD17xw4#b9#G9w8d_<``ld4s3|5z-;-dVYWg;2?w{ z4+gcr0Pul*ax%Mc5d}&tCW@V9bw15SrX zNEnRC!cmK_JmR?{6|?2(^Sx==|0lCsB-e@T>SBL;+|9}=I{9FnuAXdr4JVShz4Hgy zgJGeC)OWhMoCX155;9SwRLc8l9gAU@&JROx5V##lc_`T^C@BGneKont#F6sR&d&O- zL^{^y&epBk>8D7K4Pu+Uqhl=x{|!Kq!4@AerL7eaSG|2(!P)t`^xv~bk_W>I6OX_H z!~&)a$`&iV33vN3#tj)FtYz2XHRd(1*^ljzsv-d5{JR7=l8{+!hx^DbmgvzZ?=ike z_VxF-hG$QhJE26@aFA}R^LCSbp z7MPG04xE`z;M@@)9DkRV*q8Jck?HJKhkf;;tRdNQR~Rwf)`@ThD=V*NnQex8w)Q2} zZw*mbX?%{}pc|Frb91leHOR`~qLRbHTvvMuIWS{O?h2rCSk$of=y*@yxbO4CK+A8fe60L$deycHy4S<>nG}%v z0W(p)c$7s_k{Z?-J_#LG~of)InYejZ&q7zpvhq zjTRe}TJPbKHQht^dUfx~uHF-SVK-@}5ltOjbaKYG*s1}|SnTX)wYR@jU@omH-?+u* ze1%sA@DhX575~}Oi^O;aa~+o zFtM?ZB%~p~fOWnu5cm|{~gFtN1?wsCg^4ZI;yDO^? z5DqRLo*d-Ch zSXmIV0s3|2=FO(b>mR>KOKzr7`xaiXp>E#B-IL$&TuJOvP!x4peEYMxN{{I5oSlvB z?b4a=#Rj{(az3t)ueikHCAYp3t&??;iF{VpWA?WTYro5){}N(AoI|{nucp23``&?= zh#VYvVB+8$`<%f6UG2H42Ri``0h3OfCy>?=!qX9V#{`pt`J>6n$pTmoAXTcbU=TBa zd;${%vD@Hfa&C*I!@mlgWx?tJPRhp!#HIxP$ZjZ=TzJg%twdfTr>#k|4?=y100WjM z(3k|YqZ6tnVtV?gps+)9eF(M(zQGWrl2THv?}%+4`XSXK5>6p&M;HlkixGY-q(exT z6^?NzVMZKvUM%(MvniUgMfop{>cq!~eK;qy6&Svq*S>XvQall#%xQ=v8w7biO-j%5 zx;+5$f2!HW9^xTM*-!er^f2!7#h7fZ~GfvzYs)sMd_)m zl2VkXIbf{_wOc(?j07ST!|vqdJ?LP7?i*kd7gOab*t38v)~g%k2THhsSUbo10?;+% zp{9qkA}<30!(0~*mB>VL`mK`+V*nn^{I`W6jx9ok_O7(58TbRp>jUn^Dkeq^xFnJU zB77i;KGr$4|JRG7a-*Z3I#|GKgZo{ zr!4tQDAf@;9>Tsrt_tiUD7caA9|nnR)}rB|kd7MyX80d3L%9ZbZPEyDYTCPXpJ5A_ zG(bFI0Z(hN+JPQ-oN5XO8tR?XbQolgfC^zF^{!sIk?kF4fc7sTelyS^@rSCjybrqy zV6<>Zi2&wm+NKks$jM2u4E8DK)qqk-+)9YMo zY6Ldm1f3u66=|WUH)){&SvTw4!r# zSVY*ZlZAf1&dQ1o!Uo{ob@Eg;BZM8}ib>`30?>LxzXAeibF<_bXc>B7luanyJ+z!M z!20c7Fh^g)T7IdR+XTLGB~+LC{>UeHL@+01dCYNP6CQRNq5cDlwmB7R>@lKM>5&~pcR zDIczVK!w#Al|(P4)s9$ogw}9$M`N*wO!-c(HSKF$fyqou2M;L7@kJR z3Ltd*znQ>NlfBF!qc~~nRSIco?|7Z4Sjneqi zQI9xJPQXtL4Gj_8cewQSFW|9&_%!D2TOnwwLE=Dl6Rs+(+=$3XLgTs5G2m`2t)8&o zaabfm-!k`OT{FfcyV8g-_@)=?5tU9+1_|xerCm#5BV()>*7mxSkK;6P_ex5p9uE)S z%o~mK@(}a-zD;N^6d&LDTb|_@CdvUDyLP&dgI^_*msxA>zH&*3ias?dLZS*uw&@m&Lgxh}~t*mWUqq zBH#!7z3X?BwRgu#br5$3@Vb8tVjxdCDq7mdP>=%dM@ zF6Kch4`3aDoSpssm*8ZD8Xh35>DAhVvLCxbo}tQJ7METBV`A^ym& z{@qOdqd83klZI^j#}8+(Q{m_8DtGSOf@W-@)NZTvHDacqdkHBN*qb*k6~|;G>S!(1 zF~25rp_i80J!Nv~{k^Z2n)ZJfdk=7|1Ga7a4jIW-p~yx#D^d2S zkR(dVsI-hqS=pg!G$>_NLL$njsQ%}rp7;H}@BO~x_&c8WJ)Wm>-@kc{^E%J-T4c6a zs`YbHcgp;n^@I7>c;owdYf=m}@0>NL2-fG~(sgl`HFSGh5&g;KT#;wBig#gV6MGiF zz?y=b+=GHlX`7D@ZRHr+AENs*P)aJkX~UdX+-T=&dz%8wC2HiWSIXcDQwN`vGzV7v zFFp-E{toiNd>EiNG~~8?1BNvdur@LW2o}A~=X3>iL1l}IVyF3gvf9D@aXkhbH?H5l zUD)KDaxf<9W5S1=us{o_gHi6p_3PJNRX9{vu5;X*V*59=cRuf~@!YvnbjoT4R|+G& zt#Ngf-0Og}^9cz#w~fK;g`F%1!LZ!h)(i$GwU;zbKmy9c6224~z+cZTs{)!zP$9jr zEw9)Pol^&RFcYGVI-tv(F?ykRRql;E+YklX1jbg%7hBqW?+PC>Oi341Z!uCgS|6!h{lMl*)lK^bafz;SK7NI^rmm4=;%_H$r=rVad7LEJ z6)u~sl3e;^^m4o5t>YVFVy?XCH+$21)G>kM^4RLUX=zOkTB#UiX?4C~U4ErIK=>2S z9LdR?-KI0O6XZn1G8nScr@8PAZBky(l&76-R`sfpJ$ar#o?@8?>;~PgSIx5)!j(-Io;yoPNfFGC z7Fk?EBE6$U__L?_>+&OOF+%(~Z{^L%{X?;v-ho0X(Qvnp_4@F@8VP0pqFD!fMz6dq zSSQ$;^@Xc1G5XwvP3f9JNpk{T%Z4!+q7N-JRQ;Db`t&x}va!AQ-z++!SDLAv{-%<{ zNk{R1+0Rc)2*>$((85B99u{=RJbtflVJ_L#v-Zy#A`yYhfsw2jQYL1M>^wYmz;;T! z!)EL9ZB!o>gwBq}n^fTg^wT#qB(0t8=9kWLLV38|z}T1>#DWF5sBE0H2Z*YbmzN?a zGDI7L`vaQ9QI%#JImW<1F^gDNEZN6-@4wMo`8eEzns*ePoPZuA( zxmBtEEKCtGnPp~7{%AN-i;DTgnb+leb_18u%(~d=p?~bFp5>|4k6esoiySM?^y?`K z7q*s5S)9$$c3Y_>EHuz-s&;adVEWdpotc{|cU;=?L&L-CKzSq& z4UABhTI5wY-mE8kIGkl6X0Dh!(0CFE#(J@X4w~`+DJ9YL1E^(IsTX^v{UVCT%zl_9 zE&XN4r^`x;`Ie0?r)~Q7Z`{&hS9xWY@ES~K_T4}Z{YTRpY*+kl zpYeVCrum~gdMk69@2txl3TZuKzQEV><&5bL26}1ZL#wZe_c-KRc%EcY@l$0GD|DRq>{;jReC4S;hWx}v2XY~gg2An49y-^wG9_RRm@mD9=6Rm!29Nd8 zLz``Vv>36wd>ZB+T;FG*dHTU~mgxpV<4H}8o#$5To>S3tm@m3DSS58rix)_55in;UDt*X!V(g~bSg1%-PJ8Vdo$m@ z{vWK2!rgCr&y(x|7$;Fg6;`hFL`gs1Ur2}u{_x86>(u~S)jIpRSM8n$yaxgiVi^WGi>yuVgRPNv6Y|iSx{P&ZAt5U*3LcM3(!X`2c?{e2Faqyj6 z)8&8T($onCrw58&jv8x8(os|{`1Oh4$U-Q75r+RVD?0jL0j<^KWg)@^NcQu#AlC2P zWq!j#zVqTMV32ZwKS$Q>JfQsj=TEI{bKn+bE%F!@F}s{3{R1`FRbd>wk+wTmq?)kN z^k3->23^5pxlPuj9K}ea6a2f&ZS@8@2D~g~bB)CwH#8hfV1|wOt+=~N6)oE$EC0>0O`cKFCjNK6AyW*2y`aTB@Lr8DkW zs&}$j?|SQ*;|Jb06}`siy?ur{E8R8+x_2L2Q3jeYI6KjznV)xpkc2D*Rm;A+*j1{X zZt9hy@iyW2J?BZV3b-(10GL|4>(1Sb~S1mu711IK(lFyFw+VXh7HmwhYy{*Ln; zTyc?d5cKPSgWQ;p2Egaf+0T8JnZj)KE!7_emraX2BOb*#SDA8>@| z@_4C;VwhZ1DyVgO_rAA`5)H-HDxHggwEj z6!0JAOt^ujZQ?qz?KVcq)HhQ_MY12ta>x}lk|YGH^+t^^L=PXjyD^-izoRK}@YtP^ zMvc^;#FEt4j~Y#;t!*G`qFq4@{tj>8SYYt5`aKpzF3GWnbMPxjKD~Ign z*h-e<9U7CAl41sM4%k%l(5+>V3;4eETp#!T@#DvyKS%aF0nBsO=!}Z@V*I;dP)(Q^ zt1`5BkB6`*uB#+PjqWjmHnVGS3a#n-j7)qB$cIna& zoYri%%zU2=Pwsx9m|`n;sFt&L(dH*7x>Jl<&&561&zG_8#BR;p$Q`S>`V6AXBf~0o z}Q6{?x$6Y zu9$JK51Xy)+ILAc$As69*-+{DY)DIX8F$>+jLoMl0+W+!UxqU`$(lCVX?DcdcK<2RL^B>6rnb4;9Dson;v)Zr*8PVp8Be4FI+$(36U~I=1%q zb_Bb91@b_~Z$0h7dpfA}5lowu(RrdAk8u9vz z+o>g4rDT8i(Wh&`PkbZ2;Wiwq4*&8`aRrx@=oWl<-$?_Cbl)5(`Ne49jeQ{I zqW2*b`Fh8Nrsc0@o)&~+(*E83=+g5Wz&FTk;gM}lOG{~sLecze@0?aBKq3p&8ZzTF zjy5-&1LNvnzYQ0WnE{uok+X%w#0OjWMvur+Oqn7gSo@1$$kXWh1Y!lpZwKkx%7c40 zpmce!Lf+o}3JVuz?ZAK0x>KOze56)+^R0aQY!;j3V{J2!hk5`zoIOij@%oF8~epL|lCgg%}JZG37&JOVRgn=C2lfjafd~uz9|(U3Y0y zI^5k(I+Vx-{3A@D{SpTw3^%;sxcA#aPc&6i3tq8~R06}GTT3&Gi(89hZQTv3>LGD) zUvoKgQy!+bC#5Uv>atqo0}n!w>AuDh{aC@gZ|Kh3_dh|6tBPxn_RTus+^^`K^hmLg zN}Ig%)eZ{YbDwWkxV6M-!)YJU=UeMIJF&IF4iXz+fHID|+gJ7$UY!%d{@{F*Y{<{L zZP~S=_KNI{#p|bk)m*UPPS>Zc)7{?kc6Co@^A&cy)h;0aN7cjHTEWi#4X?m+*2JS7 znhet=f)*5H+t_>n#P`|>UH5J6>RR(B`QKGzU70c9mkjhFF4H)cb zVU7Hq^g4j8@`uLu^?L&}rg12UjzTVXMBtx<*dMm(>V1?g7>DRk(twJk67Gq7Q0al9 zPs6G84i3^~zejU33k!v)p@5f{rKQL}K{DLcX>y5?wGRB*GBPu7+Eg-u;`QFAyj=a$ z5@G!u8gb1j{~qrB>tVghVmq)v;z6tcnAMe9J$hx|3BLLZ666}24@U=d@&vI6M zKryGmnr~fmg$H{*9!xh-Fm*pI9%Z<6W7PWmBPTMoCD{Dk~5=bY~kFUgJ?W#|E*<<7^ube6U<_H*sf>Ec=i-LnNHB>k|9&CA~sVTdtek3S7v4 zyQk7!CoHpCVorv8LemS@-Zx84k4nl!MoKMQUf*OJABue~_X_=mn_MxbMyD7#`Yl$v z6AFkt5bE6emoRDW%M;N}vb1sD8(Q0R>|haRj)C6Ju%E-TY$MGwe{bF+DC)XyYhn~! zX0BY}P2a+l;rC5D`>wjlNw>pZ&7+I1ueFDGO!}eo-u}Sjr8zb7^(!yGU-a58c+~03 zXL+6$p;VI)Yo25y$&AcpLaNQj)5Mp1%kv6UR{^&nuN4dcO!w~7-efALIAdDGT_w%a zX7+OF`ISD)h964&Zj}9f`}ESfS58m1RzL0NIBL#$E#=KTF`hc*;bhYz->sMqDY9P6-!ic5Gl^_g?u@~azuI9$b2zc_R(d7GbD`a)2 z8OsPH1p7#8b~0^s*y<#g_VUKZ3x#6ezw1XGOGs;aASbf5&{JEd?(6l34;{VA*vfs3 z?_b(*cXjvX%QFL>{QkvcB*S5BT;MAf>zOU@)X;9EHFsvn-?Q#cetp{*yqE9a-%dL3 zWmXjV-6pd1lC0f654qaA+u{_3VsPB1(SHndw%o}Vzje3yW8ugHeLvsg@pnQK$D4X% zUU7;qkY?#JGvkhnw6}74@`{%?KGfrE9y9*$5L(>t-7AhnBc~9bjWm@I1zgsfSDaQ? zV<{{nkR{(*eJLZ()VEt&X8E5pcoNz6CP-VkI9H@btGr#K*VF4^6;kPOV1{SQql>3! zPct^Y+XkumGG?)F-!A;&;pg9UBH?y%i~Lye>^kL!)T2&i-TvyX=7flXCM`x0L9_S6C)5@xO-pqd1|naC!X+a zeiEW|i1$_YDYt7Y^R*;q=*PWOQ4vf^Z+f6^E{iOl-&!Uh^h;RkD3hYdh6@jQ5A8f= zf6mFM?#rq2@)!LL?XT^`>hbM5&R=AfdZ*6csH0I%3AWDm7-vo^o-J_TXT3k{l|EiF%Mt^6wA+*on43 zO>QmUR)2Muk=Z(*0z^e)AM-04zj}W)vEsh$EdHvHd7?ACD<5I$-gqti9^(7E)D}y! zrHJ*!m>-yXZNz_l_$RYb+nQ*=4b9H1i<{-LfG)b@B3rR>;LNr*Ssp! z=bCLiq<#Bg*y6yI?iX3tF&Kfm|i=f%I-K3`wBFXpnj zuv6}a&kAb1Rx2Abt@gU<9eX`9#_;~?%WRTW8@qc?T;ZVwb43NQ4r$Ui&&=hEzmBD^ z52F1RP51jTgZ)`_)J$H_k7qd+v{ z?r=KQ(G@yG+TZwo%)B3PL^JWum8^2+GY!b*+BP@Fbdk;#-RW8Z0cpMY;)hbCE8q5| zT1*Sl+cVMVGcNCXYv%UTw$6JG9Q9NFI94mv+IquYml17?$8HW^-;tFDhu8C~vX=0Z z8OhtZv^p*)659|Lo)#Pozc^%SmA(4?$SP)&twJ8_GiEq)+PE;It0~G^|Iqu5F6*|7 z5v>7(gZ49JRx*TV85^7M@zlL-Pu`GP%i@w~aq1dt(Q?3y0!KdToDXe-Lf?u9U$ET9 zA!vpa^OgrjV*__rsN84k^AzdtVG2sN311(x$ocs@8{wg+ebb`2JOk9`*C)%~Q-<|f{?N`UeEh=QVPiML}VZE`jt?t~*_JGC5W_)hfui9?^F}X5MqNVEZ zb(^~7c^^Weti-aic-O4>KTdT2!FwDF_FMnESrc+sHz&wRO73^VAH+X~Wbr}K@Xfv= zmGc*(9|R6-9LM8BD=U}BebE$(T;%rV(4qCk*p@-MKcI*T`{el#Udzak#Ksu!H|;wVV10i8s-7M> zU8sV!!xR7WuaR|sS?E)e7%(~MPm79Hi-i7!26kk5 zivBXf`%sHRC%TtmthnohTuyJ(rjwx=m%5$}Pa5eA#%%4xcglEK}C2mw4#@Cm@yQB~O|8AlSID_3Oasrm7OwV151dj{y& z&Vj)epeaN4`yPd$()(!Kq^Z~2l5Sg)0<^&-qJ@hIDTn|CcJ=hIF}^?E^_wZP$yrnt zKHA?WCRF7tB^z$}4ckouSPRFdV{i~=aB_BmNDd_A-cS{%(pEbh9(PP)RMhA7ye#@B zKY;cVb>#wp%qT0v_1@wt#+-u|Sx+1kw%0{xL?I!t=^A`EQ+r%E^!sef1)c zU|2U@+Q4c_qqf{4%@5mYap#A>msXmc3BD{ZvQ3j$8v|6?bHYo$oL=$`_|e9k zkYR()N@&ggi>P-qd~okhNJmHegUnnj z5j$3$bYuSOk8nMwHmMd({V9nV zof~z`94P39|J&`WqZ3;DUzhOTr%vUWaN4?y`^O(5uB^f$DZ&cD%}Hq}e06kw-AAvazE&v_R|NQE|r$d*EewxyvGagXbamNKF1?Q;%>!N`H+B?odwP0Si!Cf-1NjRAC{V$%u~Yk`G@vZN z$hKWo;ecy=it4d_YvZY;r1xYkqLrTac+G@8xavf8g)nmn3w~_%b3E~p1n>}QP6kCc zZrl(n5d9mRh!{z$C%LvSrL7XcCb1xj$9D4ju=ajYNy%;1e=i{Zzlfs2Ne?j285MXr zMMX`@mu|nsf*EySECHYxb}Q|Zk3Vz`#98X_fvJ-#*_2}pm`OwwB}Oj%f#Wc~FR^;; ztOzf(*WFgkHys}GlR`~DmtK7L!2TVe4K}!92&l7f-{%u`C*$MgFSdBh`QM)aMQ120 z^mKGsz?-0%2_PJh<|MOdwFik3L0$!MA@^w+APgIv4GkTR>%9-EKZIT#)p51sn}V{@ zWs~pblnXUq!{hK(4NWyU3EbUDLGy*{Avkzpa&pY}Xe^QdYFbH=d@w5{K-NRYj>aCW zjKoasPX+a}balqep$G~I`P0yz8ma4j;Sl3b{mhw9-Z3OgqJm@#WtKY|)dU&hZ@!dp3Q(^Zwyr;yJ;arU-ng#ls$ zvtajw`(d(tO{tltvO~3V-QjK==)7;A;N1>OVGB#kqvYaBzR%F^N^Q#5(Rnc|2Lbcf zyK|EFAZ73MQUUNzE+wfZ=}SQ2LVN~g10yB`HnMUaEo^X5=<2Ktm0hwV)JP^2oF}os z5i?RMB314>@@v(_O^ZnRJ~r;ge-Ha1BG92^|MI+B&h9kkp9 zTYqR>0eHtSXdvm1Wj5*Zh|39~9{}VXe%5mY1v`V;#54~axNRCv6C7*hG8iSn>BMa7 z*6F^!zHqSzk!Ci4aYhjMfH-#>jOu7igxpHdkl51gBt*zccO!%avA&v zw?wX0n4RJBh{Kv6K5(%(UhvI~^jWRT4~x?6pj97?WQ{--41ex(r$j}$(O%@y4cM5B zou_F{&iGF!iU_=%0Oyh}!~T03(U-*zeU^W6UVSbWq{2k%i|2d>3BQSqfcS-5G>jd4 zvtataD-SOo-BgVE2wuc=mF9JzI^zbBzd4x_LDWWbFao>osU=GQ_%4xC z9av7xp_M^ET<<>KJGlJ(`J8aQIX$Ni-mz@!c9rJmIAyp1gdGM0ngLSdeb~RIY@+Rp z*776(_p=U-4~B!$a@pui2-#~vVnC2CObhd2qkZixoKUP(_0r6D0>1Jz%)*nDZs|Vwwuso5yLVsm2;kx2nKE?9+DMNi zrj&?3a=SX4=@Y#-(LPC!%HCu4J9S2gJlzLBgSfBromR%3 zFP^?c@F@4*6?+s#5Ii*DKt=j9F0L9drzX69gV98EJk^dLv8I*2EjxWB#Kjrw-2p0m$M zAOfai%k2-CM0%anm&PCwwqyfiXQAp1`{r{w%dfa(wn*T)hJ^EHKhf*kv&9L=2;ue} zjnr}od>LU^Z<>HhifG;c^{~R3nRxV-QjA|UAI@IrWOp-HR0;!F6{9oeSGPdLHNDk( z!$7&*-9I4*OWXoo$GvjS+qr%reKx*N4if030eqHL;(iR}Iyj@8?{6>lzw@|fS!8wB zS8JDoH#afUkI#^j%s3CggKu;@3Lj*S-xKA3N~+7iF76%m2kxGht>6M{sHwSxfB>1A zk_8hL@;(Ht^$l7&k9eBLdvD!y^zI5n z7~lbrZxchGM*H8oJVuHi8N%2^Gjf$&qTvFVHehi{Zp-8buxlZ2LEn?~)U+6@6>a5& zig(7ra3qB^K$zP=xi2NXlC3H`cVMvoWr{^AwrtocrFdd7!dtxU%M(M%2m#f1{MoZd zL2swP2!79%$HkX)bgEyUTC|yW_Us6xHSb=@rHO_p1cRYPZF+}GF-Q$e;As$`v3i3x zu`hokz|ZdivsT!JyhnJSb2koy8uB(k-9bDy?6$LebZU{%+QR`!6Xy&f@s!&_KjAxh z_T0m=oW*|r0vml>3^F&M2Es0Ac#W3aGxqe9XAo(+P3-ZReS?p^HuPAA*UJc-z?SL! z`SXE>EQ1K%D@sRBp2#;cF&Xrp=e%Qc!}I5x{bJf4b$N7dJn~ZjgMphcoO#f_UwXlU zbf_aX_VgJ}wD@f7`Lw8c3{`U;HJ>m?rDB!#U~^0;ig1Zx6}%Y`)sW&x6sp=&rSoE8{h}&N?7rlEIe%zyTIq zl)xpx2-70p*{q=Mnadr~%h_X!;mvDSjWv6Z=UciaH4N8-Sp%QDQH#=736OK3boLb~ zc)c$ICPfYoA4IR7TLNz_9m#b@Mn<{yFL&M;(ACiaWyuD$EE4s4IIQG-0n?Phfb3uG z&*V1<{|CoKqJT=ggdUA=_Uw;enG?1w*0r!m&Z}L@$H!$n^~$4uuRvzUI97BFd^K*Q z1k@^;+S<&Gr=?ZBKb`WJ+v9%(RZ`pF=Br!C_XHGHtj+zfKV?T&=G*1SJmB=%f>p57 zeAlQT?z~p!W<+1wkV{WswO1D$FVaElgs5Jc9`QP2-oqdjkBrnlculFxJj~3@q?s)` ze%l?Gnvz48-|#!@T{v@Tggg@3UcM}IZtan>mT^~id>2{_vQ-OPw7b3~CM#gmf5TRvs+%<8xQ%Z0q^7yty9QUI~OWO32tW#=w)r@lXd;Jvabs zEU=A^ia3V0C#hk#)shoY&VDCKAx+LbCVJl)-ZD&))s=Tb^-d7|pw}z-M?4yIDe7mC zkMNCDuTF~WQ#eCrFSwVO8g}7+Xicw2>q2J$4Id7UjO4(rjcjxKvVVT-<&B?4{mG4w zh}59w*&@G#XM%qU8f_Ywkw|_h<-kDUCqG$;v7vUeg9pIW9yPE;!DNFM0UED$sJQ^m zC1L_h;Wt6fzJ3HOpdn(Usvwp0<4XSpW4`39ZRy^U4 zV2TA#H8AT{JL^sxUP{Jz6N&-y`rhx0=YKTIbQX67FE@L_r zRe0Bt$CUks#NqnUghlUo_E7$Ny;3^()dBedNs#sz!QYA$Dln{yf-s8x%htBky}+v4 zY8PWje_0&NL-I1YVZH?5hS`oC$KZek4s;h<0KhtWxH7m;6tcR0b(=V2X|TV)3d)f| zi3G0~eO|QK8if~>D=U1Ib-W_sRyP|3ELn=8!+_@x=C3P!EOZoS-nn~MOEO;b>XxIT zkFJP&&fHR>@oAOQ0<$Bt?XuGMfF8!6ZM;#UGvZ~*Ar8uUTTlzCVVeyBAsGgv`q2Jt z%3u(G3Wj8lS8RH*5bWje=qF;bE*vhdTP4f(7`|0QB^|$L{mML`nlf}yY_NNIKTy!Y z%20!o6-xNxR}y?pat?Ar;)#a9{g(L1W-`r;Tvu{b@&!icTu+Jm=>`k} zzoer*lTe(0KYAR5-~9jhA4wDD71@kld60&clLEuuw2 zYwUtw@0-0ULUp(7@f9&fpuVxsoEc`dybhKbh%PnUS2u&H5^N-+y?_6$$3C}T&pcKm zX=x=D48!GHajH`oQ8q9m5lNVQVvBl9&qUv-Khd3VK$EViyJQl&Vpg{o!gFf(FVS5Y z=Mj*q+S)`Joqc_ae3S#nfIA-(t;(AX$}}meabF0Rda?JMjFIA#R5V!T*SCI_W7R?J zg_iI>cj%RkGg(7lNi?$K@W==U==x12MKAT@9IZD7xXo zq9R+o@)URw+vLE-+1HxS0qQNR0QgTjk+T(;ccdSi#-O4bY685+v^t*r&kztwjuYJq zFEVmB8BJrQF9jR24S?i11nW>y@}O}cj}q`uD9TZ!DJWR|&q1Qg5BDVmCLvnsK}Isw zxW+e~nu&(09K$5 zmH;Y{4(ahk(Fc6i4q@rRqeoLNyEiQeC6QRX_}a#X?xu?vZQ#2>*$CdUxCVqjX6!!3 zVtZBw@i5_a$BL4i_O_w#v5!+{EwYM*W}Oto;AGaNxR*uaS*N^!(v2TPd6jdIac1D9 z&}Bk@_1Q<2WE`+vWoX*jNuqRsRiXn0Gs3hG^q|0l|6=^|TnV5vWReL~;_#n|j`2PV zXb5O1k5GY6kug3S1~~+ao15rbOEjlkBp-BZzZXrLZ>c{=nLsv@=!K|=QkH3p$=Zwu z2PP~G7=pt>5CM`d12odV#YcS6bL*P9+m*9nGA)Wf}k%Vllc{1x|8uqXlf64(ta z4=bNP7l1d4Usw2?pQGobr@{mmaBHqI>qL*w z2trv-`VTZVus6AWf?W+I2UaB?OS1Oo`19k!pJ=kIg*6uMV9OaQURGSi8!%UCAEUL5 zePgQ1EONO;!k|6|3LsG)wIPOBz|cB8JGhSx-F{ea35M@|wA2K1!f=}E4o2GZKC--% zR8Zho_4!<};_xshG52sXAO~cF$UGrmWmKTxF*P@jxG?!) zA?boqfjwD1clC&GfV;P<{j;{wxAmS+9an<$w$=tk;4ADcCPypGkSLo(Ac7fQssa~o z27_>6Dy{hWL$Ixt-QYSb8^Il7X2`*Jk!AYyF05RzmCPeDA*~+7K!I3FkdbZ`dJeOm zsa;c%Uzi#_0B?ipr%$=?yF1VKCv4Q1#vtg0c<5M4LFb+U zs|rRQKu5nrhX7be!K4@2qZ-xGG57LcvmsU-{91@6tr}u5tGlBgEx03@2}nWHV|}oD z7CHTZo(ub#-Vrt2JrXn6+8K&w#tYb#hxVPIDrtU$q`21}D^KQxBgZ&j z!~ms)b6oE3e#g=iu3RXrLDQSY0P0O9KExFJi)d`WU_iK6~g(|MxLp zBmd&_Z`S1C(||^Y+ru_mgkXBAxxm)9oq+KsY9CI-2~^aGtSAK~7A|DNGcFEr4~Q0_ z!|+}lJ-D>5gXGtc$A*Q4Ffs~GuD zn)tSP&!Id7vgcy zrCbIh7q=yRO{bS0@bz5}tqAhaF!A4kdy-LFlKr!kVKwvsh(mE0OEb9|TmiyF35`J{ z8}h`Fm1Sq(T#w;R7sn~0h^|F-M>v_jG(Y-Qwcp?0YpJyj^qatn8P78QRj!P#&uF~b6t{yNMd>bg7#VMig48wAi4Wf{3{la+bj=b+zH2J#3BgfRZN z-7)|%gcc;zz>SNop65e$h@CJXGX`Ou22Kk(7uOv6bzWXxEGBcpK+&%8om&I;&7fK6 zX}A#i)G>6+;_#G|xg<{o`8R34ZG_6r^K3dgZD52rCwm?^(67{otq07RO|k*ezGq=- zj(P)rhEmeyKdWEMR(5%?zds(#HSlZYkKm^VFAQq1uZcSXdwxu_l6Vf;*B)QD zb7!iDI_ZsJq?sc@hu-^Fo&CVxnF$No3o_D-I4YeOQ;Jb}px~w97%cf25 zPR{h&FSD@GTp00DgSJ;ziIQ^FrD*V@~FRprjch&$WJ zBV_BDJEV9A=;SR-V+@?@Q^)?6RbIX~&~Y(5&OB4Yvx68;Z}QcWHqWv-iKkEd`2VVR zEfsD+?1L3qTes5UL__@?tl~);*8n(*o7=TY2p^!n=%*;)B7CDS1MhPA1kxQl5;`uAE!L)h zun6b-S`3`Rcv3JPfc+6_zgUm*l-2Gt5;udZ8-dpckQt??u*gVzj3lbqYSS-g_4lnP zweIMXKV^7n$f~y3Jvrv}b46O9{j);i3MGE-l=pfmnFRG5E+Yb^Ym=e5m@rk9)su;ZFjksE2>;~KQ}&L~!t?EM zkgIi{5;{mm1?@_qktEu;-9CO`%b#)J(zFY++8E&tZi3!?>iQ_^VYFE$=}cg0Ug z@s^iwDOi~B5Nl-i!zYHF+@tX5(99@lQGzz!q64aRm|G3xm7+ZV{rk6idq;IOGu1=j zt~9|P02i0|fzHP>WAN6$ZEFjcPS|{8S7?1p{zC`;Yr3gN#z#g3FR4`hnEn%}_-|L^ ztd$}$nmiN{y$&1*&B}60N=?1AX%S{av=bVm?40Ls(9To5qZ!cHmk#)3%|leT0m9Ta z*q@64ngQ!4!e*dj2HraSV)I50W7{a_&Q&ND(G8%(w~W+Ddyb?++p$2XAe*#O4Ie|p zM^T4<0r;4QG*b)D1X#{janJgciVaMkUhZGghAlIoXQtM}pEi1-)o%^{x>8kSJ%A?n zQCZf&c0OVax>CKMvFG~COibbl4*|FUb_ar%tMQ;M2T=e=>eV`HmTRI0bZE6J8=jw@ zDE|)^KuzjKhxZb=v_NzWef7%))82VuiU|M$0|oMy1(HyKjKw->$!drYwu?qb%a{9H z<-TpP6t2jkm$&-tMy*T}GmYQh?QyP76?Su<0*(P{^X1k6nv|-tG7pnQIoa9X250x& zv4m&9O#OR--7uMD5K-u&LBh|#bM3JP?zJm18-WiS3hz{E)u)WaXm0&z?Q=;&B21RFX* zsM0DN6o3XZp)5r>sKK3pm2n=JPv{pj(B2>+!S{`=5d*9A9jdH(s*_-ptRTlXI8USX zg4pSM`*_*vv@Z+A#KaKmSVj0PE zin6x$td*Eu;K`*+M${G{nA{gqi$%uK(BdV3hmcwWa|^I`0g9S15>@_zxO%*R0DyR`k57xzggLmflz69rF0J!LGsw}tQLq%ufIGBhjOhe`|~Zc@jNjY z^HhDFT$*vEtjs$9zP|g2m-??e;80+^T(ZUbJi0`mlAYhhTN5ywL@xo)zGs(I5`Mbl zjlr&O@2f8Q8#aVOr-Cu*vn+ev_3Jq|8>S+-A)88ib%^eRM*wvO?WKpprBkcBdN+qW zak(>NSA_p3tG1M3t6L5nct57Zl;{tAN<{H(g$)4FP@)`%xyy|H5Rn+YbQSqUiwwTo z!lVj)&UU|zeQvvsELgaZ0v2ju!FINUgoMbEIFZ1n-|H7=q*wj$_cgcj)tiFYW;~vA zzpf6VT=u7-!sNAp*0S9og9i`RtvwW9e*I(a|cgYP4XO-cd|U%Px8ef9>hWakN?;9GcI=8aod{ zU@DPl7*9A6+)}95z^^R4SKzg3kVk!l7YYxW2mvCp!K^XQG8-=(P43ds41i5&1LzDT zHAWy>xwVRrP6CO=t4{0}l1d`Zz6U>Uii?AF-=z2^o&h>&@uk@FNRJm>GLDeX1vOLP z_cV}_yc%^>90y<1!2b!B%lC2)KTAzWOq`zYo%NYQD|TNBBB$dSJYjh03jFK!^jOii zleH?u!SAue=wByKFg2vC08U8eh}lV%-?7FXmMMnE=-U>SMGb&F^nwXd{Q=4EnXsp{{E5$ygJhfeTl1<138KDu{xM z{TXCPhcBmNrx)yuQS(6Zh~jw$FP4nJ3!N4b&@w9kr=gJe(<}=ySj*`h0GLTM`&DRu zseFJ9FzQ)J$a?>piO>QYY&bbySg6eC-MgsreX$Nu}Z7M)T$=WJ%25Ffbu|3c) zVwy&%B&6r*CAnJZyua1Q@%+LR&8qpufwF>;{L|LJ4e`p{#2naUoB%PzDom^9EdGJ1 zeb>MM7XlJ04_x%^$_)Uf0P{3=-D_*hT1k@`j60Aq!W-nM0?o;(MFd;$Hs`kI+W#Jt zh{Gio*@s?!XvE+I#z2h%95)?0b37u2e|}FKT6GybPq1nAu;dTj9iOOZ3_50d-NDXxk%NsXb%jXvcr1aa-fWZub%)q+0N8fc-{^ZZQ05cGianm!heBtz z9V8%{1@%nU^S(0$ZaYv^N7i&>0!d!KcdG-P;3^I#)K5w$Kw7JQA-~iUYc&~{CRJ$puZos7j5orhot@o?L{Z&7xMBioIbXpK> z+DeSuH{0%jJ!0A9*9|nD1kSfHX_(jSk8;uqPjhyk8fQhHq8HJdL3=9@ZBt!&qOHr` z&Ms`NYRBd;I=VRrW=8-cZ@g==cVfYki<|bu^$auwHY)9&fHS{5GCFmNWUz|o1aai^ z=EOkQ>_QI8oqvd1`Mm=01B<1=4+6zDN9!(Qr|vaaQWqrh+U}S*#!|w#v$1$^2SW1Az;5E2891C2e8$ z`s7qdNdY?J_0Pn;NB-0bxvl!EXyYMd973UR8twl5%kX{_HEeKGPB=@Ap3QLL$$3+J6E#}F3j32Q+6PfA}@ z%|yh(D?#WpgtD+X@se?lVvVov(%iZ=al>?9#A~#w6adWZr9`d*Vg~UkZ1ji9d#j$p zEEy{R_}DO2YQkd2D5=hZbt_nJWT6mtaW~9{a^LsTwpI*~iMEZ)b_50#gr%cBApRPb z-~e6P*>_{|ox9!&#eo*$x;T+Kb_$-^4(HC#o0# z-~{#4JS$I)6(z#dDYl`%p}(b#Q|RYmTu3kujaX2D920H7(m6O73$$t8+Qakkr1zVq z>nNT;he=yx8HC>+Ei5e5*yep)5q)tj5tDyU9z+7O%`OM}Zx1HEUF2$;pC@G{ik~BP z4wnBpjM5dNYj7OB3XKurUbuM285e?f5t(ye-8fM6%HR-Y$N&}9%~!PN0I$RN-X8Ti zVrJw+hma`-hC^3~(RWJ%DdnYns%Y+yhDgMq1Os(CY4bMjaX zM9xGXZaN#z*Ytn{U0fCJXd88qn<7F&)Z{NDDUdD(>S=uYWc0+aoejmEw6K|6%c=ddFDMJqqlt2d+ zQPR|Eoa`(s^r$TiRmYq3qmft2Su>=t0ICMDI^Fy_fy}6EJE5h4-4ZadYWR;eb$NUJ z-IqdErLS@~9T^LHTRu7W#%pIFP9xl0jNDNN83Vz1Y_ zsaJAoNb`?@7V6)A;n!y;vTY9tm`ppLq_-mFX~Yy@1+qLKh~T?@jSChm_zrSx6n5+| zVFiod!FeEBls|?EWtSdy>rS~2so_OmrC<-L`WA6P+U(oqg(XyP6 z&)f08_zI1(QV9>S;HJTQaddAif!RS;rT&Q=(=%+Zpa67cqC>zzJOgo0kpV7q<)D>L zbt9a8@-R5MSuIW@Mu;Ln@8SxAj6PbFiEos7SIOVsYW3(gqrWef0{8Zn1jreDP0L6l z^6y7v!Tx1&Cx~H+5*^odei-{6X*@5-rj8?q{Xf4mjH`t>GPL&3x3xf1_9Yo;VoHma z@7`$hj_+V(onfcr<>&j$;keR4JPH~|(#C7RALJhjWC_EM3NWe2%mBz5BM9?1lMhiu z^w6797eag10s1tVA|RHgA<5EE8M8D-C#}Rgo05WVoWa2BQ3q&QCpHFo9X?_$N` zW!U+})S5jD{)bk-zq~C2wY15O4lCmi$y4#uHrvTNZOhL;^OvPQT-);p&?8>{?X&dh z=CS-!0u{J|zlUctb@29^0j<%g--{+m2Y!lOF$+RD#&?Z56^}I0g0U5;$qs2+GUEtv zS-R$|_p!7_WeeLaY*xkLIpcZx`^VWYgX^zVVDf%bd+HaIj98C?NzBgaB7kFykp>xb z)-~pVsR8{GpQ(eo5B@J^KsT#}Rwd6AoHoVHQQQO|MhegyLk`yoeFq+L{63c_?qzjx zwO5bFMcs;p%Jh*Acq&*K07#BO3Wk3oaAW2?HGZ}YFIZF2DK7PI<)U&Z`HjEw5|h@7*GATO9onUkPy#pU2awtN8a~E*m%}kf_(6&qoBs|cJ$Qw z;S~AeozE5VIpu^6s^Ry*dICB#MY5rxDgEdx0)%>y(Ae3je@sUvfvC2Be=^U4>j5r@ z>Txq@zT(jV{qKL*BiOaB)*(&*+(S(zJ|e@=X*50P@{kjjWx{v8TN=FE`(M!Fi_xn; z#|}L`l*PL5p7^i)?{A4;xv=U{MP*IXY>uhB`C<-81|5edmSH)i%}tC>(Tm|QH8I2s z^6I?(df)e#xrcG^>~J^pWMmAALh?Y?W5h58s$mVWmWlhezZTl`9^=3OGwrO)a1?Cl24MQs+$OA$#2s%R#Br*_EfZ)- zSKN_F`+|ZLPy|V9K`<2vK2+*jjm=+s*y{Uj)NGg*{MLXF0ubbgA2+V6h?-Ig7rF=j zXr0fddb3OfW+OQ}O+5kr`54{-3&7=Qy2NBElVFR{5$GY6Fp&G{{TAwor1z!6wR8PG zUCm-$I#&4sthdQEAPSWKcBsnWVpS=)AJe;-m7Y9NRE)R`+7=*xsQL_XApV(Z7C;gJ_Q=U4)iTns{ ztfB4cM5v%4_8a$du46S!7@?8?(s{4*SCS%v3_|;eAlBO1Jb>e)?;#&u1Zgsaf-fSo zf(b0IZVvUJxJO(Z|8$sW=rGczVrQH6!RdH^NJp(8E{`)YYXMml`j3>zs361y&o+u* zpG>eem;rjH&%wFyCCvBkc5ML01#ANKbu}0xws$OP8A#T*tjm|H>~0nsZMH7;Uj_0IXYkG z9f8x?h*G_D+PAx@X0n1*siN7xP`?Wcc7gaja8R&Kfu}vR?|5uH2$=9++Y>o4w${J) z{(bf%K8FXvP!2p=w@5+Z*`<^rV45vG_JBcO?Ndtf^fuq#{PHEo^ISxHXB*E_O;1E_ zg`Bw*T-$_!Su-F>^(}Hsv(EJ`a@~f3U-+A`)7H6ju6=9;;T)KEsYWbzSRj}j1DfTm zh>d1V32-wS`JquS?E+$?X?O39`}_9n5pMjBv+eCDv`#BTO58r-&HO_W1y;rm+Khn) zLK{{wNgTNd1dIwGmBs3(A3A)x%V*%UW${)J&~{i_c7FNN(NB^uHload+|}9L9S$%N zpz7U?H@$kGu=w&V@Z9t3+rRN#^{m)CC)Wh!)|Fz>wpdze9_A5ii< z4JTqu$Xh+iOM9ae=MNj8r+xwttM?wt?9gR z@x#v`e0b80D5@~FVYL|9ZRvf+Nv|MgO4Ko3aU!1?r3#0D1rcu^2N$rHflk14VRU5LRgXBh=HDOoV?Vybx$KDH{QR z$Uv6}>#X8&>Oc3S6Lqe{AmnyBzBPsE(Y^{xpwI>LyUxO5q6g&KSCGcrg4ECKETAF z90f*dt#&lgQ*k>A_dO>)V>GR3Wp@ zXpyFpE&cwPZ_aBogIVV%1Z#tUjB4j!$%=oZcM+aM2m(qxe8TwaD9~qLx^#!Uq{q-5 zBO)T-GiWLR($^`l%JEa_R#5G7=hk8mb`Jqn#?RG|*MVM}fA=nQLE4`^@S)B^U&qF3 zVW%tWBZLpqS+1<>*K4!8llR@nkF3zrT4bC5B^FaLB_f9&9<&#a1NJ-5zJh0f-MP)- zXL$ehK^gHCXL@Y5b~aWxbn<3yS&T*i<#7D|7M~VTc{Qru( z@~@_^B_50*R00jMgiW>_q^}$ZixAX;PZmWM%c@c-WvkKxvKU#)5;(jN76tSaWwk&b z6%Y|9a8OxfF<=l%r9{hPDG2fchy+nMt@=J+BKA*s_qXIb-}{|AGk5OXxifcQgJ4w9 zQ1#vKEjC>tTt*!HS+<_h!$Vg;x>vEA2ds$kpbbaN4umnIHR;yqK^v#FQ1Do0?u?7Y zofv~%;@2%>IM9YePy2gQ$-SO0@@VBJG`GyiZq=G?>H4ptcb8+`z~qG5$1={WD;*7; z@FbCBC`63_Q0D4b)3;Z|yFH2;;$d+({I5e21xjltdv?PC^}^eC*wQYibmQ&; zI9^re#)(}I(I`rTNjsuiQH1Q!V#IZIXDK;7wF{hwcH+0WXZj+QiJZ@R+p^ub5iR@Y zv-$yzPkKIJDQ!`7!NrzC#ivzIn^94wQrzwE=kOUkHV>ltn?_s>nRHH*`KOpfx(b*3 zg90Aq`g8g_{g1%HW9-dHX^2xqw)qR=s=K5A4Bi6yYc(g-(kS855tFQUa{HkMU2UX!5MI7?k5;n)J-+oH5oVRV%#yz{UxvNYw^a7UV68r=TCFx#QxZ$zYn%+;_dDv;Kg!!*;uazPv< z)%^A#ZEOERF+e>N1R}sNxVeitV4})Qg+CXeIhfrI-3;-7s1$B~zB2xSx`GAC)s!38 zx2z}skn(T$DkP0SnQn(D96NSwD;Wb@$p=BE_X6sPin4I-2Bh1P+5Mf=BS=5~x{=U( zh{Gpz$L5BaV8d0DqK7bsK?JyL2yk$M3Qjo9i}W_LYJ26j#?Fz!M1@3S7K!;F0U}G! zEix9JrK3`gy=Rv&qfv#3+}yt-=U}L|Y1alKsF5oHBNU-d_<)$qcD5&A<6-K8G%LwV z_FxnWi_TTUemrSao%8sw5mOmKU+X(xya(BA? zEgCPfI9}R%lp(vazD{#_Wap;n&5oyIc>4-c>0 zEd#*ypl5uC<>$|*U%fgnj9jOWrk!3qx34#;BWE^BHLmn?IANgsliiTUiFj9fix*g3Ymm^68BHiis_CJw%0NPxwIoM6SaW4@b*PR{@ueL zql=rrY`kGFtnEVwlzRmVZgu82emA%zZZitUPknED7Wp)l#>>j`--t#1e~!_@t@ z8;>F+zpRs-oSfvvx0S{tWkX6d2+|_g;iUTD>H+1f-jP6pavf(hc-O0i4ay10$y$z= zoIg|cW7GON;^X2npfizJBRUXslt89Er7{G|HjOvz!&v5~{Pk0F*v!U;6_|r@1Ic{; zthmRs=X_OIzJ~>@yx^0_O2v}pk<+W9Cna(MR|sNq?g<&_FhQs8c9Pf0XH?=diP2uj7(CO#T2mjD~dzsev?&0Rk&itc{4ky{CEvVjr z&4h`pt>G1ZU&DZkJkj$H&0!TGg&_SUddAXub$d4qYZCO)+F#;I5HN8PY|0BRSn~(; zdKSh|8DfhXys>tNz3kJvPxz)6d4WHNsXJckiEmSuByf?3e6W0Z4B2|0S}0Ve zOrI8&ys=PSojJ1-+uA#S*SeVAKT-kE&MTI(-NBl%G)`ZGA#%Z=##yhOIVE9|EAJs- zY2@&(FYMFR&F2T-@U8)Q!Yv?x?Bn+%vw?Ql7|_<$9bI4{JN-nRz$1sJgs(&Z<&*ht z`LnY-moy}OnRuhKxP*+l&{P|_Ulr}C_HK5BP&ei&M1!;}=;iS6N&S>x-BPxBTE@8%{{!{ixRL*{DzC@Rb)! zB{O~k)-cN#ol&U}h|F^CfuUN7)vBI@?P<4f8Vi23bcx<*V@d<17}41kV_jW-17DA1 zs$`ODd|HEdt!rw5d6nLOXOD}Ar4j`HMHR=N+m3m_i5Ysbuzn@DfNYc?6QJ!kVI|ib z_FY_E*T&A*P0<>s5Er~BNuw?4PcyLTF3XiZ!~C+e#ioOjv@)|iZ0=&b-0fHEJ+0-J zPwQ)8y)_DlDN(ndRR9nltdn-vQdh{{v|>42(oF(~ + +
    Data Streamer
    Data Streamer
    Data Processor
    Data Processor
    Listener
    Listener
    Listener
    Listener
    Data Processor
    Data Processor
    Data Streamer
    Data Streamer
    TCP Server
    TCP Server
    Client 
    Client 
    TCP Port
    Control
    TCP Port...
    Module
    Module
    UDP Port
    UDP Port
    Assembles 
    into images in memory
    Assembles...
    Optional callbacks 
    for online processing
    Optional callbacks...
    Optional File
    Optional File
    Optional Data Streaming
    Optional Data Streaming
    Module
    Module
    UDP Port 2
    UDP Port 2
    RECEIVER
    RECEIVER
    Data packets
    Data packets
    ZMQ Port
    ZMQ Port
    ZMQ Port 2
    ZMQ Port 2
    GUI
    GUI
    GUI
    GUI
    Frames
    Frames
    \ No newline at end of file diff --git a/docs/src/images/Receiver_external_process_commands.png b/docs/src/images/Receiver_external_process_commands.png deleted file mode 100644 index b09b80d74d3b8a4311a0881a0493a90f715505d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115926 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 + +
    Client / GUI
    Client / GUI
    External
    Process
    129.129.200.175
    External...
    Processed Data
    Processed Data
    ZMQ
    ZMQ
    Receiver streaming out
    rx_zmqport = 30001

    Receiver streaming out...
    Receiver
    pc1234
    129.129.100.115
    Receiver...
    Receiver
    pc1234
    129.129.100.115
    Receiver...
    Receiver streaming out
    rx_zmqport = 30002
    Receiver streaming out...
    ZMQ
    ZMQ

    Client listening to 
    zmqport : 30004
    zmqip   : 129.129.200.175

    Client listening to...
    External Process:
    rx_zmqport (30001) != zmqport (30004)
    External Process:...
    ZMQ
    ZMQ

    Client listening to 
    zmqport : 30003
    zmqip   : 129.129.200.175

    Client listening to...
    ZMQ
    ZMQ
    Assembled Data
    Assembled Data

    External Process listening to 
    Ports : 30001, 30002
    Ip    : 129.129.100.115

    External Process listening to...

    External Process streaming out 
    Ports : 30003, 30004

    External Process streaming out...
    \ No newline at end of file diff --git a/docs/src/images/Receiver_gui_commands.png b/docs/src/images/Receiver_gui_commands.png deleted file mode 100644 index 4cef3853f8b079d126ee8cc6a0753f3e81c91b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97123 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

    uRA^rU^KvJN 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 diff --git a/docs/src/images/Receiver_gui_commands.svg b/docs/src/images/Receiver_gui_commands.svg new file mode 100644 index 000000000..5e0146754 --- /dev/null +++ b/docs/src/images/Receiver_gui_commands.svg @@ -0,0 +1,3 @@ + + +
    ZMQ
    ZMQ
    ZMQ
    ZMQ
    GUI:  
    zmqport (30001) = rx_zmqport (30001)
    GUI:...
    Assembled Data
    Assembled Data
    Receiver streaming out
    rx_zmqport = 30001

    Receiver streaming out...
    Receiver
    pc1234
    129.129.100.115
    Receiver...
    Receiver
    pc1234
    129.129.100.115
    Receiver...
    Receiver streaming out
    rx_zmqport = 30002
    Receiver streaming out...
    Client / GUI
    Client / GUI

    Client listening to 
    zmqport : 30002
    zmqip   : 129.129.100.115

    Client listening to...

    Client listening to 
    zmqport : 30001
    zmqip   : 129.129.100.115

    Client listening to...
    \ No newline at end of file diff --git a/docs/src/images/Soft_upgrade_components.png b/docs/src/images/Soft_upgrade_components.png deleted file mode 100644 index cf715a90f274120516dc5d80ca82dff56b2ff7de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31457 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 + +
    Blackfin on-board 
    Detector Server
    Blackfin on-board...
    FPGA firmware 
    (*.bit,*.pof,*.rbf)
    FPGA firmware...
    slsDetectorPackage
    (Client & Receiver)
    slsDetectorPackage...
    UPGRADE COMPONENTS
    UPGRADE COMPONENTS
    \ No newline at end of file diff --git a/docs/src/images/System_communication_architecture.png b/docs/src/images/System_communication_architecture.png deleted file mode 100644 index 7376a059012fb843ad1f3201f88537612c688377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72722 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 + +
    Module 3
    Module 3
    Module 2
    Module 2
    Module 1
    Module 1
    Module (s)
    Module (s)
    UDP
    UDP
    Client / GUI
    Client / GUI
    ZMQ
    ZMQ
    ZMQ
    ZMQ
    ZMQ
    ZMQ
    External 
    Processing
    Chain
    External...
    TCP
    TCP
    TCP
    TCP
    Control 1:N
    Control 1:N
    Control 1:N
    Control 1:N
    Raw Data Packets 1:1
    Raw Data Packets 1:1
    Image Data 1:N
    Image Data 1:N
    Assembled Data 1:N
    Assembled Data 1:N
    Processed Data 1:1
    Processed Data 1:1
    Module 3
    Module 3
    Module 2
    Module 2
    Module 1
    Module 1
    Receiver (s)
    Receiver (s)
    Option 1: Directly 
    Option 1: Directly 
    Option 2: Indirectly
    Option 2: Indirectly
    Detector
    Detector
    \ No newline at end of file diff --git a/docs/src/index.rst b/docs/src/index.rst index 498543384..8a5044cea 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -52,7 +52,7 @@ slsDetectorPackage pyenums pypower pyexamples - pyPatternGenerator + pypatterngenerator pattern .. toctree:: diff --git a/docs/src/installation.rst b/docs/src/installation.rst index f9b98b48e..926248843 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -126,7 +126,7 @@ One can either build using cmake or use the in-built cmk.sh script. .. code-block:: bash - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build # configure & generate Makefiles using cmake by listing all your options @@ -148,7 +148,7 @@ libraries and headers in your project, specify the install directory .. code-block:: bash - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build # configure & generate Makefiles cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path @@ -253,7 +253,7 @@ using this compiler conda create -n myenv gxx_linux-64 cmake conda activate myenv - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX make -j12 @@ -311,7 +311,7 @@ using this compiler # activate environment conda activate slsgui - # compile with cmake outside slsDetecorPackage folder + # compile with cmake outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DSLS_USE_GUI=ON make -j12 @@ -341,7 +341,7 @@ is to use conda .. code-block:: bash # using cmake or ccmake to enable DSLS_BUILD_DOCS - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DSLS_BUILD_DOCS=ON diff --git a/docs/src/masterfileattributes.rst b/docs/src/masterfileattributes.rst index 5190ee647..3283de36f 100644 --- a/docs/src/masterfileattributes.rst +++ b/docs/src/masterfileattributes.rst @@ -32,7 +32,7 @@ Eiger +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -95,7 +95,7 @@ Jungfrau +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -146,7 +146,7 @@ Gotthard II +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -195,7 +195,7 @@ Mythen3 +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -262,7 +262,7 @@ Moench +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -315,7 +315,7 @@ Chip Test Board +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | diff --git a/docs/src/multidet.rst b/docs/src/multidet.rst index 4e74854c8..52489a443 100644 --- a/docs/src/multidet.rst +++ b/docs/src/multidet.rst @@ -79,7 +79,7 @@ the shared memory segments would be: The main difference between the command line and the Python API is that you set the index when you create the detector object and you don't have to repeat it for every call. -The C++ API works int the same way. +The C++ API works in the same way. .. code-block:: python diff --git a/docs/src/pattern.rst b/docs/src/pattern.rst index d3515d941..40aab7159 100644 --- a/docs/src/pattern.rst +++ b/docs/src/pattern.rst @@ -125,6 +125,6 @@ For Mythen3 the pattern word only connects to output pins of the FPGA when the p In the default configuration the Ctb will send out udp packets to the sls_receiver for every end of a pattern execution. This behavior can be changed using STREAMING_CTRL_REG, where one can configure a bit position in the 64-bit pattern word to trigger udp packets. This allows to send more than one packet per pattern or also no packets at all. -The "patternstart" command on the ctb exectues the pattern. As long as streaming_ctrl_reg is disabeld, every pattern execution using this command will not send UDP packets. +The "patternstart" command on the ctb executes the pattern. As long as streaming_ctrl_reg is disabled, every pattern execution using this command will not send UDP packets. For Mythen3 the sending of udp packets is not connected to pattern execution. \ No newline at end of file diff --git a/docs/src/pyenums.rst b/docs/src/pyenums.rst index 2c177e618..1d36e6d68 100644 --- a/docs/src/pyenums.rst +++ b/docs/src/pyenums.rst @@ -14,7 +14,7 @@ exposed to Python through pybind11. d = Detector() d.fformat = fileFormat.BINARY - # Altough not recommended for convenience all enums + # Although not recommended for convenience all enums # and some other things can be impored using * from slsdet import * @@ -24,7 +24,7 @@ exposed to Python through pybind11. import slsdet.enums for enum in dir(slsdet.enums): - # filter out special memebers + # filter out special members if not enum.startswith('_'): print(enum) diff --git a/docs/src/pyexamples.rst b/docs/src/pyexamples.rst index 1d7eedd4b..2acc178e3 100755 --- a/docs/src/pyexamples.rst +++ b/docs/src/pyexamples.rst @@ -2,7 +2,7 @@ Examples ================ Some short examples on how to use slsdet. If something is missing don't hesitate to -open an issue in our our `github repo +open an issue in our `github repo `_. @@ -62,7 +62,7 @@ datetime.timedelta, DurationWrapper or by setting the time in seconds. Converting numbers to hex ------------------------------------ -Python support entering numbers in format by using the 0x prefix. However, when reading +Python supports entering numbers in format by using the 0x prefix. However, when reading back you will get a normal integer. This can then be converted to a hex string representation using the built in hex() function. @@ -159,7 +159,7 @@ Non blocking acquire There are mainly two ways to achieve a non blocking acquire when calling from the Python API. One is to manually start the detector and the second one is to launch the normal acquire from a different process. Depending on your measurement -it might also be better to run the other task in a seperate process and use acq in the main thread. +it might also be better to run the other task in a separate process and use acq in the main thread. But lets start looking at the at the manual way: :: diff --git a/docs/src/pygettingstarted.rst b/docs/src/pygettingstarted.rst index 6f234d5ae..311dda940 100644 --- a/docs/src/pygettingstarted.rst +++ b/docs/src/pygettingstarted.rst @@ -11,7 +11,7 @@ Python installation. The examples in this documentation uses `conda `_ since it provides good support also for non Python packages but there are also other alternatives like, pyenv. -Using something like conda also allows you to quickly switch beteen different Python +Using something like conda also allows you to quickly switch between different Python environments. --------------------- diff --git a/docs/src/pyPatternGenerator.rst b/docs/src/pypatterngenerator.rst similarity index 100% rename from docs/src/pyPatternGenerator.rst rename to docs/src/pypatterngenerator.rst diff --git a/docs/src/quick_start_guide.rst b/docs/src/quick_start_guide.rst index 41430cb66..ad5fd3842 100644 --- a/docs/src/quick_start_guide.rst +++ b/docs/src/quick_start_guide.rst @@ -67,7 +67,7 @@ For a Single Module udp_dstport 50012 # 1g data out - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips # udp_srcip 192.168.1.112 # destination udp ip picked up from rx_hostname (if auto) # udp_dstip auto @@ -88,7 +88,7 @@ For a Single Module with custom Receiver (not slsReceiver) # sets destination udp ports (not needed, default is 50001) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips udp_srcip 192.168.1.112 # destination udp ip @@ -118,7 +118,7 @@ For Multiple Modules # increasing udp ports (multi detector command) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips 0:udp_srcip 192.168.1.112 1:udp_srcip 192.168.1.114 @@ -164,7 +164,7 @@ Compile with SLS_USE_GUI=ON in cmake or -g option in cmk.sh script. One can also .. note :: - | The streaming high water mark (commmand: rx_zmqhwm) and the receiving high water mark (command: zmqhwm) is by default the lib zmq's default (currently 1000). + | The streaming high water mark (command: rx_zmqhwm) and the receiving high water mark (command: zmqhwm) is by default the lib zmq's default (currently 1000). | At Gui startup, these values are set to 2. Hence, for very fast detectors, many frames will be dropped to be able to view the latest in the gui. | One can still change this setting in the gui in the Plot tab (ZMQ Streaming), from the command line or API. | Both hwm's can be set to a -1 to use the lib's default. diff --git a/docs/src/serverupgrade.rst b/docs/src/serverupgrade.rst index a215da8ae..ddeca8c37 100644 --- a/docs/src/serverupgrade.rst +++ b/docs/src/serverupgrade.rst @@ -23,7 +23,7 @@ Upgrade .. code-block:: bash # the following command copies new server, creates a soft link to xxxDetectorServerxxx - # [Jungfrau][CTB][Moench] also deletes the old server binary and edits initttab to respawn server on reboot + # [Jungfrau][CTB][Moench] also deletes the old server binary and edits inittab to respawn server on reboot # Then, the detector controller will reboot (except Eiger) sls_detector_put updatedetectorserver /complete-path-to-binary/xxxDetectorServerxxx @@ -42,7 +42,7 @@ Upgrade .. code-block:: bash # the following command copies new server from pc tftp folder, creates a soft link to xxxDetectorServerxxx - # [Jungfrau][CTB][Moench] also edits initttab to respawn server on reboot + # [Jungfrau][CTB][Moench] also edits inittab to respawn server on reboot # Then, the detector controller will reboot (except Eiger) sls_detector_put copydetectorserver xxxDetectorServerxxx pcxxx diff --git a/docs/src/slsreceiver.rst b/docs/src/slsreceiver.rst index d0bceff0a..07125d056 100644 --- a/docs/src/slsreceiver.rst +++ b/docs/src/slsreceiver.rst @@ -28,7 +28,7 @@ There are three main receiver types. How to start them is described :ref:`below< +======================+====================+=========================================+================================+ | Modules Supported | 1 | Multiple | Multiple | +----------------------+--------------------+-----------------------------------------+--------------------------------+ -| Internal Architecture| Threads per porttt | Multiple child processes of slsReceiver | Multi-threading of slsReceiver | +| Internal Architecture| Threads per port | Multiple child processes of slsReceiver | Multi-threading of slsReceiver | +----------------------+--------------------+-----------------------------------------+--------------------------------+ | ZMQ Streaming | Disabled by default| Disabled by default | Enabled, not optional | +----------------------+--------------------+-----------------------------------------+--------------------------------+ diff --git a/docs/src/slsreceiverheaderformat.rst b/docs/src/slsreceiverheaderformat.rst index 9449db88f..ff85bd1d0 100644 --- a/docs/src/slsreceiverheaderformat.rst +++ b/docs/src/slsreceiverheaderformat.rst @@ -37,4 +37,4 @@ It is 112 bytes and consists of: | The **packetNumber** from detector UDP header is modified in **sls_receiver_header** to number of packets caught by receiver for that frame and the bit mask for each packet caught is the **packetsMask**. The packetsMask is a total of 512 bits due to the largest number of packets per frame among our detectors. -| For eg. Jungfrau has 128 packets per frame. If **packetNumeber** is 128, then this frame is complete. If it is 127 or less, it is a partial frame due to missing packets. If one would still like to use it, the **packetsMask** will specify which packet has been received or is missing. +| For eg. Jungfrau has 128 packets per frame. If **packetNumber** is 128, then this frame is complete. If it is 127 or less, it is a partial frame due to missing packets. If one would still like to use it, the **packetsMask** will specify which packet has been received or is missing. diff --git a/docs/src/softwarearchitecture.rst b/docs/src/softwarearchitecture.rst index b4c56dc86..8638924b1 100644 --- a/docs/src/softwarearchitecture.rst +++ b/docs/src/softwarearchitecture.rst @@ -7,8 +7,8 @@ Software Architecture Introduction ------------------------------------ -.. figure:: images/System_communication_architecture.png - :target: _images/System_communication_architecture.png +.. figure:: images/System_communication_architecture.svg + :target: _images/System_communication_architecture.svg :width: 700px :align: center :alt: System communication architecture @@ -46,8 +46,8 @@ Next, each component is examined in detail. Module ------- -.. figure:: images/Module_architecture.png - :target: _images/Module_architecture.png +.. figure:: images/Module_architecture.svg + :target: _images/Module_architecture.svg :width: 700px :align: center :alt: Module architecture @@ -66,8 +66,8 @@ The module also includes an FPGA with VHDL firmware (file format depends on the Upgrade ^^^^^^^^ -.. figure:: images/Soft_upgrade_components.png - :target: _images/Soft_upgrade_components.png +.. figure:: images/Soft_upgrade_components.svg + :target: _images/Soft_upgrade_components.svg :width: 700px :align: center :alt: Software Upgrade Components @@ -80,7 +80,7 @@ There are mainly three components to the soft upgrade: * Firmware upgrade: The VHDL code running on the FPGA. * slsDetectorPackage upgrade: The client code running on the host PC to control the module(s) and receiver(s) if any. -Please use the `update command `_ when updating both the server and firmware simulataneously and `programfpga command `_ when only updating the firmware. See :ref:`firmware upgrade ` for details. +Please use the `update command `_ when updating both the server and firmware simultaneously and `programfpga command `_ when only updating the firmware. See :ref:`firmware upgrade ` for details. When only updating the detector server, use the `updatedetectorserver command `_ command. See :ref:`detector server upgrade ` for details. @@ -97,8 +97,8 @@ When only updating the detector server, use the `updatedetectorserver command 10k). * Check to see if the 10G link is up (blue or red LED on board, close to SFP+). If not: - * Check transeiver and fibers are compatible (all MMF 850nm or all SMF 1030nm) + * Check transceiver and fibers are compatible (all MMF 850nm or all SMF 1030nm) * Check fiber * Check fiber polarity (if short range, unplug the link anywhere, and look at the light/dark pattern: dark has to mate with light) * For Jungfrau, check if the blue sfp light is blinking rapidly (even when it is not sending data). If so, most likely the link is down and something is wrong with the board. If it connected to a switch, then you do not see it with the ethtool command if link is down. One option is to connect it directly to a pc to see if link is down. - * With nc, try "nc -u -p 50001 -l" in receiving pc, and from another pc try "echo hallo | nc -u 10.1.2.172 50001" to send something to the recieving pc interface to see if the link is up and see if the other nc console receives the hallo. + * With nc, try "nc -u -p 50001 -l" in receiving pc, and from another pc try "echo hallo | nc -u 10.1.2.172 50001" to send something to the receiving pc interface to see if the link is up and see if the other nc console receives the hallo. #. Detector is not acquiring (Not Eiger) * Take an acquisition with many images and using the following steps instead of acquire: @@ -279,7 +279,7 @@ Receiver PC Tuning Options # enable or disable permanently sudo systemctl enable cpupower -#. Give user speicific user scheduling privileges. +#. Give user specific scheduling privileges. .. code-block:: bash # edit /etc/security/limits.conf @@ -365,7 +365,7 @@ For errors due to access or size, use any of the following suggestions. # shared memory ending in jfxx export SLSDETNAME=jfxx - #. USe a different multi shared memory ID + #. Use a different multi shared memory ID .. code-block:: bash sls_detector_put 2-config xxxx.config @@ -447,15 +447,15 @@ Check if the control board or the flat band cable is connected properly. If not, Jungfrau --------- -Temperature event occured -^^^^^^^^^^^^^^^^^^^^^^^^^ +Temperature event occurred +^^^^^^^^^^^^^^^^^^^^^^^^^^^ This will occur only if: * temp_threshold (threshold temperature) has been set to a value * temp_control (temperature control) set to 1 -* and the temperature overshooted the threshold temperature. +* and the temperature overshot the threshold temperature. **Consequence** -* sls_detector_get temp_event will give 1 # temperature event occured +* sls_detector_get temp_event will give 1 # temperature event occurred * the chip will be powered off **Solution** @@ -492,7 +492,7 @@ Cannot get multi module data Cannot stop slaves in sync mode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -#. If cabling is accessible, ensure termination board and flatband cable between the masters and the slaves are connnected properly. Then try to stop. +#. If cabling is accessible, ensure termination board and flatband cable between the masters and the slaves are connected properly. Then try to stop. #. If cabling is inaccessible, unsync first so that the slaves can get the stop directly from the client using the command. Then, don't use sync mode until the cabling is fixed. .. code-block:: bash diff --git a/docs/src/udpconfig.rst b/docs/src/udpconfig.rst index 847b11899..e54f52ad2 100644 --- a/docs/src/udpconfig.rst +++ b/docs/src/udpconfig.rst @@ -23,7 +23,7 @@ udp_srcmac - Source MAC MAC address of detector UDP interface to send packets from. Do not use for Eiger (uses hardware mac). For others, it is not necessary, but can help for switch and debugging to put unique values for each module. -udp_dstport - Desintation Port +udp_dstport - Destination Port ------------------------------- Port in receiver pc to listen to packets from the detector. diff --git a/docs/src/virtualserver.rst b/docs/src/virtualserver.rst index 239e51490..bbe78a5eb 100644 --- a/docs/src/virtualserver.rst +++ b/docs/src/virtualserver.rst @@ -85,7 +85,7 @@ For a Single Module (With Options) # sets destination udp ports (not needed, default is 50001) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips # takes the same ip as hostname udp_srcip auto @@ -111,7 +111,7 @@ For Multiple Modules # sets increasing destination udp ports udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips 0:udp_srcip 192.168.1.112 1:udp_srcip 192.168.1.114 From 473d31c4b37a72b9a7fa232584091f9c141e339b Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 14 Aug 2026 14:40:03 +0200 Subject: [PATCH 05/21] added the right version for catch2 and rapidjson docs. minor. (#1523) --- docs/src/dependencies.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/dependencies.rst b/docs/src/dependencies.rst index 3e0e7b364..14e866eb3 100644 --- a/docs/src/dependencies.rst +++ b/docs/src/dependencies.rst @@ -25,11 +25,11 @@ Additionally the core requires the following dependencies: * fmt 12.1.0 (packaged in libs) * ZeroMQ 4.3.4 (packaged in libs) - * rapidjson (packaged in libs) + * rapidjson 1.1.0 (packaged in libs) .. note:: - Both fmt, ZeroMQ and rapidjson are bundled in libs. One does not need to pre-install them on the system. Alternatively, one can fetch fmt and ZeroMQ from GitHub by passing the cmake options ``-DSLS_FETCH_FMT_FROM_GITHUB=ON`` and ``-DSLS_FETCH_ZEROMQ_FROM_GITHUB=ON`` respectively. + Fmt, ZeroMQ and rapidjson are bundled in libs. One does not need to pre-install them on the system. Alternatively, one can fetch fmt and ZeroMQ from GitHub by passing the cmake options ``-DSLS_FETCH_FMT_FROM_GITHUB=ON`` and ``-DSLS_FETCH_ZEROMQ_FROM_GITHUB=ON`` respectively. .. note:: @@ -90,7 +90,7 @@ Dependencies to build Tests To build the tests the following dependencies are needed: - * Catch2 3.4.0 (packaged in libs) + * Catch2 2.13.8 (packaged in libs) .. note:: From adaeaaa4093e607052dab56f96b4a9f170e4ecde Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 17 Aug 2026 11:53:00 +0200 Subject: [PATCH 06/21] Dev/chip version string (#1525) * changed api from double to string return for getchipversion, updated python bindings, added to versions command, fixed appropriately to send string from server, fixed tests accordingly to convert the string to int to do the tests * binary in * minor * fixed tests * updated help for chipversion --- python/slsdet/detector.py | 11 +- python/src/detector.cpp | 9 +- .../bin/jungfrauDetectorServer_developer | Bin 320416 -> 320608 bytes .../slsDetectorFunctionList.c | 27 +- .../slsDetectorFunctionList.h | 2 +- .../src/slsDetectorServer_funcs.c | 9 +- .../generator/autocomplete/dump.json | 76729 +++++++++++++++ .../generator/autocomplete/fixed.json | 76731 ++++++++++++++++ slsDetectorSoftware/generator/commands.yaml | 2 +- .../generator/extended_commands.yaml | 3 +- slsDetectorSoftware/include/sls/Detector.h | 2 +- slsDetectorSoftware/src/Caller.cpp | 2 +- slsDetectorSoftware/src/CallerSpecial.cpp | 10 + slsDetectorSoftware/src/Detector.cpp | 2 +- slsDetectorSoftware/src/Module.cpp | 6 +- slsDetectorSoftware/src/Module.h | 2 +- .../tests/Caller/test-Caller-global.cpp | 10 + .../tests/Caller/test-Caller-global.h | 3 + .../tests/Caller/test-Caller-jungfrau.cpp | 11 +- .../tests/Caller/test-Caller.cpp | 25 +- 20 files changed, 153551 insertions(+), 45 deletions(-) create mode 100644 slsDetectorSoftware/generator/autocomplete/dump.json create mode 100644 slsDetectorSoftware/generator/autocomplete/fixed.json diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 2ea303d53..f5f34f021 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -2140,6 +2140,8 @@ class Detector(CppDetectorApi): firmware_febl = "Unknown" firmware_febr = "Unknown" firmware_beb = "Unknown" + jungfrau = False + chip = "Unknown" receiver_in_shm = False release = self.packageversion @@ -2149,6 +2151,7 @@ class Detector(CppDetectorApi): # shared memory has detectors type = self.type eiger = (self.type == detectorType.EIGER) + jungfrau = (self.type == detectorType.JUNGFRAU) receiver_in_shm = self.use_receiver if receiver_in_shm: # cannot connect to receiver @@ -2166,6 +2169,8 @@ class Detector(CppDetectorApi): firmware_beb = self.firmwareversion firmware_febl = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_LEFT) firmware_febr = self.getFrontEndFirmwareVersion(slsDetectorDefs.fpgaPosition.FRONT_RIGHT) + if jungfrau: + chip = self.chipversion except Exception as e: pass @@ -2178,6 +2183,8 @@ class Detector(CppDetectorApi): version_list ['firmware (Febr)'] = {firmware_febr} else: version_list ['firmware'] = {firmware} + if jungfrau: + version_list ['chip'] = {chip} version_list ['detectorserver'] = {detectorserver} version_list ['kernel'] = kernel version_list ['hardware'] = hardware @@ -2738,12 +2745,12 @@ class Detector(CppDetectorApi): @element def chipversion(self): """ - [Jungfrau] Chip version of module. Can be 1.0, 1.1 or 1.2. + [Jungfrau] Chip version of module. Example ------- >>> d.chipversion - '1.0' + '1.2 Normal' """ return self.getChipVersion() diff --git a/python/src/detector.cpp b/python/src/detector.cpp index 647b77974..59661ad36 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -1197,10 +1197,11 @@ void init_det(py::module &m) { CppDetectorApi.def( "setTop", (void (Detector::*)(bool, sls::Positions)) & Detector::setTop, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("getChipVersion", - (Result(Detector::*)(sls::Positions) const) & - Detector::getChipVersion, - py::arg() = Positions{}); + CppDetectorApi.def( + "getChipVersion", + (Result(Detector::*)(sls::Positions) const) & + Detector::getChipVersion, + py::arg() = Positions{}); CppDetectorApi.def("getThresholdTemperature", (Result(Detector::*)(sls::Positions) const) & Detector::getThresholdTemperature, diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index b03476a285248f01ad75c5824689616afd3abebc..8c08da57223e9d376b196e916f35307cf6b2264b 100755 GIT binary patch delta 148489 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 Lha9`8eK`Lg&)-Xr delta 148312 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 Lu*Vs4e@^@li}L9u diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 576b67f58..706778402 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -131,12 +131,17 @@ void basictests() { if (fwversion >= MIN_REQRD_VRSN_T_RD_API) sw_fw_apiversion = getFirmwareAPIVersion(); + char chipVersion[MAX_STR_LENGTH] = {0}; + memset(chipVersion, 0, MAX_STR_LENGTH); + getChipVersionInFPGA(chipVersion, initErrorMessage); LOG(logINFOBLUE, ("************ Jungfrau Server *********************\n" "Hardware Version:\t\t %s\n" "Hardware Serial Nr:\t\t 0x%x\n" + "Chip Version:\t\t\t %s\n" + "Detector IP Addr:\t\t 0x%x\n" "Detector MAC Addr:\t\t 0x%llx\n\n" @@ -145,7 +150,7 @@ void basictests() { "F/w-S/w API Version:\t\t 0x%llx\n" "Required Firmware Version:\t 0x%x\n" "********************************************************\n", - hversion, hsnumber, ipadd, (long long unsigned int)macadd, + hversion, hsnumber, chipVersion, ipadd, (long long unsigned int)macadd, (long long int)fwversion, swversion, (long long int)sw_fw_apiversion, requiredFirmwareVersion)); @@ -329,20 +334,24 @@ int isHardwareVersion_1_0() { return ((getHardwareVersionNumber() == hwNumberList[0]) ? 1 : 0); } -int getChipVersionInFPGA() { - const int vals[] = CHIP_VALS; +int getChipVersionInFPGA(char *version, char *mess) { + char *chip_names[] = {CHIP_NAMES}; int val = ((bus_r(DAQ_REG) & DAQ_CHIP_VRSN_MSK) >> DAQ_CHIP_VRSN_OFST); switch (val) { case 0: - return vals[(int)v1_0]; + strcpy(version, chip_names[(int)v1_0]); + return OK; case 1: - return vals[(int)v1_1]; + strcpy(version, chip_names[(int)v1_1]); + return OK; case 2: - return vals[(int)v1_2_NORMAL] / 10; + strcpy(version, chip_names[(int)v1_2_NORMAL]); + return OK; default: - LOG(logERROR, - ("Read undefined value as chip version from FPGA: %d\n", val)); - return -1; + sprintf(mess, "Read undefined value as chip version from FPGA: %d\n", + val); + LOG(logERROR, (mess)); + return FAIL; } } diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h index 4bf1e385d..64bd7f71e 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h @@ -57,7 +57,7 @@ void getHardwareVersion(char *version); u_int16_t getHardwareVersionNumber(); u_int16_t getHardwareSerialNumber(); int isHardwareVersion_1_0(); -int getChipVersionInFPGA(); +int getChipVersionInFPGA(char *retvals, char *mess); int findChipIndex(enum CHIPINDEX *ind, char *cval, char *mess); int setChipVersionIntFromConfigFile(int val, char *mess); // for backward compatibility diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 5f8617afa..34c7eda6a 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -8700,14 +8700,15 @@ int set_veto_algorithm(int file_des) { int get_chip_version(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - int retval = -1; + char retvals[MAX_STR_LENGTH]; + memset(retvals, 0, MAX_STR_LENGTH); #if !defined(JUNGFRAUD) functionNotImplemented(); #else - retval = getChipVersionInFPGA(); + ret = getChipVersionInFPGA(retvals, mess); #endif - LOG(logDEBUG1, ("chip version retval: %d\n", retval)); - return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); + LOG(logDEBUG1, ("chip version retval: %s\n", retvals)); + return Server_SendResult(file_des, OTHER, retvals, sizeof(retvals)); } int get_default_dac(int file_des) { diff --git a/slsDetectorSoftware/generator/autocomplete/dump.json b/slsDetectorSoftware/generator/autocomplete/dump.json new file mode 100644 index 000000000..2a5d808a0 --- /dev/null +++ b/slsDetectorSoftware/generator/autocomplete/dump.json @@ -0,0 +1,76729 @@ +{ + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 9823, + "file": "../include/sls/ToString.h", + "line": 305, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9744, + "line": 304, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 9763, + "line": 304, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9754, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9763, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51b80c40", + "kind": "NonTypeTemplateParmDecl", + "loc": { + "offset": 9816, + "col": 73, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9766, + "col": 23, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "typename enable_if::value, int>::type", + "qualType": "std::enable_if_t::value, int>" + }, + "depth": 0, + "index": 1, + "defaultArg": { + "kind": "TemplateArgument", + "isExpr": true + }, + "inner": [ + { + "kind": "TemplateArgument", + "range": { + "begin": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isExpr": true, + "inner": [ + { + "id": "0x558a51b80be8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + }, + { + "id": "0x558a51b80f10", + "kind": "FunctionDecl", + "loc": { + "offset": 9823, + "line": 305, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9821, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &, const std::string &)" + }, + "inner": [ + { + "id": "0x558a51b80d38", + "kind": "ParmVarDecl", + "loc": { + "offset": 9851, + "line": 305, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9832, + "col": 12, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9851, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "t", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "loc": { + "offset": 9873, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9854, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9873, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb5ed8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9879, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b811e0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 9885, + "line": 306, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9899, + "col": 19, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "loc": { + "offset": 9892, + "col": 12, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9885, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9898, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "tval", + "type": { + "qualType": "double" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51b81180", + "kind": "InitListExpr", + "range": { + "begin": { + "offset": 9896, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9898, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b811c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "IntegralToFloating", + "inner": [ + { + "id": "0x558a51b81108", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b81718", + "kind": "CXXTryStmt", + "range": { + "begin": { + "offset": 9905, + "line": 307, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b813c8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9909, + "line": 307, + "col": 9, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9944, + "line": 309, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b813a8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 9919, + "line": 308, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9937, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "opcode": "=", + "inner": [ + { + "id": "0x558a51b811f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9919, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9919, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + }, + { + "id": "0x558a51b81358", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9937, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b81340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9931, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (*)(const string &, size_t *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b812a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9931, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (const string &, size_t *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50caf2a8", + "kind": "FunctionDecl", + "name": "stod", + "type": { + "qualType": "double (const string &, size_t *)" + } + } + } + ] + }, + { + "id": "0x558a51b81288", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9936, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9936, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80d38", + "kind": "ParmVarDecl", + "name": "t", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b81388", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a50caf1d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 159105, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 4489, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a50caf1b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b816f8", + "kind": "CXXCatchStmt", + "range": { + "begin": { + "offset": 9946, + "file": "../include/sls/ToString.h", + "line": 309, + "col": 7, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81498", + "kind": "VarDecl", + "loc": { + "offset": 9982, + "line": 309, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9953, + "col": 14, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9982, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "e", + "type": { + "qualType": "const std::invalid_argument &" + } + }, + { + "id": "0x558a51b816e0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9985, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b816c8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 9995, + "line": 310, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51b816b0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 9995, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b81688", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51b81668", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51b81660", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51b81630", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51b815e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b81570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[33]" + }, + "valueCategory": "lvalue", + "value": "\"Could not convert string to time\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b817f0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10062, + "line": 313, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10089, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81748", + "kind": "UsingDecl", + "loc": { + "offset": 10081, + "col": 24, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10062, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10081, + "col": 24, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "std::chrono::duration" + } + ] + }, + { + "id": "0x558a51b818c0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10095, + "line": 314, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10127, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81818", + "kind": "UsingDecl", + "loc": { + "offset": 10114, + "col": 24, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10095, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10114, + "col": 24, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "std::chrono::duration_cast" + } + ] + }, + { + "id": "0x558a51bb5ea8", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10133, + "line": 315, + "col": 5, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51b82c30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10137, + "line": 315, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51b82c18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b82bf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51b818d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10137, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10137, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b82be0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b818f8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"ns\"" + } + ] + } + ] + }, + { + "id": "0x558a51b961b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10151, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10225, + "line": 317, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b961a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10161, + "line": 316, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10218, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b96180", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10168, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10218, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b82c90", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10168, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10183, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51b96158", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10185, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10217, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51b95e00", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51b96128", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10185, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10217, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51b95f50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51b82f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e78", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10232, + "line": 317, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51b97530", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10236, + "line": 317, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51b97518", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b974f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51b961d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10236, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10236, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b974e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b961f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"us\"" + } + ] + } + ] + }, + { + "id": "0x558a51ba0a28", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10250, + "col": 30, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10325, + "line": 319, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51ba0a18", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10260, + "line": 318, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10318, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51ba09f0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10267, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10318, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b97578", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10267, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10282, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51ba09c8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10284, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10317, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51ba0670", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51ba0998", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10284, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10317, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ba07c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51b97840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e48", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10332, + "line": 319, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51ba1da0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10336, + "line": 319, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ba1d88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ba1d68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ba0a40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10336, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10336, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ba1d50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ba0a60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"ms\"" + } + ] + } + ] + }, + { + "id": "0x558a51bab298", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10350, + "col": 30, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10425, + "line": 321, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bab288", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10360, + "line": 320, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10418, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bab260", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10367, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10418, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ba1de8", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10367, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10382, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bab238", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10384, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10417, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51baaee0", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51bab208", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10384, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10417, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bab030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ba20b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e18", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10432, + "line": 321, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bac6f0", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 10436, + "line": 321, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10462, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51bac610", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51bac5f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bac5d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51bab2b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51bac5c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bab2d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"s\"" + } + ] + } + ] + }, + { + "id": "0x558a51bac698", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10462, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bac668", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10456, + "col": 36, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "empty", + "isArrow": false, + "referencedMemberDecl": "0x558a50c83a88", + "inner": [ + { + "id": "0x558a51bac648", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5c48", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10465, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10541, + "line": 323, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5c38", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10475, + "line": 322, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10534, + "col": 68, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5c10", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10482, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10534, + "col": 68, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bac720", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10482, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10497, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb5be8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10499, + "col": 33, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10533, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::chrono::duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51bb5890", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51bb5bb8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10499, + "col": 33, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10533, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::chrono::duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb59e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bac9d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10548, + "line": 323, + "col": 12, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5de8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 10558, + "line": 324, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb5dd0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 10558, + "line": 324, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb5da8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb5d88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb5d80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb5d50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb5d38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb5ca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[64]" + }, + "valueCategory": "lvalue", + "value": "\"Invalid unit in conversion from string to std::chrono::duration\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 10747, + "file": "../include/sls/ToString.h", + "line": 330, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10667, + "line": 329, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bb5f10", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 10686, + "line": 329, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10677, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10686, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bb64b0", + "kind": "NonTypeTemplateParmDecl", + "loc": { + "offset": 10740, + "col": 74, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10689, + "col": 23, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "typename enable_if::value, int>::type", + "qualType": "std::enable_if_t::value, int>" + }, + "depth": 0, + "index": 1, + "defaultArg": { + "kind": "TemplateArgument", + "isExpr": true + }, + "inner": [ + { + "kind": "TemplateArgument", + "range": { + "begin": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isExpr": true, + "inner": [ + { + "id": "0x558a51bb6458", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + }, + { + "id": "0x558a51bb6740", + "kind": "FunctionDecl", + "loc": { + "offset": 10747, + "line": 330, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10745, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &, const std::string &)" + }, + "inner": [ + { + "id": "0x558a51bb65a8", + "kind": "ParmVarDecl", + "loc": { + "offset": 10775, + "line": 330, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10756, + "col": 12, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10775, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "f", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "loc": { + "offset": 10797, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10778, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10797, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb86e0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10803, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6a20", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10809, + "line": 331, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10823, + "col": 19, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "loc": { + "offset": 10816, + "col": 12, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10809, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10822, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "fval", + "type": { + "qualType": "double" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51bb69c0", + "kind": "InitListExpr", + "range": { + "begin": { + "offset": 10820, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10822, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6a00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "IntegralToFloating", + "inner": [ + { + "id": "0x558a51bb6948", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb6e08", + "kind": "CXXTryStmt", + "range": { + "begin": { + "offset": 10829, + "line": 332, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6ba0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10833, + "line": 332, + "col": 9, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10868, + "line": 334, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6b80", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 10843, + "line": 333, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10861, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "opcode": "=", + "inner": [ + { + "id": "0x558a51bb6a38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10843, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10843, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + }, + { + "id": "0x558a51bb6b30", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10861, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6b18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10855, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (*)(const string &, size_t *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb6ae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10855, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (const string &, size_t *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50caf2a8", + "kind": "FunctionDecl", + "name": "stod", + "type": { + "qualType": "double (const string &, size_t *)" + } + } + } + ] + }, + { + "id": "0x558a51bb6ac8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10860, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10860, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb65a8", + "kind": "ParmVarDecl", + "name": "f", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51bb6b60", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a50caf1d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 159105, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 4489, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a50caf1b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb6de8", + "kind": "CXXCatchStmt", + "range": { + "begin": { + "offset": 10870, + "file": "../include/sls/ToString.h", + "line": 334, + "col": 7, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6c10", + "kind": "VarDecl", + "loc": { + "offset": 10906, + "line": 334, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10877, + "col": 14, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10906, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "e", + "type": { + "qualType": "const std::invalid_argument &" + } + }, + { + "id": "0x558a51bb6dd0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10909, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6db8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 10919, + "line": 335, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb6da0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 10919, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6d78", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb6d58", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb6d50", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb6d20", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb6d08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb6c88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[38]" + }, + "valueCategory": "lvalue", + "value": "\"Could not convert string to frequency\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7f88", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10990, + "line": 337, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11220, + "line": 342, + "col": 8, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "loc": { + "offset": 10995, + "line": 337, + "col": 10, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10990, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11219, + "line": 342, + "col": 7, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unitLower", + "type": { + "qualType": "auto" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb7f68", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11219, + "line": 342, + "col": 7, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7f40", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:337:22)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6ea8", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb6ff0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11009, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto () const -> auto" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7f00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11011, + "line": 337, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7300", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11021, + "line": 338, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11046, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "loc": { + "offset": 11033, + "col": 21, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11021, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb72d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb7280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7e90", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11187, + "line": 340, + "col": 71, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7338", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11061, + "col": 14, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": false, + "name": "transform", + "lookups": [ + { + "id": "0x558a51084b18", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a51093238", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510cf5f0", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510d0570", + "kind": "FunctionTemplateDecl", + "name": "transform" + } + ] + }, + { + "id": "0x558a51bb7448", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11084, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7418", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11078, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7518", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11098, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb74e8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11094, + "col": 47, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81c78", + "inner": [ + { + "id": "0x558a51bb7468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb75e8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11114, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb75b8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11108, + "col": 61, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7e68", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11140, + "line": 340, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:340:24)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7608", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb7750", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11158, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto (unsigned char) const" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "c", + "type": { + "qualType": "unsigned char" + } + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ce8", + "kind": "CXXConversionDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "operator auto (*)(unsigned char)", + "type": { + "qualType": "auto (*() const noexcept)(unsigned char)" + }, + "inline": true, + "constexpr": true + }, + { + "id": "0x558a51bb7da0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "__invoke", + "type": { + "qualType": "auto (unsigned char)" + }, + "storageClass": "static", + "inline": true, + "inner": [ + { + "id": "0x558a51bb7c80", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ef0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11198, + "line": 341, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7f00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11011, + "line": 337, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7300", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11021, + "line": 338, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11046, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "loc": { + "offset": 11033, + "col": 21, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11021, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb72d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb7280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7e90", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11187, + "line": 340, + "col": 71, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7338", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11061, + "col": 14, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": false, + "name": "transform", + "lookups": [ + { + "id": "0x558a51084b18", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a51093238", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510cf5f0", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510d0570", + "kind": "FunctionTemplateDecl", + "name": "transform" + } + ] + }, + { + "id": "0x558a51bb7448", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11084, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7418", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11078, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7518", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11098, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb74e8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11094, + "col": 47, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81c78", + "inner": [ + { + "id": "0x558a51bb7468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb75e8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11114, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb75b8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11108, + "col": 61, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7e68", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11140, + "line": 340, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:340:24)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7608", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb7750", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11158, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto (unsigned char) const" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "c", + "type": { + "qualType": "unsigned char" + } + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ce8", + "kind": "CXXConversionDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "operator auto (*)(unsigned char)", + "type": { + "qualType": "auto (*() const noexcept)(unsigned char)" + }, + "inline": true, + "constexpr": true + }, + { + "id": "0x558a51bb7da0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "__invoke", + "type": { + "qualType": "auto (unsigned char)" + }, + "storageClass": "static", + "inline": true, + "inner": [ + { + "id": "0x558a51bb7c80", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ef0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11198, + "line": 341, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb86b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11227, + "line": 344, + "col": 5, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb7fe0", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11231, + "line": 344, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb7fa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11231, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11231, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb7fc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"mhz\"" + } + ] + }, + { + "id": "0x558a51bb8120", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11251, + "col": 29, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11305, + "line": 346, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8110", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11261, + "line": 345, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11298, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb80e8", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11268, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11298, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb80b8", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11270, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11297, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb80a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8068", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "opcode": "*", + "inner": [ + { + "id": "0x558a51bb8050", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb8010", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + }, + { + "id": "0x558a51bb8030", + "kind": "FloatingLiteral", + "range": { + "begin": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "value": "1.0E+6" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8680", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11312, + "line": 346, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb8178", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11316, + "line": 346, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb8138", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11316, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11316, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb8158", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"khz\"" + } + ] + }, + { + "id": "0x558a51bb82b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11336, + "col": 36, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11390, + "line": 348, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb82a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11346, + "line": 347, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11383, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8280", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11353, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11383, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb8250", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11355, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11382, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb8238", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8200", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "opcode": "*", + "inner": [ + { + "id": "0x558a51bb81e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb81a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + }, + { + "id": "0x558a51bb81c8", + "kind": "FloatingLiteral", + "range": { + "begin": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "value": "1000" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8650", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11397, + "line": 348, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb83b8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11401, + "line": 348, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51bb8338", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11417, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb82f0", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11411, + "col": 26, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "empty", + "inner": [ + { + "id": "0x558a51bb82d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb8398", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb8358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb8378", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"hz\"" + } + ] + } + ] + }, + { + "id": "0x558a51bb84b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11441, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11489, + "line": 350, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb84a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11451, + "line": 349, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11482, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8480", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11458, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11482, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb8450", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11460, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11481, + "col": 39, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb8438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8420", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb83e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8638", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11496, + "line": 350, + "col": 12, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8620", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 11506, + "line": 351, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb8608", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 11506, + "line": 351, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb85e0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb85c0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb85b8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb8588", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb8570", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb84e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[52]" + }, + "valueCategory": "lvalue", + "value": "\"Invalid unit in conversion from string to frequency\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 11627, + "file": "../include/sls/ToString.h", + "line": 356, + "col": 25, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11603, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bb8710", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 11622, + "line": 356, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11613, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11622, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bb8910", + "kind": "FunctionDecl", + "loc": { + "offset": 11627, + "col": 25, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11625, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &)" + }, + "inner": [ + { + "id": "0x558a51bb8808", + "kind": "ParmVarDecl", + "loc": { + "offset": 11655, + "line": 356, + "col": 53, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11636, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11655, + "col": 53, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "t", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb98a8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11658, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb9470", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11664, + "line": 357, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11682, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "loc": { + "offset": 11676, + "col": 17, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11664, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11681, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51bb9440", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11676, + "col": 17, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11681, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "list": true, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb8b40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11680, + "col": 21, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11680, + "col": 21, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8808", + "kind": "ParmVarDecl", + "name": "t", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb9758", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11688, + "line": 358, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11715, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb94a0", + "kind": "VarDecl", + "loc": { + "offset": 11693, + "col": 10, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11688, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb9740", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb9638", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb9630", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb9608", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb95f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::string (*)(std::string &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb9570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::string (std::string &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515dba80", + "kind": "FunctionDecl", + "name": "RemoveUnit", + "type": { + "qualType": "std::string (std::string &)" + } + } + } + ] + }, + { + "id": "0x558a51bb9550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11711, + "col": 28, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11711, + "col": 28, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb9898", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11721, + "line": 359, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11749, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb9868", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11728, + "col": 12, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11749, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb97a0", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11728, + "col": 12, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11738, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "StringTo", + "lookups": [ + { + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51bb8760", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51bb8710", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb9828", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11740, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11740, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + }, + { + "id": "0x558a51bb9848", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11745, + "col": 29, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11745, + "col": 29, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb94a0", + "kind": "VarDecl", + "name": "unit", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f0e4c0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::detectorType (const std::string &)" + } + }, + { + "id": "0x558a51f1a4a0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + } + }, + { + "id": "0x558a51f342d0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + } + }, + { + "id": "0x558a51f3ee40", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingMode (const std::string &)" + } + }, + { + "id": "0x558a51f45d00", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + } + }, + { + "id": "0x558a51f4a3c0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + } + }, + { + "id": "0x558a51f4d5d0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + } + }, + { + "id": "0x558a51f53080", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + } + }, + { + "id": "0x558a51f59f80", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + } + }, + { + "id": "0x558a51fdff60", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + } + }, + { + "id": "0x558a51fe8260", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::burstMode (const std::string &)" + } + }, + { + "id": "0x558a51fedcf0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + } + }, + { + "id": "0x558a51ff0f40", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + } + }, + { + "id": "0x558a51ff9230", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::portPosition (const std::string &)" + } + }, + { + "id": "0x558a51ffecb0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + } + }, + { + "id": "0x558a52004ac0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + } + }, + { + "id": "0x558a52007ce0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::gainMode (const std::string &)" + } + }, + { + "id": "0x558a5200ffd0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::polarity (const std::string &)" + } + }, + { + "id": "0x558a520131e0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + } + }, + { + "id": "0x558a52016430", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + } + }, + { + "id": "0x558a51bc0990", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "RegisterAddress (const std::string &)" + } + }, + { + "id": "0x558a51bc0ea0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "RegisterValue (const std::string &)" + } + }, + { + "id": "0x558a52019620", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint8_t (const std::string &)" + } + }, + { + "id": "0x558a5201e790", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint16_t (const std::string &)" + } + }, + { + "id": "0x558a52020810", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint32_t (const std::string &)" + } + }, + { + "id": "0x558a52021880", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint64_t (const std::string &)" + } + }, + { + "id": "0x558a520228f8", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "int (const std::string &)" + } + }, + { + "id": "0x558a52023900", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "bool (const std::string &)" + } + }, + { + "id": "0x558a52029d80", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "int64_t (const std::string &)" + } + } + ] +} +{ + "id": "0x558a51bb9aa0", + "kind": "FunctionDecl", + "loc": { + "offset": 11786, + "file": "../include/sls/ToString.h", + "line": 362, + "col": 32, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11755, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11815, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bb9d10", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "inner": [ + { + "id": "0x558a5144b720", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "decl": { + "id": "0x558a5144b680", + "kind": "EnumDecl", + "name": "detectorType" + } + } + ] + }, + { + "id": "0x558a51bb9980", + "kind": "ParmVarDecl", + "loc": { + "offset": 11814, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11795, + "col": 41, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11814, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bba030", + "kind": "FunctionDecl", + "loc": { + "offset": 11853, + "file": "../include/sls/ToString.h", + "line": 363, + "col": 36, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11818, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11882, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bba2a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "inner": [ + { + "id": "0x558a5152da90", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "decl": { + "id": "0x558a5152d9e8", + "kind": "EnumDecl", + "name": "detectorSettings" + } + } + ] + }, + { + "id": "0x558a51bb9f10", + "kind": "ParmVarDecl", + "loc": { + "offset": 11881, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11862, + "col": 45, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11881, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bba5c0", + "kind": "FunctionDecl", + "loc": { + "offset": 11914, + "file": "../include/sls/ToString.h", + "line": 364, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11885, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11943, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bba830", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "inner": [ + { + "id": "0x558a5152e840", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "decl": { + "id": "0x558a5152e798", + "kind": "EnumDecl", + "name": "speedLevel" + } + } + ] + }, + { + "id": "0x558a51bba4a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 11942, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11923, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11942, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbab50", + "kind": "FunctionDecl", + "loc": { + "offset": 11975, + "file": "../include/sls/ToString.h", + "line": 365, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11946, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12004, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbadc0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "inner": [ + { + "id": "0x558a5152b060", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "decl": { + "id": "0x558a5152afb8", + "kind": "EnumDecl", + "name": "timingMode" + } + } + ] + }, + { + "id": "0x558a51bbaa30", + "kind": "ParmVarDecl", + "loc": { + "offset": 12003, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11984, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12003, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbb0e0", + "kind": "FunctionDecl", + "loc": { + "offset": 12044, + "file": "../include/sls/ToString.h", + "line": 366, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12007, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12073, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbb350", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "inner": [ + { + "id": "0x558a51529090", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "decl": { + "id": "0x558a51528fe8", + "kind": "EnumDecl", + "name": "frameDiscardPolicy" + } + } + ] + }, + { + "id": "0x558a51bbafc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12072, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12053, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12072, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbb670", + "kind": "FunctionDecl", + "loc": { + "offset": 12105, + "file": "../include/sls/ToString.h", + "line": 367, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12076, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12134, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbb8e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "inner": [ + { + "id": "0x558a515292b0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "decl": { + "id": "0x558a51529210", + "kind": "EnumDecl", + "name": "fileFormat" + } + } + ] + }, + { + "id": "0x558a51bbb550", + "kind": "ParmVarDecl", + "loc": { + "offset": 12133, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12114, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12133, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbbc00", + "kind": "FunctionDecl", + "loc": { + "offset": 12174, + "file": "../include/sls/ToString.h", + "line": 368, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12137, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12203, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbbe70", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "inner": [ + { + "id": "0x558a5152ae10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "decl": { + "id": "0x558a5152ad68", + "kind": "EnumDecl", + "name": "externalSignalFlag" + } + } + ] + }, + { + "id": "0x558a51bbbae0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12202, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12183, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12202, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbc190", + "kind": "FunctionDecl", + "loc": { + "offset": 12236, + "file": "../include/sls/ToString.h", + "line": 369, + "col": 31, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12206, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12265, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbc400", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "inner": [ + { + "id": "0x558a5152e590", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "decl": { + "id": "0x558a5152e4e8", + "kind": "EnumDecl", + "name": "readoutMode" + } + } + ] + }, + { + "id": "0x558a51bbc070", + "kind": "ParmVarDecl", + "loc": { + "offset": 12264, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12245, + "col": 40, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12264, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbc720", + "kind": "FunctionDecl", + "loc": { + "offset": 12295, + "file": "../include/sls/ToString.h", + "line": 370, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12268, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12324, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbc990", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "inner": [ + { + "id": "0x558a5152b360", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "decl": { + "id": "0x558a5152b2b8", + "kind": "EnumDecl", + "name": "dacIndex" + } + } + ] + }, + { + "id": "0x558a51bbc600", + "kind": "ParmVarDecl", + "loc": { + "offset": 12323, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12304, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12323, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbccb0", + "kind": "FunctionDecl", + "loc": { + "offset": 12356, + "file": "../include/sls/ToString.h", + "line": 371, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12327, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12385, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbcf20", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10powerIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "inner": [ + { + "id": "0x558a5152d5d0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "decl": { + "id": "0x558a5152d530", + "kind": "EnumDecl", + "name": "powerIndex" + } + } + ] + }, + { + "id": "0x558a51bbcb90", + "kind": "ParmVarDecl", + "loc": { + "offset": 12384, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12365, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12384, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbd240", + "kind": "FunctionDecl", + "loc": { + "offset": 12416, + "file": "../include/sls/ToString.h", + "line": 372, + "col": 29, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12388, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12445, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbd4b0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::burstMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "inner": [ + { + "id": "0x558a5152eaf0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "decl": { + "id": "0x558a5152ea48", + "kind": "EnumDecl", + "name": "burstMode" + } + } + ] + }, + { + "id": "0x558a51bbd120", + "kind": "ParmVarDecl", + "loc": { + "offset": 12444, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12425, + "col": 38, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12444, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbd7d0", + "kind": "FunctionDecl", + "loc": { + "offset": 12483, + "file": "../include/sls/ToString.h", + "line": 373, + "col": 36, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12448, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12512, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbda40", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "inner": [ + { + "id": "0x558a5152eda0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "decl": { + "id": "0x558a5152ecf8", + "kind": "EnumDecl", + "name": "timingSourceType" + } + } + ] + }, + { + "id": "0x558a51bbd6b0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12511, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12492, + "col": 45, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12511, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbdd60", + "kind": "FunctionDecl", + "loc": { + "offset": 12545, + "file": "../include/sls/ToString.h", + "line": 374, + "col": 31, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12515, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12574, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbdfd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "inner": [ + { + "id": "0x558a5152ef10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "decl": { + "id": "0x558a5152ee70", + "kind": "EnumDecl", + "name": "M3_GainCaps" + } + } + ] + }, + { + "id": "0x558a51bbdc40", + "kind": "ParmVarDecl", + "loc": { + "offset": 12573, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12554, + "col": 40, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12573, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbe2f0", + "kind": "FunctionDecl", + "loc": { + "offset": 12608, + "file": "../include/sls/ToString.h", + "line": 375, + "col": 32, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12577, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12637, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbe560", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::portPosition (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "inner": [ + { + "id": "0x558a5152f570", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "decl": { + "id": "0x558a5152f4d0", + "kind": "EnumDecl", + "name": "portPosition" + } + } + ] + }, + { + "id": "0x558a51bbe1d0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12636, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12617, + "col": 41, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12636, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbe880", + "kind": "FunctionDecl", + "loc": { + "offset": 12677, + "file": "../include/sls/ToString.h", + "line": 376, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12640, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12706, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbeaf0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "inner": [ + { + "id": "0x558a5152f930", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "decl": { + "id": "0x558a5152f890", + "kind": "EnumDecl", + "name": "streamingInterface" + } + } + ] + }, + { + "id": "0x558a51bbe760", + "kind": "ParmVarDecl", + "loc": { + "offset": 12705, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12686, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12705, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbee10", + "kind": "FunctionDecl", + "loc": { + "offset": 12741, + "file": "../include/sls/ToString.h", + "line": 377, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12709, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12770, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbf080", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "inner": [ + { + "id": "0x558a5152fd10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "decl": { + "id": "0x558a5152fc70", + "kind": "EnumDecl", + "name": "vetoAlgorithm" + } + } + ] + }, + { + "id": "0x558a51bbecf0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12769, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12750, + "col": 42, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12769, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbf3a0", + "kind": "FunctionDecl", + "loc": { + "offset": 12800, + "file": "../include/sls/ToString.h", + "line": 378, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12773, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12829, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbf610", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::gainMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "inner": [ + { + "id": "0x558a5152fe80", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "decl": { + "id": "0x558a5152fde0", + "kind": "EnumDecl", + "name": "gainMode" + } + } + ] + }, + { + "id": "0x558a51bbf280", + "kind": "ParmVarDecl", + "loc": { + "offset": 12828, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12809, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12828, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbf930", + "kind": "FunctionDecl", + "loc": { + "offset": 12859, + "file": "../include/sls/ToString.h", + "line": 379, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12832, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12888, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbfba0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::polarity (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "inner": [ + { + "id": "0x558a51530150", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "decl": { + "id": "0x558a515300b0", + "kind": "EnumDecl", + "name": "polarity" + } + } + ] + }, + { + "id": "0x558a51bbf810", + "kind": "ParmVarDecl", + "loc": { + "offset": 12887, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12868, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12887, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bbfec0", + "kind": "FunctionDecl", + "loc": { + "offset": 12927, + "file": "../include/sls/ToString.h", + "line": 380, + "col": 37, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12891, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12956, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc0130", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "inner": [ + { + "id": "0x558a515302c0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "decl": { + "id": "0x558a51530220", + "kind": "EnumDecl", + "name": "timingInfoDecoder" + } + } + ] + }, + { + "id": "0x558a51bbfda0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12955, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12936, + "col": 46, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12955, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc0450", + "kind": "FunctionDecl", + "loc": { + "offset": 12992, + "file": "../include/sls/ToString.h", + "line": 381, + "col": 34, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12959, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13021, + "col": 63, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc06c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "inner": [ + { + "id": "0x558a51530430", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "decl": { + "id": "0x558a51530390", + "kind": "EnumDecl", + "name": "collectionMode" + } + } + ] + }, + { + "id": "0x558a51bc0330", + "kind": "ParmVarDecl", + "loc": { + "offset": 13020, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13001, + "col": 43, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13020, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc0990", + "kind": "FunctionDecl", + "loc": { + "offset": 13052, + "file": "../include/sls/ToString.h", + "line": 382, + "col": 29, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13024, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13081, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc0bd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToINS_15RegisterAddressEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "RegisterAddress (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "sls::RegisterAddress" + }, + "inner": [ + { + "id": "0x558a515bd700", + "kind": "RecordType", + "type": { + "qualType": "sls::RegisterAddress" + }, + "decl": { + "id": "0x558a515bd670", + "kind": "CXXRecordDecl", + "name": "RegisterAddress" + } + } + ] + }, + { + "id": "0x558a51bc0880", + "kind": "ParmVarDecl", + "loc": { + "offset": 13080, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13061, + "col": 38, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13080, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc0ea0", + "kind": "FunctionDecl", + "loc": { + "offset": 13110, + "file": "../include/sls/ToString.h", + "line": 383, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13084, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13139, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc10e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToINS_13RegisterValueEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "RegisterValue (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "sls::RegisterValue" + }, + "inner": [ + { + "id": "0x558a515c0d60", + "kind": "RecordType", + "type": { + "qualType": "sls::RegisterValue" + }, + "decl": { + "id": "0x558a515c0cd0", + "kind": "CXXRecordDecl", + "name": "RegisterValue" + } + } + ] + }, + { + "id": "0x558a51bc0d90", + "kind": "ParmVarDecl", + "loc": { + "offset": 13138, + "col": 55, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13119, + "col": 36, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13138, + "col": 55, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc13b0", + "kind": "FunctionDecl", + "loc": { + "offset": 13163, + "file": "../include/sls/ToString.h", + "line": 385, + "col": 21, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13143, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13192, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc15f0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint8_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned char" + }, + "inner": [ + { + "id": "0x558a5015ac50", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned char" + } + } + ] + }, + { + "id": "0x558a51bc12a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13191, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13172, + "col": 30, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13191, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc18c0", + "kind": "FunctionDecl", + "loc": { + "offset": 13216, + "file": "../include/sls/ToString.h", + "line": 386, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13195, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13245, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc1b00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint16_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned short" + }, + "inner": [ + { + "id": "0x558a5015ac70", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned short" + } + } + ] + }, + { + "id": "0x558a51bc17b0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13244, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13225, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13244, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc1dd0", + "kind": "FunctionDecl", + "loc": { + "offset": 13269, + "file": "../include/sls/ToString.h", + "line": 387, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13248, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13298, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2010", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint32_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned int" + }, + "inner": [ + { + "id": "0x558a5015ac90", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned int" + } + } + ] + }, + { + "id": "0x558a51bc1cc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13297, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13278, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13297, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc22a0", + "kind": "FunctionDecl", + "loc": { + "offset": 13322, + "file": "../include/sls/ToString.h", + "line": 388, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13301, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13351, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc24e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned long" + }, + "inner": [ + { + "id": "0x558a5015acb0", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned long" + } + } + ] + }, + { + "id": "0x558a51bc21d0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13350, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13331, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13350, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc27b8", + "kind": "FunctionDecl", + "loc": { + "offset": 13370, + "file": "../include/sls/ToString.h", + "line": 389, + "col": 17, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13354, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13399, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2a00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "int" + }, + "inner": [ + { + "id": "0x558a5015abf0", + "kind": "BuiltinType", + "type": { + "qualType": "int" + } + } + ] + }, + { + "id": "0x558a51bc26a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13398, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13379, + "col": 26, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13398, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc2c90", + "kind": "FunctionDecl", + "loc": { + "offset": 13419, + "file": "../include/sls/ToString.h", + "line": 390, + "col": 18, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13402, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13448, + "col": 47, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2ed0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "bool (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "bool" + }, + "inner": [ + { + "id": "0x558a5015ab70", + "kind": "BuiltinType", + "type": { + "qualType": "bool" + } + } + ] + }, + { + "id": "0x558a51bc2bc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13447, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13428, + "col": 27, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13447, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc3260", + "kind": "FunctionDecl", + "loc": { + "offset": 13456, + "file": "../include/sls/ToString.h", + "line": 391, + "col": 6, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13451, + "col": 1, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13510, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isUsed": true, + "name": "StringTo", + "mangledName": "_ZN3sls8StringToERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN15slsDetectorDefs10boolFormatE", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "inner": [ + { + "id": "0x558a51bc3078", + "kind": "ParmVarDecl", + "loc": { + "offset": 13484, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13465, + "col": 15, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13484, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bc3140", + "kind": "ParmVarDecl", + "loc": { + "offset": 13504, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13487, + "col": 37, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13504, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + } + ] +} +{ + "id": "0x558a51bc34a0", + "kind": "FunctionDecl", + "loc": { + "offset": 13533, + "file": "../include/sls/ToString.h", + "line": 392, + "col": 21, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13513, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13562, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc36e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "long" + }, + "inner": [ + { + "id": "0x558a5015ac10", + "kind": "BuiltinType", + "type": { + "qualType": "long" + } + } + ] + }, + { + "id": "0x558a51bc3398", + "kind": "ParmVarDecl", + "loc": { + "offset": 13561, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13542, + "col": 30, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13561, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +} +{ + "id": "0x558a51bc4698", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 13799, + "file": "../include/sls/ToString.h", + "line": 402, + "col": 16, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13762, + "line": 401, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bc4020", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 13781, + "line": 401, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13772, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13781, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bc45f0", + "kind": "FunctionDecl", + "loc": { + "offset": 13799, + "line": 402, + "col": 16, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13784, + "col": 1, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "std::vector (const std::vector &)" + }, + "inner": [ + { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "loc": { + "offset": 13840, + "line": 402, + "col": 57, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13808, + "col": 25, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13840, + "col": 57, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + }, + { + "id": "0x558a51bfdaa0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 13849, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bc4990", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13855, + "line": 403, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13876, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "loc": { + "offset": 13870, + "col": 20, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13855, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13870, + "col": 20, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "nrvo": true + } + ] + }, + { + "id": "0x558a51bee930", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13882, + "line": 404, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13911, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bc49c8", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13889, + "col": 12, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "reserve", + "inner": [ + { + "id": "0x558a51bc49a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + }, + { + "id": "0x558a51bee408", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13910, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a5135d888" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bee3d8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13905, + "col": 28, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "size", + "isArrow": false, + "referencedMemberDecl": "0x558a51be2de0", + "inner": [ + { + "id": "0x558a51bc4a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfd868", + "kind": "CXXForRangeStmt", + "range": { + "begin": { + "offset": 13918, + "line": 405, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13987, + "line": 406, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + {}, + { + "id": "0x558a51beec68", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13939, + "line": 405, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beea70", + "kind": "VarDecl", + "loc": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__range2", + "type": { + "qualType": "const std::vector &" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bee958", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bfa520", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "loc": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51beee50", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51beee20", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a51be1e88", + "inner": [ + { + "id": "0x558a51beec80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beea70", + "kind": "VarDecl", + "name": "__range2", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfa538", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beed58", + "kind": "VarDecl", + "loc": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__end2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bfa440", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfa410", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a51be2118", + "inner": [ + { + "id": "0x558a51beeca0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beea70", + "kind": "VarDecl", + "name": "__range2", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfd338", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51bfd320", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfcf70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bfb108", + "kind": "FunctionDecl", + "name": "operator!=", + "type": { + "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfcf40", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfa550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + }, + { + "id": "0x558a51bfcf58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfa570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beed58", + "kind": "VarDecl", + "name": "__end2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bfd4d8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "__normal_iterator *, vector>>" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a51bfd4c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "__normal_iterator *, vector>> &(*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfd390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "__normal_iterator *, vector>> &() noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bf8e60", + "kind": "CXXMethodDecl", + "name": "operator++", + "type": { + "qualType": "__normal_iterator *, vector>> &() noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfd370", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + }, + { + "id": "0x558a51beea38", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13923, + "col": 10, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13946, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bee9d0", + "kind": "VarDecl", + "loc": { + "offset": 13935, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13923, + "col": 10, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "s", + "type": { + "qualType": "std::basic_string const &" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bfd6a8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const std::basic_string" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a51bfd690", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "reference (*)() const noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfd578", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "reference () const noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bf89f8", + "kind": "CXXMethodDecl", + "name": "operator*", + "type": { + "qualType": "reference () const noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfd560", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const __gnu_cxx::__normal_iterator *, std::vector>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfd540", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfda40", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13956, + "line": 406, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13987, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfd8e8", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13963, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "push_back", + "inner": [ + { + "id": "0x558a51bfd8c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + }, + { + "id": "0x558a51bfda18", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13973, + "col": 26, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13986, + "col": 39, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfd968", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 13973, + "col": 26, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13983, + "col": 36, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "StringTo", + "lookups": [ + { + "id": "0x558a51bc4698", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51bc4070", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51bc4020", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bfd9f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13985, + "col": 38, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13985, + "col": 38, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "std::basic_string const" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bee9d0", + "kind": "VarDecl", + "name": "s", + "type": { + "qualType": "std::basic_string const &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfda88", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 13994, + "line": 407, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bfda68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f0e4c0", + "kind": "FunctionDecl", + "loc": { + "offset": 23590, + "file": "ToString.cpp", + "line": 774, + "col": 32, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 23559, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 24209, + "line": 794, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bb9aa0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "inner": [ + { + "id": "0x558a5144b720", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "decl": { + "id": "0x558a5144b680", + "kind": "EnumDecl", + "name": "detectorType" + } + } + ] + }, + { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 23618, + "line": 774, + "col": 60, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 23599, + "col": 41, + "tokLen": 5 + }, + "end": { + "offset": 23618, + "col": 60, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f1a2b0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 23621, + "col": 63, + "tokLen": 1 + }, + "end": { + "offset": 24209, + "line": 794, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f0fab0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23627, + "line": 775, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23666, + "line": 776, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f0fa00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23631, + "line": 775, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f0f9e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23633, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23633, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f0f9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23633, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23633, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f0e6a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23631, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23631, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f0f9b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23636, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f0e6c8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23636, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"Eiger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f0faa0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23653, + "line": 776, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23666, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f0fa70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23666, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b798", + "kind": "EnumConstantDecl", + "name": "EIGER", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f10ee0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23677, + "line": 777, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23719, + "line": 778, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f10e30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23681, + "line": 777, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f10e18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23683, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23683, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f10df8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23683, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23683, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f0fad0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23681, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23681, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f10de0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23686, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f0faf0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23686, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"Gotthard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f10ed0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23706, + "line": 778, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23719, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f10ea0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23713, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23719, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b818", + "kind": "EnumConstantDecl", + "name": "GOTTHARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f12310", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23733, + "line": 779, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23775, + "line": 780, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f12260", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23737, + "line": 779, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f12248", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23739, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23739, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f12228", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23739, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23739, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f10f00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23737, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23737, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f12210", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23742, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f10f20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23742, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"Jungfrau\"" + } + ] + } + ] + }, + { + "id": "0x558a51f12300", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23762, + "line": 780, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23775, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f122d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23769, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23775, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b870", + "kind": "EnumConstantDecl", + "name": "JUNGFRAU", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f13740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23789, + "line": 781, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23836, + "line": 782, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f13690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23793, + "line": 781, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f13678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f13658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f12330", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23793, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23793, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f13640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23798, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f12350", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23798, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"ChipTestBoard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f13730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23823, + "line": 782, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23836, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f13700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23830, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23836, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b8c8", + "kind": "EnumConstantDecl", + "name": "CHIPTESTBOARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f14b70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23855, + "line": 783, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23895, + "line": 784, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f14ac0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23859, + "line": 783, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f14aa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f14a88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f13760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23859, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23859, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f14a70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f13780", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"Moench\"" + } + ] + } + ] + }, + { + "id": "0x558a51f14b60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23882, + "line": 784, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23895, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f14b30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23889, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23895, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b920", + "kind": "EnumConstantDecl", + "name": "MOENCH", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f15fa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23907, + "line": 785, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23948, + "line": 786, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f15ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23911, + "line": 785, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f15ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f15eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f14b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23911, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f15ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23916, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f14bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23916, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"Mythen3\"" + } + ] + } + ] + }, + { + "id": "0x558a51f15f90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23935, + "line": 786, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23948, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f15f60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23942, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23948, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b978", + "kind": "EnumConstantDecl", + "name": "MYTHEN3", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f173d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23961, + "line": 787, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24004, + "line": 788, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f17320", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23965, + "line": 787, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f17308", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23967, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23967, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f172e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23967, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23967, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f15fc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23965, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23965, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f172d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23970, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f15fe0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23970, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"Gotthard2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f173c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23991, + "line": 788, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24004, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f17390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23998, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24004, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b9d0", + "kind": "EnumConstantDecl", + "name": "GOTTHARD2", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f18840", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24019, + "line": 789, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24073, + "line": 790, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f18790", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24023, + "line": 789, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f18778", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24025, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24025, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f18758", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24025, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24025, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f173f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24023, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24023, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f18740", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24028, + "col": 14, + "tokLen": 22 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f17410", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24028, + "col": 14, + "tokLen": 22 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Xilinx_ChipTestBoard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f18830", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24060, + "line": 790, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24073, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f18800", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24067, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24073, + "col": 22, + "tokLen": 20 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144ba28", + "kind": "EnumConstantDecl", + "name": "XILINX_CHIPTESTBOARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f19c70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24099, + "line": 791, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24143, + "line": 792, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f19bc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24103, + "line": 791, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f19ba8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24105, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24105, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f19b88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24105, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24105, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f18860", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24103, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24103, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f19b70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24108, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f18880", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24108, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"Matterhorn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f19c60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24130, + "line": 792, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24143, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f19c30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24137, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24143, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bab0", + "kind": "EnumConstantDecl", + "name": "MATTERHORN", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1a298", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 24159, + "line": 793, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f1a280", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 24159, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f1a258", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f1a238", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f1a230", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f1a200", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f1a1e8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f1a1d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f1a1b0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f1a1a8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f1a170", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1a158", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24203, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 24203, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1a138", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24203, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 24203, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f1a120", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24178, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f19ca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24178, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown detector type \"" + } + ] + }, + { + "id": "0x558a51f19cd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24205, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f1a4a0", + "kind": "FunctionDecl", + "loc": { + "offset": 24247, + "file": "ToString.cpp", + "line": 796, + "col": 36, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 24212, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 25496, + "line": 838, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bba030", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "inner": [ + { + "id": "0x558a5152da90", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "decl": { + "id": "0x558a5152d9e8", + "kind": "EnumDecl", + "name": "detectorSettings" + } + } + ] + }, + { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "loc": { + "offset": 24275, + "line": 796, + "col": 64, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 24256, + "col": 45, + "tokLen": 5 + }, + "end": { + "offset": 24275, + "col": 64, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f34088", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 24278, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 25496, + "line": 838, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f1ba90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24284, + "line": 797, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24326, + "line": 798, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1b9e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24288, + "line": 797, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1b9c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24290, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24290, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1b9a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24290, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24290, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1a688", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24288, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24288, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1b990", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24293, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1a6a8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24293, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"standard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1ba80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24313, + "line": 798, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24326, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1ba50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24320, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24326, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dab0", + "kind": "EnumConstantDecl", + "name": "STANDARD", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1cec0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24340, + "line": 799, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24378, + "line": 800, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f1ce10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24344, + "line": 799, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1cdf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24346, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24346, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1cdd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24346, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24346, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1bab0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24344, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24344, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1cdc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24349, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1bad0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24349, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"fast\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1ceb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24365, + "line": 800, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24378, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f1ce80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24372, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24378, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152db08", + "kind": "EnumConstantDecl", + "name": "FAST", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1e2f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24388, + "line": 801, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24430, + "line": 802, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1e240", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24392, + "line": 801, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1e228", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24394, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24394, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1e208", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24394, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24394, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1cee0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24392, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24392, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1e1f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24397, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1cf00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24397, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"highgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1e2e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24417, + "line": 802, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24430, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1e2b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24424, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24430, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152db60", + "kind": "EnumConstantDecl", + "name": "HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1f720", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24444, + "line": 803, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24489, + "line": 804, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f1f670", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24448, + "line": 803, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1f658", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1f638", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1e310", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24448, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24448, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1f620", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24453, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1e330", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24453, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"dynamicgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1f710", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24476, + "line": 804, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24489, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f1f6e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24483, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24489, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dbb8", + "kind": "EnumConstantDecl", + "name": "DYNAMICGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f20b50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24506, + "line": 805, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24547, + "line": 806, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f20aa0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24510, + "line": 805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f20a88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24512, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24512, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f20a68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24512, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24512, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1f740", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24510, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24510, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f20a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24515, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1f760", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24515, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"lowgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f20b40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24534, + "line": 806, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24547, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f20b10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24541, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24547, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dc10", + "kind": "EnumConstantDecl", + "name": "LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f21f80", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24560, + "line": 807, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24604, + "line": 808, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f21ed0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24564, + "line": 807, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f21eb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24566, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24566, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f21e98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24566, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24566, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f20b70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24564, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24564, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f21e80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24569, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f20b90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24569, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"mediumgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f21f70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24591, + "line": 808, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24604, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f21f40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24598, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24604, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dc68", + "kind": "EnumConstantDecl", + "name": "MEDIUMGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f233b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24620, + "line": 809, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24666, + "line": 810, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f23300", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24624, + "line": 809, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f232e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24626, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24626, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f232c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24626, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24626, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f21fa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24624, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24624, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f232b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24629, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f21fc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24629, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"veryhighgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f233a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24653, + "line": 810, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24666, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f23370", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24666, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dcc0", + "kind": "EnumConstantDecl", + "name": "VERYHIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f247e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24684, + "line": 811, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24727, + "line": 812, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f24730", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24688, + "line": 811, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f24718", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24690, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24690, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f246f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24690, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24690, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f233d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24688, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24688, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f246e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24693, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f233f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24693, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"highgain0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f247d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24714, + "line": 812, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24727, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f247a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24721, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24727, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dd18", + "kind": "EnumConstantDecl", + "name": "HIGHGAIN0", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f25c10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24742, + "line": 813, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24784, + "line": 814, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f25b60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24746, + "line": 813, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f25b48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24748, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24748, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f25b28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24748, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24748, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f24800", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24746, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24746, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f25b10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24751, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f24820", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24751, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"fixgain1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f25c00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24771, + "line": 814, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24784, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f25bd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24778, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24784, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dd70", + "kind": "EnumConstantDecl", + "name": "FIXGAIN1", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f27070", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24798, + "line": 815, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24840, + "line": 816, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f26fc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24802, + "line": 815, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f26fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24804, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24804, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f26f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24804, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24804, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f25c30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24802, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24802, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f26f70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24807, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f25c50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24807, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"fixgain2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f27060", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24827, + "line": 816, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24840, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f27030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24834, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24840, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ddc8", + "kind": "EnumConstantDecl", + "name": "FIXGAIN2", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f284a0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24854, + "line": 817, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24899, + "line": 818, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f283f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24858, + "line": 817, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f283d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24860, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24860, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f283b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24860, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24860, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f27090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24858, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24858, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f283a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24863, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f270b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24863, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"verylowgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f28490", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24886, + "line": 818, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24899, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f28460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24893, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24899, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152de20", + "kind": "EnumConstantDecl", + "name": "VERYLOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f298d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24916, + "line": 819, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24955, + "line": 820, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f29820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24920, + "line": 819, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f29808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24922, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24922, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f297e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24922, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24922, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f284c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24920, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24920, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f297d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24925, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f284e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24925, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g1_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f298c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24942, + "line": 820, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24955, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f29890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24949, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24955, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152de78", + "kind": "EnumConstantDecl", + "name": "G1_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2ad00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24972, + "line": 821, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25011, + "line": 822, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f2ac50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24976, + "line": 821, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2ac38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24978, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24978, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2ac18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24978, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24978, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f298f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24976, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24976, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2ac00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24981, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f29910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24981, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g1_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2acf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24998, + "line": 822, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25011, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f2acc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25005, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25011, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ded0", + "kind": "EnumConstantDecl", + "name": "G1_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2c130", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25027, + "line": 823, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25069, + "line": 824, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51f2c080", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25031, + "line": 823, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2c068", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25033, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25033, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2c048", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25033, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25033, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2ad20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25031, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25031, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2c030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25036, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2ad40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25036, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_hc_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2c120", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25056, + "line": 824, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25069, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51f2c0f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25063, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25069, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152df28", + "kind": "EnumConstantDecl", + "name": "G2_HIGHCAP_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2d560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25094, + "line": 825, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25136, + "line": 826, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2d4b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25098, + "line": 825, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2d498", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25100, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25100, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2d478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25100, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25100, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2c150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25098, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25098, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2d460", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25103, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2c170", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25103, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_hc_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2d550", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25123, + "line": 826, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25136, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2d520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25130, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25136, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152df80", + "kind": "EnumConstantDecl", + "name": "G2_HIGHCAP_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2e990", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25160, + "line": 827, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25202, + "line": 828, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2e8e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25164, + "line": 827, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2e8c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25166, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25166, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2e8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25166, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25166, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2d580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25164, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25164, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2e890", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25169, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2d5a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25169, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_lc_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2e980", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25189, + "line": 828, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25202, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2e950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25196, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25202, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dfd8", + "kind": "EnumConstantDecl", + "name": "G2_LOWCAP_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2fdc0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25226, + "line": 829, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25268, + "line": 830, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51f2fd10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25230, + "line": 829, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2fcf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25232, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25232, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2fcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25232, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25232, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2e9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25230, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25230, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2fcc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25235, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2e9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25235, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_lc_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2fdb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25255, + "line": 830, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25268, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51f2fd80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25262, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25268, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e030", + "kind": "EnumConstantDecl", + "name": "G2_LOWCAP_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f311f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25291, + "line": 831, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25330, + "line": 832, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f31140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25295, + "line": 831, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f31128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f31108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2fde0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25295, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25295, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f310f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25300, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2fe00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25300, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g4_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f311e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25317, + "line": 832, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25330, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f311b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25324, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25330, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e088", + "kind": "EnumConstantDecl", + "name": "G4_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f32620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25347, + "line": 833, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25386, + "line": 834, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f32570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25351, + "line": 833, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f32558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25353, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25353, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f32538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25353, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25353, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f31210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25351, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25351, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f32520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25356, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f31230", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25356, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"gain0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f32610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25373, + "line": 834, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25386, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f325e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25380, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25386, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e138", + "kind": "EnumConstantDecl", + "name": "GAIN0", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f33a50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25397, + "line": 835, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25436, + "line": 836, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f339a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25401, + "line": 835, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f33988", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25403, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25403, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f33968", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25403, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25403, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f32640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25401, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25401, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f33950", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25406, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f32660", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25406, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g4_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f33a40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25423, + "line": 836, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25436, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f33a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25430, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25436, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e0e0", + "kind": "EnumConstantDecl", + "name": "G4_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f34070", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 25452, + "line": 837, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f34058", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 25452, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f34030", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f34010", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f34008", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f33fd8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f33fc0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f33fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f33f88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f33f80", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f33f48", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f33f30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25490, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 25490, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f33f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25490, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 25490, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f33ef8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25471, + "col": 24, + "tokLen": 18 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f33a80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25471, + "col": 24, + "tokLen": 18 + } + }, + "type": { + "qualType": "const char[17]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown setting \"" + } + ] + }, + { + "id": "0x558a51f33aa8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25492, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f342d0", + "kind": "FunctionDecl", + "loc": { + "offset": 25528, + "file": "ToString.cpp", + "line": 840, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 25499, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26053, + "line": 858, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bba5c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "inner": [ + { + "id": "0x558a5152e840", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "decl": { + "id": "0x558a5152e798", + "kind": "EnumDecl", + "name": "speedLevel" + } + } + ] + }, + { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "loc": { + "offset": 25556, + "line": 840, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 25537, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 25556, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f3ec58", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 25559, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 26053, + "line": 858, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f358d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25565, + "line": 841, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25609, + "line": 842, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f35820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25569, + "line": 841, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f35808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25571, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25571, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f357e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25571, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25571, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f344b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25569, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25569, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f357d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25574, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f344d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25574, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"full_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f358c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25596, + "line": 842, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25609, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f35890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25603, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25609, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e860", + "kind": "EnumConstantDecl", + "name": "FULL_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f36d00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25625, + "line": 843, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25660, + "line": 844, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f36c50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25629, + "line": 843, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f36c38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25631, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25631, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f36c18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25631, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25631, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f358f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25629, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25629, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f36c00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25634, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f35910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25634, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f36cf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25647, + "line": 844, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25660, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f36cc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25654, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25660, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e860", + "kind": "EnumConstantDecl", + "name": "FULL_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f38130", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25676, + "line": 845, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25720, + "line": 846, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f38080", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25680, + "line": 845, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f38068", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25682, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25682, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f38048", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25682, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25682, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f36d20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25680, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25680, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f38030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25685, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f36d40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25685, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"half_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f38120", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25707, + "line": 846, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25720, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f380f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25714, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25720, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e8b8", + "kind": "EnumConstantDecl", + "name": "HALF_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f39560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25736, + "line": 847, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25771, + "line": 848, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f394b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25740, + "line": 847, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f39498", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f39478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f38150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25740, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25740, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f39460", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25745, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f38170", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25745, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f39550", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25758, + "line": 848, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25771, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f39520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25765, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25771, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e8b8", + "kind": "EnumConstantDecl", + "name": "HALF_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3a990", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25787, + "line": 849, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25834, + "line": 850, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3a8e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25791, + "line": 849, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3a8c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25793, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25793, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3a8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25793, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25793, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f39580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25791, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25791, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3a890", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25796, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f395a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25796, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"quarter_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3a980", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25821, + "line": 850, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25834, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3a950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25828, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25834, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e910", + "kind": "EnumConstantDecl", + "name": "QUARTER_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3bdc0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25853, + "line": 851, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25888, + "line": 852, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3bd10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25857, + "line": 851, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3bcf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25859, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25859, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3bcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25859, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25859, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3a9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25857, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25857, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3bcc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25862, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3a9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25862, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3bdb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25875, + "line": 852, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25888, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3bd80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25882, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25888, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e910", + "kind": "EnumConstantDecl", + "name": "QUARTER_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3d1f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25907, + "line": 853, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25944, + "line": 854, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3d140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25911, + "line": 853, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3d128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3d108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3bde0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25911, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3d0f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25916, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3be00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25916, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"108\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3d1e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25931, + "line": 854, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25944, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3d1b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25938, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25944, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e968", + "kind": "EnumConstantDecl", + "name": "G2_108MHZ", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3e620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25959, + "line": 855, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25996, + "line": 856, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3e570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25963, + "line": 855, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3e558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25965, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25965, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3e538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25965, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25965, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3d210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25963, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25963, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3e520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25968, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3d230", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25968, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"144\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3e610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25983, + "line": 856, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25996, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3e5e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25990, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25996, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e9c0", + "kind": "EnumConstantDecl", + "name": "G2_144MHZ", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3ec40", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26011, + "line": 857, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f3ec28", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26011, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f3ec00", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f3ebe0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f3ebd8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f3eba8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f3eb90", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f3eb78", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f3eb58", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f3eb50", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f3eb18", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3eb00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26047, + "col": 41, + "tokLen": 1 + }, + "end": { + "offset": 26047, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3eae0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26047, + "col": 41, + "tokLen": 1 + }, + "end": { + "offset": 26047, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f3eac8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26030, + "col": 24, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3e650", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26030, + "col": 24, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown speed \"" + } + ] + }, + { + "id": "0x558a51f3e678", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26049, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f3ee40", + "kind": "FunctionDecl", + "loc": { + "offset": 26085, + "file": "ToString.cpp", + "line": 860, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26056, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26472, + "line": 872, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbab50", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "inner": [ + { + "id": "0x558a5152b060", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "decl": { + "id": "0x558a5152afb8", + "kind": "EnumDecl", + "name": "timingMode" + } + } + ] + }, + { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "loc": { + "offset": 26113, + "line": 860, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26094, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 26113, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f45b30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26116, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 26472, + "line": 872, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f40430", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26122, + "line": 861, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26160, + "line": 862, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f40380", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26126, + "line": 861, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f40368", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26128, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26128, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f40348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26128, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26128, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3f028", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26126, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26126, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f40330", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26131, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3f048", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26131, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"auto\"" + } + ] + } + ] + }, + { + "id": "0x558a51f40420", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26147, + "line": 862, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26160, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f403f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26154, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26160, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b080", + "kind": "EnumConstantDecl", + "name": "AUTO_TIMING", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f41860", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26177, + "line": 863, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26218, + "line": 864, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f417b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26181, + "line": 863, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f41798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26183, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26183, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f41778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26183, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26183, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f40450", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26181, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26181, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f41760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26186, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f40470", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26186, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"trigger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f41850", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26205, + "line": 864, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26218, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f41820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26212, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26218, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b0d8", + "kind": "EnumConstantDecl", + "name": "TRIGGER_EXPOSURE", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f42c90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26240, + "line": 865, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26280, + "line": 866, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f42be0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26244, + "line": 865, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f42bc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26246, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26246, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f42ba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26246, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26246, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f41880", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26244, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26244, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f42b90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26249, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f418a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26249, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"gating\"" + } + ] + } + ] + }, + { + "id": "0x558a51f42c80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26267, + "line": 866, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26280, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f42c50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26274, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26280, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b130", + "kind": "EnumConstantDecl", + "name": "GATED", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f440c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26291, + "line": 867, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26338, + "line": 868, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f44010", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26295, + "line": 867, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f43ff8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f43fd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f42cb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26295, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26295, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f43fc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26300, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f42cd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26300, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"burst_trigger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f440b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26325, + "line": 868, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26338, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f44080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26332, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26338, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b188", + "kind": "EnumConstantDecl", + "name": "BURST_TRIGGER", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f454f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26357, + "line": 869, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26405, + "line": 870, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f45440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26361, + "line": 869, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f45428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26363, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26363, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f45408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26363, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26363, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f440e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26361, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26361, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f453f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26366, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f44100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26366, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_gating\"" + } + ] + } + ] + }, + { + "id": "0x558a51f454e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26392, + "line": 870, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26405, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f454b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26399, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26405, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b1e0", + "kind": "EnumConstantDecl", + "name": "TRIGGER_GATED", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f45b18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26424, + "line": 871, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f45b00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26424, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f45ad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f45ab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f45ab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f45a80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f45a68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f45a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f45a30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f45a28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f459f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f459d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26466, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 26466, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f459b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26466, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 26466, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f459a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26443, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f45520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26443, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown timing mode \"" + } + ] + }, + { + "id": "0x558a51f45550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26468, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f45d00", + "kind": "FunctionDecl", + "loc": { + "offset": 26512, + "file": "ToString.cpp", + "line": 874, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26475, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26813, + "line": 882, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbb0e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "inner": [ + { + "id": "0x558a51529090", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "decl": { + "id": "0x558a51528fe8", + "kind": "EnumDecl", + "name": "frameDiscardPolicy" + } + } + ] + }, + { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "loc": { + "offset": 26540, + "line": 874, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26521, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 26540, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f4a200", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26543, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 26813, + "line": 882, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f47320", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26549, + "line": 875, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26592, + "line": 876, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f47270", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26553, + "line": 875, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f47258", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26555, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26555, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f47238", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26555, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26555, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f45ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26553, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26553, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f47220", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26558, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f45f08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26558, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"nodiscard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f47310", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26579, + "line": 876, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26592, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f472e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26586, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26592, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515290b0", + "kind": "EnumConstantDecl", + "name": "NO_DISCARD", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f48750", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26608, + "line": 877, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26654, + "line": 878, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f486a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26612, + "line": 877, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f48688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26614, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26614, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f48668", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26614, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26614, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f47340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26612, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26612, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f48650", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26617, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f47360", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26617, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"discardempty\"" + } + ] + } + ] + }, + { + "id": "0x558a51f48740", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26641, + "line": 878, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26654, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f48710", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26648, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26654, + "col": 22, + "tokLen": 20 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529108", + "kind": "EnumConstantDecl", + "name": "DISCARD_EMPTY_FRAMES", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f49b80", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26680, + "line": 879, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26728, + "line": 880, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f49ad0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26684, + "line": 879, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f49ab8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26686, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26686, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f49a98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26686, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26686, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f48770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26684, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26684, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f49a80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26689, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f48790", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26689, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"discardpartial\"" + } + ] + } + ] + }, + { + "id": "0x558a51f49b70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26715, + "line": 880, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26728, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f49b40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26722, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26728, + "col": 22, + "tokLen": 22 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529160", + "kind": "EnumConstantDecl", + "name": "DISCARD_PARTIAL_FRAMES", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4a1e8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26756, + "line": 881, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f4a1d0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26756, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f4a1a8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f4a188", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4a180", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4a150", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f4a138", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f4a120", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f4a100", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4a0f8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4a0c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4a0a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26807, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 26807, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4a088", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26807, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 26807, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f4a070", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26775, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f49bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26775, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char[30]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown frame discard policy \"" + } + ] + }, + { + "id": "0x558a51f49be8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26809, + "col": 58, + "tokLen": 1 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f4a3c0", + "kind": "FunctionDecl", + "loc": { + "offset": 26845, + "file": "ToString.cpp", + "line": 884, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26816, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27030, + "line": 890, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbb670", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "inner": [ + { + "id": "0x558a515292b0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "decl": { + "id": "0x558a51529210", + "kind": "EnumDecl", + "name": "fileFormat" + } + } + ] + }, + { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 26873, + "line": 884, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26854, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 26873, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f4d420", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26876, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 27030, + "line": 890, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f4b9b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26882, + "line": 885, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26920, + "line": 886, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f4b900", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26886, + "line": 885, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4b8e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26888, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26888, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4b8c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26888, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26888, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4a5a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26886, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26886, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4b8b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26891, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4a5c8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26891, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hdf5\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4b9a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26907, + "line": 886, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26920, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f4b970", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26914, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26920, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529328", + "kind": "EnumConstantDecl", + "name": "HDF5", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4cde0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26930, + "line": 887, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26970, + "line": 888, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f4cd30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26934, + "line": 887, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4cd18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26936, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26936, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ccf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26936, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26936, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4b9d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26934, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26934, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4cce0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26939, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4b9f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26939, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"binary\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4cdd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26957, + "line": 888, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26970, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f4cda0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26964, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26970, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515292d0", + "kind": "EnumConstantDecl", + "name": "BINARY", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4d408", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26982, + "line": 889, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f4d3f0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26982, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f4d3c8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f4d3a8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4d3a0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4d370", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f4d358", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f4d340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f4d320", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4d318", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4d2e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4d2c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27024, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 27024, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4d2a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27024, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 27024, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f4d290", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27001, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ce10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27001, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown file format \"" + } + ] + }, + { + "id": "0x558a51f4ce40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27026, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f4d5d0", + "kind": "FunctionDecl", + "loc": { + "offset": 27070, + "file": "ToString.cpp", + "line": 892, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27033, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27464, + "line": 902, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbbc00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "inner": [ + { + "id": "0x558a5152ae10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "decl": { + "id": "0x558a5152ad68", + "kind": "EnumDecl", + "name": "externalSignalFlag" + } + } + ] + }, + { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "loc": { + "offset": 27098, + "line": 892, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27079, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 27098, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f52eb8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27101, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 27464, + "line": 902, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f4ebd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27107, + "line": 893, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27163, + "line": 894, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f4eb20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27111, + "line": 893, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4eb08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27113, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27113, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4eae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27113, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27113, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4d7b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27111, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27111, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4ead0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27116, + "col": 14, + "tokLen": 24 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4d7d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27116, + "col": 14, + "tokLen": 24 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_in_rising_edge\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4ebc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27150, + "line": 894, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27163, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f4eb90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27157, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27163, + "col": 22, + "tokLen": 22 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ae30", + "kind": "EnumConstantDecl", + "name": "TRIGGER_IN_RISING_EDGE", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f50010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27191, + "line": 895, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27248, + "line": 896, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f4ff60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27195, + "line": 895, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4ff48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27197, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27197, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ff28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27197, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27197, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4ebf0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27195, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27195, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4ff10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27200, + "col": 14, + "tokLen": 25 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ec10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27200, + "col": 14, + "tokLen": 25 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_in_falling_edge\"" + } + ] + } + ] + }, + { + "id": "0x558a51f50000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27235, + "line": 896, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27248, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f4ffd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27242, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27248, + "col": 22, + "tokLen": 23 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ae88", + "kind": "EnumConstantDecl", + "name": "TRIGGER_IN_FALLING_EDGE", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f51440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27277, + "line": 897, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27323, + "line": 898, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f51390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27281, + "line": 897, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f51378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27283, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27283, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f51358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27283, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27283, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f50030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27281, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27281, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f51340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27286, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f50050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27286, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"inversion_on\"" + } + ] + } + ] + }, + { + "id": "0x558a51f51430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27310, + "line": 898, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27323, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f51400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27323, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152aee0", + "kind": "EnumConstantDecl", + "name": "INVERSION_ON", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f52870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27341, + "line": 899, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27388, + "line": 900, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f527c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27345, + "line": 899, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f527a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f52788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f51460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27345, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27345, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f52770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27350, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f51480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27350, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"inversion_off\"" + } + ] + } + ] + }, + { + "id": "0x558a51f52860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27375, + "line": 900, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27388, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f52830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27382, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27388, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152af38", + "kind": "EnumConstantDecl", + "name": "INVERSION_OFF", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f52ea0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 27407, + "line": 901, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f52e88", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 27407, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f52e60", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f52e40", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f52e38", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f52e08", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f52df0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f52dd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f52db8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f52db0", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f52d78", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f52d60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27458, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 27458, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f52d40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27458, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 27458, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f52d28", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27426, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f528a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27426, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char[30]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown external signal flag \"" + } + ] + }, + { + "id": "0x558a51f528d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27460, + "col": 58, + "tokLen": 1 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f53080", + "kind": "FunctionDecl", + "loc": { + "offset": 27497, + "file": "ToString.cpp", + "line": 904, + "col": 31, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27467, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27920, + "line": 916, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbc190", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "inner": [ + { + "id": "0x558a5152e590", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "decl": { + "id": "0x558a5152e4e8", + "kind": "EnumDecl", + "name": "readoutMode" + } + } + ] + }, + { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "loc": { + "offset": 27525, + "line": 904, + "col": 59, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27506, + "col": 40, + "tokLen": 5 + }, + "end": { + "offset": 27525, + "col": 59, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f59db0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27528, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 27920, + "line": 916, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f54670", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27534, + "line": 905, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27574, + "line": 906, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f545c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27538, + "line": 905, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f545a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27540, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27540, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f54588", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27540, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27540, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f53268", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27538, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27538, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f54570", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27543, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f53288", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27543, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"analog\"" + } + ] + } + ] + }, + { + "id": "0x558a51f54660", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27561, + "line": 906, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27574, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f54630", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27568, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27574, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e5b0", + "kind": "EnumConstantDecl", + "name": "ANALOG_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f55aa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27591, + "line": 907, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27632, + "line": 908, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f559f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27595, + "line": 907, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f559d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27597, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27597, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f559b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27597, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27597, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f54690", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27595, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27595, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f559a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27600, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f546b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27600, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"digital\"" + } + ] + } + ] + }, + { + "id": "0x558a51f55a90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27619, + "line": 908, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27632, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f55a60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27626, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27632, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e608", + "kind": "EnumConstantDecl", + "name": "DIGITAL_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f56ed0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27650, + "line": 909, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27698, + "line": 910, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f56e20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27654, + "line": 909, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f56e08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27656, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27656, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f56de8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27656, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27656, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f55ac0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27654, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27654, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f56dd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27659, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f55ae0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27659, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"analog_digital\"" + } + ] + } + ] + }, + { + "id": "0x558a51f56ec0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27685, + "line": 910, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27698, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f56e90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27692, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27698, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e660", + "kind": "EnumConstantDecl", + "name": "ANALOG_AND_DIGITAL", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f58300", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27722, + "line": 911, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27767, + "line": 912, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f58250", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27726, + "line": 911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f58238", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27728, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27728, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f58218", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27728, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27728, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f56ef0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27726, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27726, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f58200", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27731, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f56f10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27731, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"transceiver\"" + } + ] + } + ] + }, + { + "id": "0x558a51f582f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27754, + "line": 912, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27767, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f582c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27761, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27767, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e6b8", + "kind": "EnumConstantDecl", + "name": "TRANSCEIVER_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f59740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27789, + "line": 913, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27842, + "line": 914, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f59690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27793, + "line": 913, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f59678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f59658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f58320", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27793, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27793, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f59640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27798, + "col": 14, + "tokLen": 21 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f58340", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27798, + "col": 14, + "tokLen": 21 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char[20]" + }, + "valueCategory": "lvalue", + "value": "\"digital_transceiver\"" + } + ] + } + ] + }, + { + "id": "0x558a51f59730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27829, + "line": 914, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27842, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f59700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27836, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27842, + "col": 22, + "tokLen": 23 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e710", + "kind": "EnumConstantDecl", + "name": "DIGITAL_AND_TRANSCEIVER", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f59d98", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 27871, + "line": 915, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f59d80", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 27871, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f59d58", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f59d38", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f59d30", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f59d00", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f59ce8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f59cd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f59cb0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f59ca8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f59c70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f59c58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27914, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 27914, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f59c38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27914, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 27914, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f59c20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27890, + "col": 24, + "tokLen": 23 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f59770", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27890, + "col": 24, + "tokLen": 23 + } + }, + "type": { + "qualType": "const char[22]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown readout mode \"" + } + ] + }, + { + "id": "0x558a51f597a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27916, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51f59f80", + "kind": "FunctionDecl", + "loc": { + "offset": 27950, + "file": "ToString.cpp", + "line": 918, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27923, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33113, + "line": 1096, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbc720", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "inner": [ + { + "id": "0x558a5152b360", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "decl": { + "id": "0x558a5152b2b8", + "kind": "EnumDecl", + "name": "dacIndex" + } + } + ] + }, + { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "loc": { + "offset": 27978, + "line": 918, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27959, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 27978, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fdfb00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27981, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 33113, + "line": 1096, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f5c920", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27987, + "line": 919, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28038, + "line": 920, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5c888", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 27991, + "line": 919, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f5b4c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5b4a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5b488", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5a168", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27991, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5b470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27996, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5a188", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27996, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f5c850", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28007, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5c838", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28009, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28009, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5c818", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28009, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28009, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5b4f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28007, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28007, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5c800", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28012, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5b518", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28012, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"0\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f5c910", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28025, + "line": 920, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28038, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5c8e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28032, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28038, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b380", + "kind": "EnumConstantDecl", + "name": "DAC_0", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f5f100", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28049, + "line": 921, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28100, + "line": 922, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5f068", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28053, + "line": 921, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f5dca0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5dc88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28055, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28055, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5dc68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28055, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28055, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5c940", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28053, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5dc50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28058, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5c960", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28058, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f5f030", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28069, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5f018", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28071, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28071, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5eff8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28071, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28071, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5dcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28069, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28069, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5efe0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28074, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5dcf8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28074, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"1\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f5f0f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28087, + "line": 922, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28100, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5f0c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28094, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28100, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b3d8", + "kind": "EnumConstantDecl", + "name": "DAC_1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f618e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28111, + "line": 923, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28162, + "line": 924, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f61848", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28115, + "line": 923, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f60480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f60468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28117, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28117, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f60448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28117, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28117, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5f120", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28115, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f60430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28120, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5f140", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28120, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f61810", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28131, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f617f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28133, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28133, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f617d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28133, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28133, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f604b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28131, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28131, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f617c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28136, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f604d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28136, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"2\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f618d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28149, + "line": 924, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28162, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f618a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28156, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28162, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b430", + "kind": "EnumConstantDecl", + "name": "DAC_2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f640c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28173, + "line": 925, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28224, + "line": 926, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f64028", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28177, + "line": 925, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f62c60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f62c48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f62c28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f61900", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28177, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f62c10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28182, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f61920", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28182, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 3\"" + } + ] + } + ] + }, + { + "id": "0x558a51f63ff0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28193, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f63fd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28195, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28195, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f63fb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28195, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28195, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f62c98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28193, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28193, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f63fa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28198, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f62cb8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28198, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"3\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f640b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28211, + "line": 926, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28224, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f64080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28218, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28224, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b488", + "kind": "EnumConstantDecl", + "name": "DAC_3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f668b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28235, + "line": 927, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28286, + "line": 928, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f66818", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28239, + "line": 927, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f65440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28239, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f65428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28241, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28241, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f65408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28241, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28241, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f640e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28239, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28239, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f653f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28244, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f64100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28244, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 4\"" + } + ] + } + ] + }, + { + "id": "0x558a51f667e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28255, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f667c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28257, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28257, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f667a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28257, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28257, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f65478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28255, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28255, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f66790", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28260, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f65498", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28260, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"4\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f668a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28273, + "line": 928, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28286, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f66870", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28280, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28286, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b4e0", + "kind": "EnumConstantDecl", + "name": "DAC_4", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f69090", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28297, + "line": 929, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28348, + "line": 930, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f68ff8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28301, + "line": 929, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f67c30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28301, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f67c18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28303, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28303, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f67bf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28303, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28303, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f668d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28301, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28301, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f67be0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28306, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f668f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28306, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 5\"" + } + ] + } + ] + }, + { + "id": "0x558a51f68fc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28317, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f68fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28319, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28319, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f68f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28319, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28319, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f67c68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28317, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28317, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f68f70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28322, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f67c88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28322, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"5\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f69080", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28335, + "line": 930, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28348, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f69050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28342, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28348, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b538", + "kind": "EnumConstantDecl", + "name": "DAC_5", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f6b870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28359, + "line": 931, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28410, + "line": 932, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6b7d8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28363, + "line": 931, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6a410", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28363, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6a3f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28365, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28365, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6a3d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28365, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28365, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f690b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28363, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28363, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6a3c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28368, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f690d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28368, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 6\"" + } + ] + } + ] + }, + { + "id": "0x558a51f6b7a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28379, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6b788", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28381, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28381, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6b768", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28381, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28381, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6a448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28379, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28379, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6b750", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28384, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6a468", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28384, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"6\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f6b860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28397, + "line": 932, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28410, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6b830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28404, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28410, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b590", + "kind": "EnumConstantDecl", + "name": "DAC_6", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f6e050", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28421, + "line": 933, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28472, + "line": 934, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6dfb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28425, + "line": 933, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6cbf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28425, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6cbd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28427, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28427, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6cbb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28427, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28427, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6b890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28425, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28425, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6cba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28430, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6b8b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28430, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 7\"" + } + ] + } + ] + }, + { + "id": "0x558a51f6df80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28441, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6df68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28443, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28443, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6df48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28443, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28443, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6cc28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28441, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28441, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6df30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28446, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6cc48", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28446, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"7\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f6e040", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28459, + "line": 934, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28472, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6e010", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28466, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28472, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b5e8", + "kind": "EnumConstantDecl", + "name": "DAC_7", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f70830", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28483, + "line": 935, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28534, + "line": 936, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f70798", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28487, + "line": 935, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6f3d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28487, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6f3b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28489, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28489, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6f398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28489, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28489, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6e070", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28487, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28487, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6f380", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28492, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6e090", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28492, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 8\"" + } + ] + } + ] + }, + { + "id": "0x558a51f70760", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28503, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f70748", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28505, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28505, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f70728", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28505, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28505, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6f408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28503, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28503, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f70710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28508, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6f428", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28508, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"8\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f70820", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28521, + "line": 936, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28534, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f707f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28528, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28534, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b640", + "kind": "EnumConstantDecl", + "name": "DAC_8", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f73010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28545, + "line": 937, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28596, + "line": 938, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f72f78", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28549, + "line": 937, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f71bb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f71b98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f71b78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f70850", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f71b60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28554, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f70870", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28554, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 9\"" + } + ] + } + ] + }, + { + "id": "0x558a51f72f40", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28565, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f72f28", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28567, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28567, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f72f08", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28567, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28567, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f71be8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28565, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28565, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f72ef0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28570, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f71c08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28570, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"9\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f73000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28583, + "line": 938, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28596, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f72fd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28590, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28596, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b698", + "kind": "EnumConstantDecl", + "name": "DAC_9", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f757f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28607, + "line": 939, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28660, + "line": 940, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f75758", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28611, + "line": 939, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f74390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28611, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f74378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28613, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28613, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f74358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28613, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28613, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f73030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28611, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28611, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f74340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28616, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f73050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28616, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 10\"" + } + ] + } + ] + }, + { + "id": "0x558a51f75720", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28628, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f75708", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28630, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28630, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f756e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28630, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28630, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f743c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28628, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28628, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f756d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28633, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f743e8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28633, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"10\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f757e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28647, + "line": 940, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28660, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f757b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28654, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28660, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b6f0", + "kind": "EnumConstantDecl", + "name": "DAC_10", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f77fd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28672, + "line": 941, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28725, + "line": 942, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f77f38", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28676, + "line": 941, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f76b70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28676, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f76b58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28678, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28678, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f76b38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28678, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28678, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f75810", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28676, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28676, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f76b20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28681, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f75830", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28681, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 11\"" + } + ] + } + ] + }, + { + "id": "0x558a51f77f00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28693, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f77ee8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28695, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28695, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f77ec8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28695, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28695, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f76ba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28693, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28693, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f77eb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28698, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f76bc8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28698, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"11\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f77fc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28712, + "line": 942, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28725, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f77f90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28719, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28725, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b748", + "kind": "EnumConstantDecl", + "name": "DAC_11", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7a7b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28737, + "line": 943, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28790, + "line": 944, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7a718", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28741, + "line": 943, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f79350", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28741, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f79338", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28743, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28743, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f79318", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28743, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28743, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f77ff0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28741, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28741, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f79300", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28746, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f78010", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28746, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 12\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7a6e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28758, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7a6c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28760, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28760, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7a6a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28760, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28760, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f79388", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28758, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28758, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7a690", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28763, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f793a8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28763, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"12\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7a7a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28777, + "line": 944, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28790, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7a770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28784, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28790, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b7a0", + "kind": "EnumConstantDecl", + "name": "DAC_12", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7cf90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28802, + "line": 945, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28855, + "line": 946, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7cef8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28806, + "line": 945, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f7bb30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28806, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7bb18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28808, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28808, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7baf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28808, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28808, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7a7d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28806, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28806, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7bae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28811, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7a7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28811, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 13\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7cec0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28823, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7cea8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28825, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28825, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7ce88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28825, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28825, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7bb68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28823, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28823, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7ce70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28828, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7bb88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28828, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"13\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7cf80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28842, + "line": 946, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28855, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7cf50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28849, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28855, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b7f8", + "kind": "EnumConstantDecl", + "name": "DAC_13", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7f770", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28867, + "line": 947, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28920, + "line": 948, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7f6d8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28871, + "line": 947, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f7e310", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28871, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7e2f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28873, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28873, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7e2d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28873, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28873, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7cfb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28871, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28871, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7e2c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28876, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7cfd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28876, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 14\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7f6a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28888, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7f688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28890, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28890, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7f668", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28890, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28890, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7e348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28888, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28888, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7f650", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28893, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7e368", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28893, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"14\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7f760", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28907, + "line": 948, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28920, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7f730", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28914, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28920, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b850", + "kind": "EnumConstantDecl", + "name": "DAC_14", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f81f50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28932, + "line": 949, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28985, + "line": 950, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f81eb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28936, + "line": 949, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f80af0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28936, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f80ad8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28938, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28938, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f80ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28938, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28938, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7f790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28936, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28936, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f80aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28941, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7f7b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28941, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 15\"" + } + ] + } + ] + }, + { + "id": "0x558a51f81e80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28953, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f81e68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28955, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28955, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f81e48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28955, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28955, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f80b28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28953, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28953, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f81e30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28958, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f80b48", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28958, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"15\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f81f40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28972, + "line": 950, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28985, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f81f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28979, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28985, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b8a8", + "kind": "EnumConstantDecl", + "name": "DAC_15", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f84730", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28997, + "line": 951, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29050, + "line": 952, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f84698", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 29001, + "line": 951, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f832d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f832b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29003, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29003, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f83298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29003, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29003, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f81f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29001, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f83280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29006, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f81f90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29006, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 16\"" + } + ] + } + ] + }, + { + "id": "0x558a51f84660", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29018, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f84648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29020, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29020, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f84628", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29020, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29020, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f83308", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29018, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29018, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f84610", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29023, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f83328", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29023, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"16\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f84720", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29037, + "line": 952, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29050, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f846f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29044, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29050, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b900", + "kind": "EnumConstantDecl", + "name": "DAC_16", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f86f50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29062, + "line": 953, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29115, + "line": 954, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f86eb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 29066, + "line": 953, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f85ab0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29066, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f85a98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29068, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29068, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f85a78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29068, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29068, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f84750", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29066, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29066, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f85a60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29071, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f84770", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29071, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 17\"" + } + ] + } + ] + }, + { + "id": "0x558a51f86e80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29083, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f86e68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29085, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29085, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f86e48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29085, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29085, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f85ae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29083, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29083, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f86e30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29088, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f85b08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29088, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"17\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f86f40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29102, + "line": 954, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29115, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f86f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29109, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29115, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b958", + "kind": "EnumConstantDecl", + "name": "DAC_17", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f88380", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29127, + "line": 955, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29165, + "line": 956, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f882d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29131, + "line": 955, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f882b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29133, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29133, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f88298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29133, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29133, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f86f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29131, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29131, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f88280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29136, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f86f90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29136, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vsvp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f88370", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29152, + "line": 956, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29165, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f88340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29159, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29165, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b9b0", + "kind": "EnumConstantDecl", + "name": "VSVP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f897b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29175, + "line": 957, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29214, + "line": 958, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f89700", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29179, + "line": 957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f896e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29181, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29181, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f896c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29181, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29181, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f883a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29179, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29179, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f896b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29184, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f883c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29184, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vtrim\"" + } + ] + } + ] + }, + { + "id": "0x558a51f897a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29201, + "line": 958, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29214, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f89770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29208, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29214, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ba08", + "kind": "EnumConstantDecl", + "name": "VTRIM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8abe0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29225, + "line": 959, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29267, + "line": 960, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8ab30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29229, + "line": 959, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8ab18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29231, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29231, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8aaf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29231, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29231, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f897d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29229, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29229, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8aae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29234, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f897f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29234, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vrpreamp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8abd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29254, + "line": 960, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29267, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8aba0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29261, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29267, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ba60", + "kind": "EnumConstantDecl", + "name": "VRPREAMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8c010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29281, + "line": 961, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29323, + "line": 962, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8bf60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29285, + "line": 961, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8bf48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29287, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29287, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8bf28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29287, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29287, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8ac00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29285, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29285, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8bf10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29290, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8ac20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29290, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vrshaper\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8c000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29310, + "line": 962, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29323, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8bfd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29323, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bab8", + "kind": "EnumConstantDecl", + "name": "VRSHAPER", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8d440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29337, + "line": 963, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29375, + "line": 964, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f8d390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29341, + "line": 963, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8d378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29343, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29343, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8d358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29343, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29343, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8c030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29341, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29341, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8d340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29346, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8c050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29346, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vsvn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8d430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29362, + "line": 964, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29375, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f8d400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29369, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29375, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bb10", + "kind": "EnumConstantDecl", + "name": "VSVN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8e870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29385, + "line": 965, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29425, + "line": 966, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f8e7c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29389, + "line": 965, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8e7a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29391, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29391, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8e788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29391, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29391, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8d460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29389, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29389, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8e770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29394, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8d480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29394, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vtgstv\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8e860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29412, + "line": 966, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29425, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f8e830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29419, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29425, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bb68", + "kind": "EnumConstantDecl", + "name": "VTGSTV", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8fca0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29437, + "line": 967, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29478, + "line": 968, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f8fbf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29441, + "line": 967, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8fbd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29443, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29443, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8fbb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29443, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29443, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8e890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29441, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29441, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8fba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29446, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8e8b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29446, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_ll\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8fc90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29465, + "line": 968, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29478, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f8fc60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29472, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29478, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bbc0", + "kind": "EnumConstantDecl", + "name": "VCMP_LL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f910d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29491, + "line": 969, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29532, + "line": 970, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f91020", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29495, + "line": 969, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f91008", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29497, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29497, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f90fe8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29497, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29497, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8fcc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29495, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29495, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f90fd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29500, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8fce0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29500, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_lr\"" + } + ] + } + ] + }, + { + "id": "0x558a51f910c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29519, + "line": 970, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29532, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f91090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29526, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29532, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bc18", + "kind": "EnumConstantDecl", + "name": "VCMP_LR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f92500", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29545, + "line": 971, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29583, + "line": 972, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f92450", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29549, + "line": 971, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f92438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f92418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f910f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f92400", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f91110", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vcal\"" + } + ] + } + ] + }, + { + "id": "0x558a51f924f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29570, + "line": 972, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29583, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f924c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29577, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29583, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bc70", + "kind": "EnumConstantDecl", + "name": "VCAL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f93930", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29593, + "line": 973, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29634, + "line": 974, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f93880", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29597, + "line": 973, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f93868", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f93848", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f92520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29597, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29597, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f93830", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29602, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f92540", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29602, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_rl\"" + } + ] + } + ] + }, + { + "id": "0x558a51f93920", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29621, + "line": 974, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29634, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f938f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29628, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29634, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bcc8", + "kind": "EnumConstantDecl", + "name": "VCMP_RL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f94d60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29647, + "line": 975, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29687, + "line": 976, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f94cb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29651, + "line": 975, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f94c98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29653, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29653, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f94c78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29653, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29653, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f93950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29651, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29651, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f94c60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29656, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f93970", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29656, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"rxb_rb\"" + } + ] + } + ] + }, + { + "id": "0x558a51f94d50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29674, + "line": 976, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29687, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f94d20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29681, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29687, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bd20", + "kind": "EnumConstantDecl", + "name": "RXB_RB", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f96190", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29699, + "line": 977, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29739, + "line": 978, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f960e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29703, + "line": 977, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f960c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29705, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29705, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f960a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29705, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29705, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f94d80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29703, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29703, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f96090", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29708, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f94da0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29708, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"rxb_lb\"" + } + ] + } + ] + }, + { + "id": "0x558a51f96180", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29726, + "line": 978, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29739, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f96150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29733, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29739, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bd78", + "kind": "EnumConstantDecl", + "name": "RXB_LB", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f975c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29751, + "line": 979, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29792, + "line": 980, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f97510", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29755, + "line": 979, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f974f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29757, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29757, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f974d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29757, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29757, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f961b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29755, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29755, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f974c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29760, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f961d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29760, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_rr\"" + } + ] + } + ] + }, + { + "id": "0x558a51f975b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29779, + "line": 980, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29792, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f97580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29786, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29792, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bdd0", + "kind": "EnumConstantDecl", + "name": "VCMP_RR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f989f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29805, + "line": 981, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29842, + "line": 982, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f98940", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29809, + "line": 981, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f98928", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29811, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29811, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f98908", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29811, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29811, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f975e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29809, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29809, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f988f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29814, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f97600", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29814, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"vcp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f989e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29829, + "line": 982, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29842, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f989b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29836, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29842, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152be28", + "kind": "EnumConstantDecl", + "name": "VCP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f99e20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29851, + "line": 983, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29888, + "line": 984, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f99d70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29855, + "line": 983, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f99d58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29857, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29857, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f99d38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29857, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29857, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f98a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29855, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29855, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f99d20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29860, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f98a30", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29860, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"vcn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f99e10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29875, + "line": 984, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29888, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f99de0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29882, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29888, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152be80", + "kind": "EnumConstantDecl", + "name": "VCN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9b250", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29897, + "line": 985, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29939, + "line": 986, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f9b1a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29901, + "line": 985, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9b188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29903, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29903, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9b168", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29903, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29903, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f99e40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29901, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29901, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9b150", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29906, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f99e60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29906, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vishaper\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9b240", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29926, + "line": 986, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29939, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f9b210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29933, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29939, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bed8", + "kind": "EnumConstantDecl", + "name": "VISHAPER", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9c680", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29953, + "line": 987, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29997, + "line": 988, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f9c5d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29957, + "line": 987, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9c5b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9c598", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9b270", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29957, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9c580", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29962, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9b290", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29962, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vthreshold\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9c670", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29984, + "line": 988, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29997, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f9c640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29991, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29997, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bf30", + "kind": "EnumConstantDecl", + "name": "VTHRESHOLD", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9dab0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30013, + "line": 989, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30054, + "line": 990, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9da00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30017, + "line": 989, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9d9e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30019, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30019, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9d9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30019, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30019, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9c6a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30017, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30017, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9d9b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30022, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9c6c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30022, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vref_ds\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9daa0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30041, + "line": 990, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30054, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9da70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30048, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30054, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bfe0", + "kind": "EnumConstantDecl", + "name": "VREF_DS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9eee0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30067, + "line": 991, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30108, + "line": 992, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9ee30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30071, + "line": 991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9ee18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30073, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30073, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9edf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30073, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30073, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9dad0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30071, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30071, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9ede0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30076, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9daf0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30076, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vout_cm\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9eed0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30095, + "line": 992, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30108, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9eea0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30102, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30108, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c038", + "kind": "EnumConstantDecl", + "name": "VOUT_CM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa0310", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30121, + "line": 993, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30161, + "line": 994, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fa0260", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30125, + "line": 993, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa0248", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30127, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30127, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa0228", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30127, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30127, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9ef00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30125, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30125, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa0210", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30130, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9ef20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30130, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vin_cm\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa0300", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30148, + "line": 994, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30161, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fa02d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30155, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30161, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c090", + "kind": "EnumConstantDecl", + "name": "VIN_CM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa1740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30173, + "line": 995, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30216, + "line": 996, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa1690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30177, + "line": 995, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa1678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa1658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa0330", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30177, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa1640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30182, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa0350", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30182, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vref_comp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa1730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30203, + "line": 996, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30216, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa1700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30210, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30216, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c0e8", + "kind": "EnumConstantDecl", + "name": "VREF_COMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa2b70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30231, + "line": 997, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30272, + "line": 998, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa2ac0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30235, + "line": 997, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa2aa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30237, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30237, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa2a88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30237, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30237, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa1760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30235, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30235, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa2a70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30240, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa1780", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30240, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa2b60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30259, + "line": 998, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30272, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa2b30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30266, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30272, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c140", + "kind": "EnumConstantDecl", + "name": "VB_COMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa3fa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30285, + "line": 999, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30327, + "line": 1000, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fa3ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30289, + "line": 999, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa3ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30291, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30291, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa3eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30291, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30291, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa2b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30289, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30289, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa3ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30294, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa2bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30294, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vdd_prot\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa3f90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30314, + "line": 1000, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30327, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fa3f60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30321, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30327, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c198", + "kind": "EnumConstantDecl", + "name": "VDD_PROT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa53d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30341, + "line": 1001, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30382, + "line": 1002, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa5320", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30345, + "line": 1001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa5308", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa52e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa3fc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30345, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30345, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa52d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30350, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa3fe0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30350, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vin_com\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa53c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30369, + "line": 1002, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30382, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa5390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30376, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30382, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c1f0", + "kind": "EnumConstantDecl", + "name": "VIN_COM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa6820", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30395, + "line": 1003, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30439, + "line": 1004, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fa6770", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30399, + "line": 1003, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa6758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30401, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30401, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa6738", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30401, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30401, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa53f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30399, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30399, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa6720", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30404, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa5410", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30404, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_prech\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa6810", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30426, + "line": 1004, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30439, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fa67e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30433, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30439, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c248", + "kind": "EnumConstantDecl", + "name": "VREF_PRECH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa7c50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30455, + "line": 1005, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30498, + "line": 1006, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa7ba0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30459, + "line": 1005, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa7b88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30461, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30461, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa7b68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30461, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30461, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa6840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30459, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30459, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa7b50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30464, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa6860", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30464, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vb_pixbuf\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa7c40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30485, + "line": 1006, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30498, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa7c10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30492, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30498, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c2a0", + "kind": "EnumConstantDecl", + "name": "VB_PIXBUF", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa9080", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30513, + "line": 1007, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30552, + "line": 1008, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fa8fd0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30517, + "line": 1007, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa8fb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30519, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30519, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa8f98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30519, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30519, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa7c70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30517, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30517, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa8f80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30522, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa7c90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30522, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vb_ds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa9070", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30539, + "line": 1008, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30552, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fa9040", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30546, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30552, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c2f8", + "kind": "EnumConstantDecl", + "name": "VB_DS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51faa4b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30563, + "line": 1009, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30607, + "line": 1010, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51faa400", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30567, + "line": 1009, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51faa3e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30569, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30569, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51faa3c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30569, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30569, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa90a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30567, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30567, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51faa3b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30572, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa90c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30572, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_h_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51faa4a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30594, + "line": 1010, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30607, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51faa470", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30601, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30607, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c350", + "kind": "EnumConstantDecl", + "name": "VREF_H_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fab8e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30623, + "line": 1011, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30667, + "line": 1012, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fab830", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30627, + "line": 1011, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fab818", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30629, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30629, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fab7f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30629, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30629, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51faa4d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30627, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30627, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fab7e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30632, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51faa4f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30632, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp_fe\"" + } + ] + } + ] + }, + { + "id": "0x558a51fab8d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30654, + "line": 1012, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30667, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fab8a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30661, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30667, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c3a8", + "kind": "EnumConstantDecl", + "name": "VB_COMP_FE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51facd10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30683, + "line": 1013, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30728, + "line": 1014, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51facc60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30687, + "line": 1013, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51facc48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30689, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30689, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51facc28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30689, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30689, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fab900", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30687, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30687, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51facc10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30692, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fab920", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30692, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51facd00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30715, + "line": 1014, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30728, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faccd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30722, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30728, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c400", + "kind": "EnumConstantDecl", + "name": "VB_COMP_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fae140", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30745, + "line": 1015, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30787, + "line": 1016, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fae090", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30749, + "line": 1015, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fae078", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30751, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30751, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fae058", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30751, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30751, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51facd30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30749, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30749, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fae040", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30754, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51facd50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30754, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fae130", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30774, + "line": 1016, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30787, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fae100", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30781, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30787, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c458", + "kind": "EnumConstantDecl", + "name": "VCOM_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51faf570", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30801, + "line": 1017, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30846, + "line": 1018, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faf4c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30805, + "line": 1017, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51faf4a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51faf488", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fae160", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30805, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51faf470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30810, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fae180", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30810, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"vref_rstore\"" + } + ] + } + ] + }, + { + "id": "0x558a51faf560", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30833, + "line": 1018, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30846, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faf530", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30840, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30846, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c4b0", + "kind": "EnumConstantDecl", + "name": "VREF_RSTORE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb09a0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30863, + "line": 1019, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30907, + "line": 1020, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb08f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30867, + "line": 1019, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb08d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30869, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30869, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb08b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30869, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30869, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51faf590", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30867, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30867, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb08a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30872, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51faf5b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30872, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vb_opa_1st\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb0990", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30894, + "line": 1020, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30907, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb0960", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30901, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30907, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c508", + "kind": "EnumConstantDecl", + "name": "VB_OPA_1ST", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb1dd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30923, + "line": 1021, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30969, + "line": 1022, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fb1d20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30927, + "line": 1021, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb1d08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30929, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30929, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb1ce8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30929, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30929, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb09c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30927, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30927, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb1cd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30932, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb09e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30932, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"vref_comp_fe\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb1dc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30956, + "line": 1022, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30969, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fb1d90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30963, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30969, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c560", + "kind": "EnumConstantDecl", + "name": "VREF_COMP_FE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb3200", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30987, + "line": 1023, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31030, + "line": 1024, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb3150", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30991, + "line": 1023, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb3138", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb3118", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb1df0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30991, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb3100", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30996, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb1e10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30996, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_adc1\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb31f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31017, + "line": 1024, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31030, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb31c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31024, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31030, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c5b8", + "kind": "EnumConstantDecl", + "name": "VCOM_ADC1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb4630", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31045, + "line": 1025, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31089, + "line": 1026, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb4580", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31049, + "line": 1025, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb4568", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31051, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31051, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb4548", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31051, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31051, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb3220", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31049, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31049, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb4530", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31054, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb3240", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31054, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_l_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb4620", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31076, + "line": 1026, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31089, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb45f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31083, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31089, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c610", + "kind": "EnumConstantDecl", + "name": "VREF_L_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb5a60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31105, + "line": 1027, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31147, + "line": 1028, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fb59b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31109, + "line": 1027, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb5998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31111, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31111, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb5978", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31111, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31111, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb4650", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31109, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31109, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb5960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31114, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb4670", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31114, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vref_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb5a50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31134, + "line": 1028, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31147, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fb5a20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31141, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31147, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c668", + "kind": "EnumConstantDecl", + "name": "VREF_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb6e90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31161, + "line": 1029, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31200, + "line": 1030, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fb6de0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31165, + "line": 1029, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb6dc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31167, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31167, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb6da8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31167, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31167, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb5a80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31165, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31165, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb6d90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31170, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb5aa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31170, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vb_cs\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb6e80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31187, + "line": 1030, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31200, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fb6e50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31194, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31200, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c6c0", + "kind": "EnumConstantDecl", + "name": "VB_CS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb82c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31211, + "line": 1031, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31254, + "line": 1032, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb8210", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31215, + "line": 1031, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb81f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31217, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31217, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb81d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31217, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31217, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb6eb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31215, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31215, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb81c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31220, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb6ed0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31220, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vb_opa_fd\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb82b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31241, + "line": 1032, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31254, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb8280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31248, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31254, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c718", + "kind": "EnumConstantDecl", + "name": "VB_OPA_FD", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb96f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31269, + "line": 1033, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31312, + "line": 1034, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb9640", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31273, + "line": 1033, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb9628", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31275, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31275, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb9608", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31275, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31275, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb82e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31273, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31273, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb95f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31278, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb8300", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31278, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_adc2\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb96e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31299, + "line": 1034, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31312, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb96b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31306, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31312, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c770", + "kind": "EnumConstantDecl", + "name": "VCOM_ADC2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbab20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31327, + "line": 1035, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31367, + "line": 1036, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fbaa70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31331, + "line": 1035, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbaa58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31333, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31333, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbaa38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31333, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31333, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb9710", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31331, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31331, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbaa20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31336, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb9730", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31336, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcassh\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbab10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31354, + "line": 1036, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31367, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fbaae0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31361, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31367, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c7c8", + "kind": "EnumConstantDecl", + "name": "VCASSH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbbf50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31379, + "line": 1037, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31417, + "line": 1038, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbbea0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31383, + "line": 1037, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbbe88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31385, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31385, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbbe68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31385, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31385, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbab40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31383, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31383, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbbe50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31388, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbab60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31388, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth2\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbbf40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31404, + "line": 1038, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31417, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbbf10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31411, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31417, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c820", + "kind": "EnumConstantDecl", + "name": "VTH2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbd380", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31427, + "line": 1039, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31471, + "line": 1040, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fbd2d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31431, + "line": 1039, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbd2b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31433, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31433, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbd298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31433, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31433, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbbf70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31431, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31431, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbd280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31436, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbbf90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31436, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vrshaper_n\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbd370", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31458, + "line": 1040, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31471, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fbd340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31465, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31471, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c878", + "kind": "EnumConstantDecl", + "name": "VRSHAPER_N", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbe7b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31487, + "line": 1041, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31530, + "line": 1042, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fbe700", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31491, + "line": 1041, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbe6e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31493, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31493, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbe6c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31493, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31493, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbd3a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31491, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31491, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbe6b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31496, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbd3c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31496, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vipre_out\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbe7a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31517, + "line": 1042, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31530, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fbe770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31524, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31530, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c8d0", + "kind": "EnumConstantDecl", + "name": "VIPRE_OUT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbfbe0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31545, + "line": 1043, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31583, + "line": 1044, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbfb30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31549, + "line": 1043, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbfb18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbfaf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbe7d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbfae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbe7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth3\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbfbd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31570, + "line": 1044, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31583, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbfba0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31577, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31583, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c928", + "kind": "EnumConstantDecl", + "name": "VTH3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc1010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31593, + "line": 1045, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31631, + "line": 1046, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc0f60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31597, + "line": 1045, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc0f48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc0f28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbfc00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31597, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31597, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc0f10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31602, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbfc20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31602, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth1\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc1000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31618, + "line": 1046, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31631, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc0fd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31625, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31631, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c980", + "kind": "EnumConstantDecl", + "name": "VTH1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc2440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31641, + "line": 1047, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31680, + "line": 1048, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc2390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31645, + "line": 1047, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc2378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31647, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31647, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc2358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31647, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31647, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc1030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31645, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31645, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc2340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31650, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc1050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31650, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vicin\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc2430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31667, + "line": 1048, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31680, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc2400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31674, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31680, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c9d8", + "kind": "EnumConstantDecl", + "name": "VICIN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc3870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31691, + "line": 1049, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31729, + "line": 1050, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc37c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31695, + "line": 1049, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc37a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31697, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31697, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc3788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31697, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31697, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc2460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31695, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31695, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc3770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31700, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc2480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31700, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vcas\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc3860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31716, + "line": 1050, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31729, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc3830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31723, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31729, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ca30", + "kind": "EnumConstantDecl", + "name": "VCAS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc4ca0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31739, + "line": 1051, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31779, + "line": 1052, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc4bf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31743, + "line": 1051, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc4bd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31745, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31745, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc4bb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31745, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31745, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc3890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31743, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31743, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc4ba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31748, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc38b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31748, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcal_n\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc4c90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31766, + "line": 1052, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31779, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc4c60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31773, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31779, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ca88", + "kind": "EnumConstantDecl", + "name": "VCAL_N", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc60d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31791, + "line": 1053, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31830, + "line": 1054, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc6020", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31795, + "line": 1053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc6008", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31797, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31797, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc5fe8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31797, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31797, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc4cc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31795, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31795, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc5fd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31800, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc4ce0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31800, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vipre\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc60c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31817, + "line": 1054, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31830, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc6090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31824, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31830, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cae0", + "kind": "EnumConstantDecl", + "name": "VIPRE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc7530", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31841, + "line": 1055, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31881, + "line": 1056, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc7480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31845, + "line": 1055, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc7468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31847, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31847, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc7448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31847, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31847, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc60f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31845, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31845, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc7430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31850, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc6110", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31850, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcal_p\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc7520", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31868, + "line": 1056, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31881, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc74f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31875, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31881, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cb38", + "kind": "EnumConstantDecl", + "name": "VCAL_P", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc8960", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31893, + "line": 1057, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31932, + "line": 1058, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc88b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31897, + "line": 1057, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc8898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31899, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31899, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc8878", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31899, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31899, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc7550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31897, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31897, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc8860", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31902, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc7570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31902, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vdcsh\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc8950", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31919, + "line": 1058, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31932, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc8920", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31926, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31932, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cb90", + "kind": "EnumConstantDecl", + "name": "VDCSH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc9d90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31943, + "line": 1059, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31987, + "line": 1060, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fc9ce0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31947, + "line": 1059, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc9cc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31949, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31949, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc9ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31949, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31949, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc8980", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31947, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31947, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc9c90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31952, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc89a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31952, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vbp_colbuf\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc9d80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31974, + "line": 1060, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31987, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fc9d50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31981, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31987, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cbe8", + "kind": "EnumConstantDecl", + "name": "VBP_COLBUF", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcb1c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32003, + "line": 1061, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32043, + "line": 1062, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fcb110", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32007, + "line": 1061, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcb0f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32009, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32009, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcb0d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32009, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32009, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc9db0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32007, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32007, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcb0c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32012, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc9dd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32012, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vb_sda\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcb1b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32030, + "line": 1062, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32043, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fcb180", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32037, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32043, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cc40", + "kind": "EnumConstantDecl", + "name": "VB_SDA", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcc5f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32055, + "line": 1063, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32098, + "line": 1064, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcc540", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32059, + "line": 1063, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcc528", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32061, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32061, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcc508", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32061, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32061, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcb1e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32059, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32059, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcc4f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32064, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcb200", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32064, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcasc_sfp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcc5e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32085, + "line": 1064, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32098, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcc5b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32092, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32098, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cc98", + "kind": "EnumConstantDecl", + "name": "VCASC_SFP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcda20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32113, + "line": 1065, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32156, + "line": 1066, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcd970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32117, + "line": 1065, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcd958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32119, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32119, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcd938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32119, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32119, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcc610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32117, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32117, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcd920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32122, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcc630", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32122, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vipre_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcda10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32143, + "line": 1066, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32156, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcd9e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32150, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32156, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ccf0", + "kind": "EnumConstantDecl", + "name": "VIPRE_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcee50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32171, + "line": 1067, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32214, + "line": 1068, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fceda0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32175, + "line": 1067, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fced88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32177, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32177, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fced68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32177, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32177, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcda40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32175, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32175, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fced50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32180, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcda60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32180, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"ibias_sfp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcee40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32201, + "line": 1068, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32214, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcee10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32208, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32214, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cd48", + "kind": "EnumConstantDecl", + "name": "IBIAS_SFP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd0280", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32229, + "line": 1069, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32271, + "line": 1070, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd01d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32233, + "line": 1069, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd01b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32235, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32235, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd0198", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32235, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32235, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcee70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32233, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32233, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd0180", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32238, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcee90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32238, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"trimbits\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd0270", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32258, + "line": 1070, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32271, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd0240", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32265, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32271, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d168", + "kind": "EnumConstantDecl", + "name": "TRIMBIT_SCAN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd16b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32289, + "line": 1071, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32334, + "line": 1072, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd1600", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32293, + "line": 1071, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd15e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32295, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32295, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd15c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32295, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32295, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd02a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32293, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32293, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd15b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32298, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd02c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32298, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"highvoltage\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd16a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32321, + "line": 1072, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32334, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd1670", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32328, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32334, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cdf8", + "kind": "EnumConstantDecl", + "name": "HIGH_VOLTAGE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd2ae0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32352, + "line": 1073, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32393, + "line": 1074, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fd2a30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32356, + "line": 1073, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd2a18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32358, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32358, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd29f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32358, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32358, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd16d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32356, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32356, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd29e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32361, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd16f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32361, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"iodelay\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd2ad0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32380, + "line": 1074, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32393, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fd2aa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32387, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32393, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bf88", + "kind": "EnumConstantDecl", + "name": "IO_DELAY", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd3f10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32407, + "line": 1075, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32449, + "line": 1076, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fd3e60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32411, + "line": 1075, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd3e48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32413, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32413, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd3e28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32413, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32413, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd2b00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32411, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32411, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd3e10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32416, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd2b20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32416, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"temp_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd3f00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32436, + "line": 1076, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32449, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fd3ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32443, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32449, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ce50", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd5340", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32470, + "line": 1077, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32513, + "line": 1078, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd5290", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32474, + "line": 1077, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd5278", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32476, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32476, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd5258", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32476, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32476, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd3f30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32474, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32474, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd5240", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32479, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd3f50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32479, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpga\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd5330", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32500, + "line": 1078, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32513, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd5300", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32507, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32513, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cea8", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd6770", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32535, + "line": 1079, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32581, + "line": 1080, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fd66c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32539, + "line": 1079, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd66a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32541, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32541, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd6688", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32541, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32541, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd5360", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32539, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32539, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd6670", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32544, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd5380", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32544, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgaext\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd6760", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32568, + "line": 1080, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32581, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fd6730", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32575, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32581, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cf00", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGAEXT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd7ba0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32606, + "line": 1081, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32649, + "line": 1082, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd7af0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32610, + "line": 1081, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd7ad8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32612, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32612, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd7ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32612, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32612, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd6790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32610, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32610, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32615, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd67b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32615, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_10ge\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd7b90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32636, + "line": 1082, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32649, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd7b60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32643, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32649, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cf58", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_10GE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd8fd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32671, + "line": 1083, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32714, + "line": 1084, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd8f20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32675, + "line": 1083, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd8f08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32677, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32677, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd8ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32677, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32677, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd7bc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32675, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32675, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd8ed0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32680, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd7be0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32680, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_dcdc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd8fc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32701, + "line": 1084, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32714, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd8f90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32708, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32714, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cfb0", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_DCDC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fda400", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32736, + "line": 1085, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32779, + "line": 1086, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fda350", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32740, + "line": 1085, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fda338", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fda318", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd8ff0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32740, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32740, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fda300", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32745, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd9010", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32745, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_sodl\"" + } + ] + } + ] + }, + { + "id": "0x558a51fda3f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32766, + "line": 1086, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32779, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fda3c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32773, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32779, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d008", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_SODL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdb830", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32801, + "line": 1087, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32844, + "line": 1088, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fdb780", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32805, + "line": 1087, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdb768", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdb748", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fda420", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32805, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdb730", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32810, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fda440", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32810, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_sodr\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdb820", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32831, + "line": 1088, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32844, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fdb7f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32838, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32844, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d060", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_SODR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdcc60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32866, + "line": 1089, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32911, + "line": 1090, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fdcbb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32870, + "line": 1089, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdcb98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32872, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32872, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdcb78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32872, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32872, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fdb850", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32870, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32870, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdcb60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32875, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdb870", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32875, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgafl\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdcc50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32898, + "line": 1090, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32911, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fdcc20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32905, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32911, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d0b8", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fde090", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32934, + "line": 1091, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32979, + "line": 1092, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fddfe0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32938, + "line": 1091, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fddfc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32940, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32940, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fddfa8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32940, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32940, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fdcc80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32938, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32938, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fddf90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32943, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdcca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32943, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgafr\"" + } + ] + } + ] + }, + { + "id": "0x558a51fde080", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32966, + "line": 1092, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32979, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fde050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32973, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32979, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d110", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdf4c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33002, + "line": 1093, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33048, + "line": 1094, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51fdf410", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33006, + "line": 1093, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdf3f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33008, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33008, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf3d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33008, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33008, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fde0b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33006, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33006, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdf3c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33011, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fde0d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33011, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"temp_slowadc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdf4b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33035, + "line": 1094, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33048, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51fdf480", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33042, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33048, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d4c0", + "kind": "EnumConstantDecl", + "name": "SLOW_ADC_TEMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdfae8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33067, + "line": 1095, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fdfad0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33067, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fdfaa8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fdfa88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fdfa80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fdfa50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51fdfa38", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51fdfa20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fdfa00", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fdf9f8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fdf9c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdf9a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33107, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 33107, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf988", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33107, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 33107, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fdf970", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33086, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf4f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33086, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char[19]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown dac Index \"" + } + ] + }, + { + "id": "0x558a51fdf520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33109, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51fdff60", + "kind": "FunctionDecl", + "loc": { + "offset": 33145, + "file": "ToString.cpp", + "line": 1098, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33116, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33550, + "line": 1112, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbccb0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10powerIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "inner": [ + { + "id": "0x558a5152d5d0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "decl": { + "id": "0x558a5152d530", + "kind": "EnumDecl", + "name": "powerIndex" + } + } + ] + }, + { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "loc": { + "offset": 33173, + "line": 1098, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33154, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 33173, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fe8090", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 33176, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 33550, + "line": 1112, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fe1550", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33182, + "line": 1099, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33219, + "line": 1100, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe14a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33186, + "line": 1099, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe1488", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33188, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33188, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe1468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33188, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33188, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe0148", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33186, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33186, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe1450", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33191, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe0168", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33191, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_a\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe1540", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33206, + "line": 1100, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33219, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe1510", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33213, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33219, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d5f0", + "kind": "EnumConstantDecl", + "name": "V_POWER_A", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe2980", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33234, + "line": 1101, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33271, + "line": 1102, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe28d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33238, + "line": 1101, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe28b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33240, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33240, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe2898", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33240, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33240, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe1570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33238, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33238, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe2880", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33243, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe1590", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33243, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_b\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe2970", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33258, + "line": 1102, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33271, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe2940", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33265, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33271, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d648", + "kind": "EnumConstantDecl", + "name": "V_POWER_B", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe3db0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33286, + "line": 1103, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33323, + "line": 1104, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe3d00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33290, + "line": 1103, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe3ce8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33292, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33292, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe3cc8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33292, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33292, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe29a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33290, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33290, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe3cb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33295, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe29c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33295, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_c\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe3da0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33310, + "line": 1104, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33323, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe3d70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33323, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d6a0", + "kind": "EnumConstantDecl", + "name": "V_POWER_C", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe51e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33338, + "line": 1105, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33375, + "line": 1106, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe5130", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33342, + "line": 1105, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe5118", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33344, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33344, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe50f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33344, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33344, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe3dd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33342, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33342, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe50e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33347, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe3df0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33347, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_d\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe51d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33362, + "line": 1106, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33375, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe51a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33369, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33375, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d6f8", + "kind": "EnumConstantDecl", + "name": "V_POWER_D", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe6620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33390, + "line": 1107, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33428, + "line": 1108, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fe6570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33394, + "line": 1107, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe6558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33396, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33396, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe6538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33396, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33396, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe5200", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33394, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33394, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe6520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33399, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe5220", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33399, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"v_io\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe6610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33415, + "line": 1108, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33428, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fe65e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33422, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33428, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d750", + "kind": "EnumConstantDecl", + "name": "V_POWER_IO", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe7a50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33444, + "line": 1109, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33484, + "line": 1110, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fe79a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33448, + "line": 1109, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe7988", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7968", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe6640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33448, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33448, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe7950", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33453, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe6660", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33453, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"v_chip\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe7a40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33471, + "line": 1110, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33484, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fe7a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33478, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33484, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d7a8", + "kind": "EnumConstantDecl", + "name": "V_POWER_CHIP", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe8078", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33502, + "line": 1111, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fe8060", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33502, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fe8038", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fe8018", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fe8010", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fe7fe0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51fe7fc8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51fe7fb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fe7f90", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fe7f88", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fe7f50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe7f38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33544, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33544, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7f18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33544, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33544, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fe7f00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33521, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7a80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33521, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown power Index \"" + } + ] + }, + { + "id": "0x558a51fe7ab0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33546, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51fe8260", + "kind": "FunctionDecl", + "loc": { + "offset": 33581, + "file": "ToString.cpp", + "line": 1114, + "col": 29, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33553, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33941, + "line": 1124, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbd240", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::burstMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "inner": [ + { + "id": "0x558a5152eaf0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "decl": { + "id": "0x558a5152ea48", + "kind": "EnumDecl", + "name": "burstMode" + } + } + ] + }, + { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "loc": { + "offset": 33609, + "line": 1114, + "col": 57, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33590, + "col": 38, + "tokLen": 5 + }, + "end": { + "offset": 33609, + "col": 57, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fedb30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 33612, + "col": 60, + "tokLen": 1 + }, + "end": { + "offset": 33941, + "line": 1124, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fe9860", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33618, + "line": 1115, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33666, + "line": 1116, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51fe97b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33622, + "line": 1115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe9798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33624, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33624, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe9778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33624, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33624, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe8448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33622, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33622, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe9760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33627, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe8468", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33627, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"burst_internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe9850", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33653, + "line": 1116, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33666, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51fe9820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33666, + "col": 22, + "tokLen": 14 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152eb10", + "kind": "EnumConstantDecl", + "name": "BURST_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51feac90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33686, + "line": 1117, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33734, + "line": 1118, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51feabe0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33690, + "line": 1117, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51feabc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33692, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33692, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51feaba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33692, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33692, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe9880", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33690, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33690, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51feab90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33695, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe98a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33695, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"burst_external\"" + } + ] + } + ] + }, + { + "id": "0x558a51feac80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33721, + "line": 1118, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33734, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51feac50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33728, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33734, + "col": 22, + "tokLen": 14 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152eb68", + "kind": "EnumConstantDecl", + "name": "BURST_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fec0c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33754, + "line": 1119, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33799, + "line": 1120, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fec010", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33758, + "line": 1119, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51febff8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33760, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33760, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51febfd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33760, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33760, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51feacb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33758, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33758, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51febfc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33763, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51feacd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33763, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"cw_internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fec0b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33786, + "line": 1120, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33799, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fec080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33793, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33799, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ebc0", + "kind": "EnumConstantDecl", + "name": "CONTINUOUS_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fed4f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33824, + "line": 1121, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33869, + "line": 1122, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fed440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33828, + "line": 1121, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fed428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33830, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33830, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fed408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33830, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33830, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fec0e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33828, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33828, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fed3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33833, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fec100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33833, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"cw_external\"" + } + ] + } + ] + }, + { + "id": "0x558a51fed4e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33856, + "line": 1122, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33869, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fed4b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33863, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33869, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ec18", + "kind": "EnumConstantDecl", + "name": "CONTINUOUS_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fedb18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33894, + "line": 1123, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fedb00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33894, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fedad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fedab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fedab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51feda80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51feda68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51feda50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51feda30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51feda28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fed9f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fed9d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33935, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 33935, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fed9b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33935, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 33935, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fed9a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33913, + "col": 24, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fed520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33913, + "col": 24, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char[20]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown burst mode \"" + } + ] + }, + { + "id": "0x558a51fed550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33937, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51fedcf0", + "kind": "FunctionDecl", + "loc": { + "offset": 33979, + "file": "ToString.cpp", + "line": 1126, + "col": 36, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33944, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34197, + "line": 1132, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbd7d0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "inner": [ + { + "id": "0x558a5152eda0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "decl": { + "id": "0x558a5152ecf8", + "kind": "EnumDecl", + "name": "timingSourceType" + } + } + ] + }, + { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "loc": { + "offset": 34007, + "line": 1126, + "col": 64, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33988, + "col": 45, + "tokLen": 5 + }, + "end": { + "offset": 34007, + "col": 64, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ff0d90", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34010, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 34197, + "line": 1132, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fef2e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34016, + "line": 1127, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34058, + "line": 1128, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fef230", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34020, + "line": 1127, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fef218", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34022, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34022, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fef1f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34022, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34022, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51feded8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34020, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34020, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fef1e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34025, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fedef8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34025, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fef2d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34045, + "line": 1128, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34058, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fef2a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34052, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34058, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152edc0", + "kind": "EnumConstantDecl", + "name": "TIMING_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff0710", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34079, + "line": 1129, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34121, + "line": 1130, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51ff0660", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34083, + "line": 1129, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff0648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34085, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34085, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0628", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34085, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34085, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fef300", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34083, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34083, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff0610", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34088, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fef320", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34088, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"external\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff0700", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34108, + "line": 1130, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34121, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51ff06d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34115, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34121, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ee18", + "kind": "EnumConstantDecl", + "name": "TIMING_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff0d78", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34142, + "line": 1131, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ff0d60", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34142, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ff0d38", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ff0d18", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff0d10", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff0ce0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ff0cc8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ff0cb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ff0c90", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff0c88", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff0c50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff0c38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34191, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 34191, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0c18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34191, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 34191, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ff0c00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34161, + "col": 24, + "tokLen": 29 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0740", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34161, + "col": 24, + "tokLen": 29 + } + }, + "type": { + "qualType": "const char[28]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown timing source type \"" + } + ] + }, + { + "id": "0x558a51ff0778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34193, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51ff0f40", + "kind": "FunctionDecl", + "loc": { + "offset": 34230, + "file": "ToString.cpp", + "line": 1134, + "col": 31, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34200, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34640, + "line": 1148, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbdd60", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "inner": [ + { + "id": "0x558a5152ef10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "decl": { + "id": "0x558a5152ee70", + "kind": "EnumDecl", + "name": "M3_GainCaps" + } + } + ] + }, + { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "loc": { + "offset": 34258, + "line": 1134, + "col": 59, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 34239, + "col": 40, + "tokLen": 5 + }, + "end": { + "offset": 34258, + "col": 59, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ff9060", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34261, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 34640, + "line": 1148, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ff2530", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34267, + "line": 1135, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34307, + "line": 1136, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff2480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34271, + "line": 1135, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff2468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34273, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34273, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff2448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34273, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34273, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff1128", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34271, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34271, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff2430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34276, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff1148", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34276, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"C10pre\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff2520", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34294, + "line": 1136, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34307, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff24f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34301, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34307, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152efb0", + "kind": "EnumConstantDecl", + "name": "M3_C10pre", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff3960", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34322, + "line": 1137, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34361, + "line": 1138, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff38b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34326, + "line": 1137, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff3898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34328, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34328, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff3878", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34328, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34328, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff2550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34326, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34326, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff3860", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34331, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff2570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34331, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C15sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff3950", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34348, + "line": 1138, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34361, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff3920", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34355, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34361, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f088", + "kind": "EnumConstantDecl", + "name": "M3_C15sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff4d90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34375, + "line": 1139, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34414, + "line": 1140, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff4ce0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34379, + "line": 1139, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff4cc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34381, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34381, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff4ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34381, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34381, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff3980", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34379, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34379, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff4c90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34384, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff39a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34384, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C30sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff4d80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34401, + "line": 1140, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34414, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff4d50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34408, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34414, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f160", + "kind": "EnumConstantDecl", + "name": "M3_C30sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff61c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34428, + "line": 1141, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34467, + "line": 1142, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff6110", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34432, + "line": 1141, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff60f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34434, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34434, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff60d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34434, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34434, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff4db0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34432, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34432, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff60c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34437, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff4dd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34437, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C50sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff61b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34454, + "line": 1142, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34467, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff6180", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34461, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34467, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f238", + "kind": "EnumConstantDecl", + "name": "M3_C50sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff75f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34481, + "line": 1143, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34523, + "line": 1144, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51ff7540", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34485, + "line": 1143, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff7528", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34487, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34487, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff7508", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34487, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34487, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff61e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34485, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34485, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff74f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34490, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff6200", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34490, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"C225ACsh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff75e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34510, + "line": 1144, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34523, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51ff75b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34517, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34523, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f310", + "kind": "EnumConstantDecl", + "name": "M3_C225ACsh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff8a20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34540, + "line": 1145, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34580, + "line": 1146, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff8970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34544, + "line": 1145, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff8958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34546, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34546, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34546, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34546, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff7610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34544, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34544, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff8920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34549, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff7630", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34549, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"C15pre\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff8a10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34567, + "line": 1146, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34580, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff89e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34574, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34580, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f3e8", + "kind": "EnumConstantDecl", + "name": "M3_C15pre", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff9048", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34595, + "line": 1147, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ff9030", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34595, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ff9008", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ff8fe8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff8fe0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff8fb0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ff8f98", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ff8f80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ff8f60", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff8f58", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff8f20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff8f08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34634, + "col": 44, + "tokLen": 1 + }, + "end": { + "offset": 34634, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34634, + "col": 44, + "tokLen": 1 + }, + "end": { + "offset": 34634, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ff8ed0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34614, + "col": 24, + "tokLen": 19 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8a50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34614, + "col": 24, + "tokLen": 19 + } + }, + "type": { + "qualType": "const char[18]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown gain cap \"" + } + ] + }, + { + "id": "0x558a51ff8a80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34636, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51ff9230", + "kind": "FunctionDecl", + "loc": { + "offset": 34674, + "file": "ToString.cpp", + "line": 1150, + "col": 32, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34643, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34957, + "line": 1160, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbe2f0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::portPosition (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "inner": [ + { + "id": "0x558a5152f570", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "decl": { + "id": "0x558a5152f4d0", + "kind": "EnumDecl", + "name": "portPosition" + } + } + ] + }, + { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "loc": { + "offset": 34702, + "line": 1150, + "col": 60, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 34683, + "col": 41, + "tokLen": 5 + }, + "end": { + "offset": 34702, + "col": 60, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ffeaf0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34705, + "col": 63, + "tokLen": 1 + }, + "end": { + "offset": 34957, + "line": 1160, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffa820", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34711, + "line": 1151, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34749, + "line": 1152, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51ffa770", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34715, + "line": 1151, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffa758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34717, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34717, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffa738", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34717, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34717, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff9418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34715, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34715, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffa720", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34720, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff9438", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34720, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"left\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffa810", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34736, + "line": 1152, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34749, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51ffa7e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34743, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34749, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f590", + "kind": "EnumConstantDecl", + "name": "LEFT", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffbc50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34759, + "line": 1153, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34798, + "line": 1154, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51ffbba0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34763, + "line": 1153, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffbb88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34765, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34765, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffbb68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34765, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34765, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffa840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34763, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34763, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffbb50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34768, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffa860", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34768, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"right\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffbc40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34785, + "line": 1154, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34798, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51ffbc10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34792, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34798, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f5e8", + "kind": "EnumConstantDecl", + "name": "RIGHT", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffd080", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34809, + "line": 1155, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34846, + "line": 1156, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51ffcfd0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34813, + "line": 1155, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffcfb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34815, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34815, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffcf98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34815, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34815, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffbc70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34813, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34813, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffcf80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34818, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffbc90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34818, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"top\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffd070", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34833, + "line": 1156, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34846, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51ffd040", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34840, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34846, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f640", + "kind": "EnumConstantDecl", + "name": "TOP", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffe4b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34855, + "line": 1157, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34895, + "line": 1158, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51ffe400", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34859, + "line": 1157, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffe3e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe3c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffd0a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34859, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34859, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffe3b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffd0c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"bottom\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffe4a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34882, + "line": 1158, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34895, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51ffe470", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34889, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34895, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f698", + "kind": "EnumConstantDecl", + "name": "BOTTOM", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffead8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34907, + "line": 1159, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ffeac0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34907, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ffea98", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ffea78", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ffea70", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ffea40", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ffea28", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ffea10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ffe9f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ffe9e8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ffe9b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffe998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34951, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 34951, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe978", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34951, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 34951, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ffe960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34926, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe4e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34926, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown port position \"" + } + ] + }, + { + "id": "0x558a51ffe510", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34953, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a51ffecb0", + "kind": "FunctionDecl", + "loc": { + "offset": 34997, + "file": "ToString.cpp", + "line": 1162, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34960, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 35420, + "line": 1173, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbe880", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "inner": [ + { + "id": "0x558a5152f930", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "decl": { + "id": "0x558a5152f890", + "kind": "EnumDecl", + "name": "streamingInterface" + } + } + ] + }, + { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "loc": { + "offset": 35025, + "line": 1162, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35006, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 35025, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520048f0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35028, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 35420, + "line": 1173, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffef98", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 35034, + "line": 1163, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 35052, + "col": 23, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "loc": { + "offset": 35046, + "col": 17, + "tokLen": 2 + }, + "range": { + "begin": { + "offset": 35034, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51ffef68", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35051, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ffef48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35051, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52000550", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35058, + "line": 1164, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35125, + "line": 1165, + "col": 30, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fffa78", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 35062, + "line": 1164, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a51fff900", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35072, + "col": 19, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff8d0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35064, + "col": 11, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b838", + "inner": [ + { + "id": "0x558a51ffefb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35062, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a51fff048", + "kind": "CharacterLiteral", + "range": { + "begin": { + "offset": 35069, + "col": 16, + "tokLen": 3 + }, + "end": { + "offset": 35069, + "col": 16, + "tokLen": 3 + } + }, + "type": { + "qualType": "char" + }, + "valueCategory": "prvalue", + "value": 44 + }, + { + "id": "0x558a51fff948", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff930", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 102107, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2991, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f9b0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51fffa60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35077, + "file": "ToString.cpp", + "line": 1164, + "col": 24, + "tokLen": 3 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51fffa30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35077, + "col": 24, + "tokLen": 3 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a520004a8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35104, + "line": 1165, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35125, + "col": 30, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a52000478", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35104, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35107, + "col": 12, + "tokLen": 5 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "erase", + "isArrow": false, + "referencedMemberDecl": "0x558a50c904f8", + "inner": [ + { + "id": "0x558a51fffa98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35104, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35104, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a520003f8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35124, + "col": 29, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520003b0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35116, + "col": 21, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b838", + "inner": [ + { + "id": "0x558a520003e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35113, + "col": 18, + "tokLen": 2 + } + }, + "type": { + "qualType": "const std::basic_string" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fffb20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35113, + "col": 18, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fffbb8", + "kind": "CharacterLiteral", + "range": { + "begin": { + "offset": 35121, + "col": 26, + "tokLen": 3 + }, + "end": { + "offset": 35121, + "col": 26, + "tokLen": 3 + } + }, + "type": { + "qualType": "char" + }, + "valueCategory": "prvalue", + "value": 44 + }, + { + "id": "0x558a52000428", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff930", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 102107, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2991, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f9b0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52000530", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52000518", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 76670, + "line": 2323, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520004f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520019b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35132, + "file": "ToString.cpp", + "line": 1166, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35191, + "line": 1167, + "col": 42, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520018e8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35136, + "line": 1166, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520018d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35139, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35139, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520018b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35139, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35139, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52001880", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35136, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35136, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52000570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35136, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35136, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52001898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35142, + "col": 15, + "tokLen": 6 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52000590", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35142, + "col": 15, + "tokLen": 6 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"none\"" + } + ] + } + ] + }, + { + "id": "0x558a520019a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35158, + "line": 1167, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35191, + "col": 42, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52001970", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35165, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35191, + "col": 42, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f990", + "kind": "EnumConstantDecl", + "name": "NONE", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52002e10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35201, + "line": 1168, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35259, + "line": 1169, + "col": 42, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a52002d48", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35205, + "line": 1168, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52002d30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35208, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35208, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52002d10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35208, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35208, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52002ce0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35205, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35205, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520019d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35205, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35205, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52002cf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35211, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520019f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35211, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"lll\"" + } + ] + } + ] + }, + { + "id": "0x558a52002e00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35226, + "line": 1169, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35259, + "col": 42, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a52002dd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35233, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35259, + "col": 42, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fa68", + "kind": "EnumConstantDecl", + "name": "LOW_LATENCY_LINK", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52004270", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35281, + "line": 1170, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35341, + "line": 1171, + "col": 42, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a520041a8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35285, + "line": 1170, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52004190", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35288, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35288, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52004170", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35288, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35288, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52004140", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35285, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35285, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52002e30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35285, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35285, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52004158", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35291, + "col": 15, + "tokLen": 7 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52002e50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35291, + "col": 15, + "tokLen": 7 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"10gbe\"" + } + ] + } + ] + }, + { + "id": "0x558a52004260", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35308, + "line": 1171, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35341, + "col": 42, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a52004230", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35315, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35341, + "col": 42, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fb40", + "kind": "EnumConstantDecl", + "name": "ETHERNET_10GB", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520048d8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 35360, + "line": 1172, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a520048c0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 35360, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52004898", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52004878", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52004870", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52004840", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52004828", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52004810", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520047f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520047e8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520047b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52004798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35414, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 35414, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52004778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35414, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 35414, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52004760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35379, + "col": 24, + "tokLen": 34 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520042a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35379, + "col": 24, + "tokLen": 34 + } + }, + "type": { + "qualType": "const char[33]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown streamingInterface type \"" + } + ] + }, + { + "id": "0x558a520042d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35416, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52004ac0", + "kind": "FunctionDecl", + "loc": { + "offset": 35455, + "file": "ToString.cpp", + "line": 1175, + "col": 33, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 35423, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 35645, + "line": 1181, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbee10", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "inner": [ + { + "id": "0x558a5152fd10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "decl": { + "id": "0x558a5152fc70", + "kind": "EnumDecl", + "name": "vetoAlgorithm" + } + } + ] + }, + { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 35483, + "line": 1175, + "col": 61, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35464, + "col": 42, + "tokLen": 5 + }, + "end": { + "offset": 35483, + "col": 61, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52007b30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35486, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 35645, + "line": 1181, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520060b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35492, + "line": 1176, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35530, + "line": 1177, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52006000", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35496, + "line": 1176, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52005fe8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35498, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35498, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52005fc8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35498, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35498, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52004ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35496, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35496, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52005fb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35501, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52004cc8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35501, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hits\"" + } + ] + } + ] + }, + { + "id": "0x558a520060a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35517, + "line": 1177, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35530, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52006070", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35524, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35530, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fd30", + "kind": "EnumConstantDecl", + "name": "ALG_HITS", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520074f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35544, + "line": 1178, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35581, + "line": 1179, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52007440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35548, + "line": 1178, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52007428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35550, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35550, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52007408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35550, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35550, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520060d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35548, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35548, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520073f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35553, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520060f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35553, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"raw\"" + } + ] + } + ] + }, + { + "id": "0x558a520074e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35568, + "line": 1179, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35581, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a520074b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35575, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35581, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fd88", + "kind": "EnumConstantDecl", + "name": "ALG_RAW", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52007b18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 35594, + "line": 1180, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52007b00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 35594, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52007ad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52007ab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52007ab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52007a80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52007a68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52007a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52007a30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52007a28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520079f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520079d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35639, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 35639, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520079b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35639, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 35639, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a520079a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35613, + "col": 24, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52007520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35613, + "col": 24, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown veto algorithm \"" + } + ] + }, + { + "id": "0x558a52007550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35641, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52007ce0", + "kind": "FunctionDecl", + "loc": { + "offset": 35675, + "file": "ToString.cpp", + "line": 1183, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 35648, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36101, + "line": 1197, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbf3a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::gainMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "inner": [ + { + "id": "0x558a5152fe80", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "decl": { + "id": "0x558a5152fde0", + "kind": "EnumDecl", + "name": "gainMode" + } + } + ] + }, + { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "loc": { + "offset": 35703, + "line": 1183, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35684, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 35703, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5200fe00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35706, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 36101, + "line": 1197, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520092d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35712, + "line": 1184, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35753, + "line": 1185, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52009220", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35716, + "line": 1184, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52009208", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35718, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35718, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520091e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35718, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35718, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52007ec8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35716, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35716, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520091d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35721, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52007ee8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35721, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"dynamic\"" + } + ] + } + ] + }, + { + "id": "0x558a520092c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35740, + "line": 1185, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35753, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52009290", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35747, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35753, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fea0", + "kind": "EnumConstantDecl", + "name": "DYNAMIC", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200a700", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35766, + "line": 1186, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35813, + "line": 1187, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200a650", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35770, + "line": 1186, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200a638", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35772, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35772, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200a618", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35772, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35772, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520092f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35770, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35770, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200a600", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35775, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52009310", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35775, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"forceswitchg1\"" + } + ] + } + ] + }, + { + "id": "0x558a5200a6f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35800, + "line": 1187, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35813, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200a6c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35807, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35813, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fef8", + "kind": "EnumConstantDecl", + "name": "FORCE_SWITCH_G1", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200bb30", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35834, + "line": 1188, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35881, + "line": 1189, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200ba80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35838, + "line": 1188, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200ba68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35840, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35840, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200ba48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35840, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35840, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200a720", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35838, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35838, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200ba30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35843, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200a740", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35843, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"forceswitchg2\"" + } + ] + } + ] + }, + { + "id": "0x558a5200bb20", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35868, + "line": 1189, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35881, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200baf0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35875, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35881, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ff50", + "kind": "EnumConstantDecl", + "name": "FORCE_SWITCH_G2", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200cf60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35902, + "line": 1190, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35941, + "line": 1191, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200ceb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35906, + "line": 1190, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200ce98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35908, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35908, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200ce78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35908, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35908, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200bb50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35906, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35906, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200ce60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35911, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200bb70", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35911, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg1\"" + } + ] + } + ] + }, + { + "id": "0x558a5200cf50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35928, + "line": 1191, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35941, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200cf20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35935, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35941, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ffa8", + "kind": "EnumConstantDecl", + "name": "FIX_G1", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200e390", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35953, + "line": 1192, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35992, + "line": 1193, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200e2e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35957, + "line": 1192, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200e2c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200e2a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200cf80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35957, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200e290", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35962, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200cfa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35962, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg2\"" + } + ] + } + ] + }, + { + "id": "0x558a5200e380", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35979, + "line": 1193, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35992, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200e350", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35986, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35992, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530000", + "kind": "EnumConstantDecl", + "name": "FIX_G2", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200f7c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36004, + "line": 1194, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36043, + "line": 1195, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200f710", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36008, + "line": 1194, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200f6f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36010, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36010, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200f6d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36010, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36010, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200e3b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36008, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36008, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200f6c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36013, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200e3d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36013, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg0\"" + } + ] + } + ] + }, + { + "id": "0x558a5200f7b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36030, + "line": 1195, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36043, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200f780", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36037, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36043, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530058", + "kind": "EnumConstantDecl", + "name": "FIX_G0", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200fde8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36055, + "line": 1196, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a5200fdd0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36055, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5200fda8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a5200fd88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a5200fd80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5200fd50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a5200fd38", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a5200fd20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5200fd00", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5200fcf8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5200fcc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200fca8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36095, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 36095, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200fc88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36095, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 36095, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5200fc70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36074, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200f7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36074, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char[19]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown gain mode \"" + } + ] + }, + { + "id": "0x558a5200f820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36097, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a5200ffd0", + "kind": "FunctionDecl", + "loc": { + "offset": 36131, + "file": "ToString.cpp", + "line": 1199, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36104, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36320, + "line": 1205, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbf930", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::polarity (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "inner": [ + { + "id": "0x558a51530150", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "decl": { + "id": "0x558a515300b0", + "kind": "EnumDecl", + "name": "polarity" + } + } + ] + }, + { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "loc": { + "offset": 36159, + "line": 1199, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36140, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 36159, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52013030", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36162, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 36320, + "line": 1205, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520115c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36168, + "line": 1200, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36205, + "line": 1201, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52011510", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36172, + "line": 1200, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520114f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36174, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36174, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520114d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36174, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36174, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520101b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36172, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36172, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520114c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36177, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520101d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36177, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"pos\"" + } + ] + } + ] + }, + { + "id": "0x558a520115b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36192, + "line": 1201, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36205, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52011580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36199, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36205, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530170", + "kind": "EnumConstantDecl", + "name": "POSITIVE", + "type": { + "qualType": "slsDetectorDefs::polarity" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520129f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36219, + "line": 1202, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36256, + "line": 1203, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52012940", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36223, + "line": 1202, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52012928", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36225, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36225, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52012908", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36225, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36225, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520115e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36223, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36223, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520128f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36228, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52011600", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36228, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"neg\"" + } + ] + } + ] + }, + { + "id": "0x558a520129e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36243, + "line": 1203, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36256, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a520129b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36250, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36256, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515301c8", + "kind": "EnumConstantDecl", + "name": "NEGATIVE", + "type": { + "qualType": "slsDetectorDefs::polarity" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52013018", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36270, + "line": 1204, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52013000", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36270, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52012fd8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52012fb8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52012fb0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52012f80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52012f68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52012f50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52012f30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52012f28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52012ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52012ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36314, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 36314, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52012eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36314, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 36314, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52012ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36289, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52012a20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36289, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown polarity mode \"" + } + ] + }, + { + "id": "0x558a52012a50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36316, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a520131e0", + "kind": "FunctionDecl", + "loc": { + "offset": 36359, + "file": "ToString.cpp", + "line": 1207, + "col": 37, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36323, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36558, + "line": 1213, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbfec0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "inner": [ + { + "id": "0x558a515302c0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "decl": { + "id": "0x558a51530220", + "kind": "EnumDecl", + "name": "timingInfoDecoder" + } + } + ] + }, + { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "loc": { + "offset": 36387, + "line": 1207, + "col": 65, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36368, + "col": 46, + "tokLen": 5 + }, + "end": { + "offset": 36387, + "col": 65, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52016280", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36390, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 36558, + "line": 1213, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520147d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36396, + "line": 1208, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36438, + "line": 1209, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52014720", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36400, + "line": 1208, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52014708", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36402, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36402, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520146e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36402, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36402, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520133c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36400, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36400, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520146d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36405, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520133e8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36405, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"swissfel\"" + } + ] + } + ] + }, + { + "id": "0x558a520147c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36425, + "line": 1209, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36438, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52014790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36432, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36438, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515302e0", + "kind": "EnumConstantDecl", + "name": "SWISSFEL", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52015c00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36452, + "line": 1210, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36491, + "line": 1211, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52015b50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36456, + "line": 1210, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52015b38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36458, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36458, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52015b18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36458, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36458, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520147f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36456, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36456, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52015b00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36461, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52014810", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36461, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"shine\"" + } + ] + } + ] + }, + { + "id": "0x558a52015bf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36478, + "line": 1211, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36491, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52015bc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36485, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36491, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530338", + "kind": "EnumConstantDecl", + "name": "SHINE", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52016268", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36502, + "line": 1212, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52016250", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36502, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52016228", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52016208", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52016200", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520161d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520161b8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520161a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52016180", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52016178", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52016140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52016128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36552, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 36552, + "col": 55, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52016108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36552, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 36552, + "col": 55, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a520160f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36521, + "col": 24, + "tokLen": 30 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52015c30", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36521, + "col": 24, + "tokLen": 30 + } + }, + "type": { + "qualType": "const char[29]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown Timing Info Decoder \"" + } + ] + }, + { + "id": "0x558a52015c68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36554, + "col": 57, + "tokLen": 1 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52016430", + "kind": "FunctionDecl", + "loc": { + "offset": 36594, + "file": "ToString.cpp", + "line": 1215, + "col": 34, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36561, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36787, + "line": 1221, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc0450", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "inner": [ + { + "id": "0x558a51530430", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "decl": { + "id": "0x558a51530390", + "kind": "EnumDecl", + "name": "collectionMode" + } + } + ] + }, + { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "loc": { + "offset": 36622, + "line": 1215, + "col": 62, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36603, + "col": 43, + "tokLen": 5 + }, + "end": { + "offset": 36622, + "col": 62, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520194c0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36625, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 36787, + "line": 1221, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52017a20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36631, + "line": 1216, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36669, + "line": 1217, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52017970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36635, + "line": 1216, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52017958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36637, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36637, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52017938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36637, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36637, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52016618", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36635, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36635, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52017920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36640, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52016638", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36640, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hole\"" + } + ] + } + ] + }, + { + "id": "0x558a52017a10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36656, + "line": 1217, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36669, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520179e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36663, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36669, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530450", + "kind": "EnumConstantDecl", + "name": "HOLE", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52018e50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36679, + "line": 1218, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36721, + "line": 1219, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52018da0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36683, + "line": 1218, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52018d88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36685, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36685, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52018d68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36685, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36685, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52017a40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36683, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36683, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52018d50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36688, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52017a60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36688, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"electron\"" + } + ] + } + ] + }, + { + "id": "0x558a52018e40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36708, + "line": 1219, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36721, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52018e10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36715, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36721, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515304a8", + "kind": "EnumConstantDecl", + "name": "ELECTRON", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520194a8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36735, + "line": 1220, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52019490", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36735, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52019468", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52019448", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52019440", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52019410", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520193f8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520193e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520193c0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520193b8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52019380", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52019368", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36781, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36781, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52019348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36781, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36781, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52019330", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36754, + "col": 24, + "tokLen": 26 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52018e80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36754, + "col": 24, + "tokLen": 26 + } + }, + "type": { + "qualType": "const char[25]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown collection mode \"" + } + ] + }, + { + "id": "0x558a52018eb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36783, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52019620", + "kind": "FunctionDecl", + "loc": { + "offset": 36810, + "file": "ToString.cpp", + "line": 1223, + "col": 21, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36790, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37239, + "line": 1232, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc13b0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint8_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned char" + }, + "inner": [ + { + "id": "0x558a5015ac50", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned char" + } + } + ] + }, + { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "loc": { + "offset": 36838, + "line": 1223, + "col": 49, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36819, + "col": 30, + "tokLen": 5 + }, + "end": { + "offset": 36838, + "col": 49, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5201e620", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36841, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 37239, + "line": 1232, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d310", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 36847, + "line": 1224, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36901, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520197f0", + "kind": "VarDecl", + "loc": { + "offset": 36851, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 36847, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201d2e0", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d280", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5201d140", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36869, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d110", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36860, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52019858", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36858, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5201d170", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36865, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 36865, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520198f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36865, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 36865, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5201d1a0", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d268", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36874, + "file": "ToString.cpp", + "line": 1224, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d238", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36874, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5201d2a0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 36894, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 36894, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5201d2c0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 36899, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d580", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 36907, + "line": 1225, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36946, + "col": 44, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d340", + "kind": "VarDecl", + "loc": { + "offset": 36911, + "col": 9, + "tokLen": 5 + }, + "range": { + "begin": { + "offset": 36907, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36945, + "col": 43, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "value", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201d518", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36945, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d500", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36924, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36924, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5201d418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36929, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 36929, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5201d550", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36932, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 36932, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5201d438", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 36932, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 36932, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5201d568", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36941, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 36941, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36941, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 36941, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520197f0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36952, + "line": 1226, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 37197, + "line": 1230, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d940", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36956, + "line": 1226, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37053, + "line": 1227, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a5201d778", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36956, + "line": 1226, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "<", + "inner": [ + { + "id": "0x558a5201d748", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36956, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36956, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d598", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36956, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36956, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201d760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201d728", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36994, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d6e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36994, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a502efe00", + "kind": "CXXMethodDecl", + "name": "min", + "type": { + "qualType": "unsigned char () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d920", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37011, + "line": 1227, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": ">", + "inner": [ + { + "id": "0x558a5201d8f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37011, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37011, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d798", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37011, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37011, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201d908", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201d8d0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d8b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37049, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d888", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37049, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a502efed8", + "kind": "CXXMethodDecl", + "name": "max", + "type": { + "qualType": "unsigned char () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e548", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37056, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 37197, + "line": 1230, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e530", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 37066, + "line": 1228, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a5201e518", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 37066, + "line": 1228, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201e4f0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a5201e4d0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201e4c8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201e498", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a5201e480", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a5201e468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5201e448", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201e440", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201e408", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201e3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37125, + "line": 1228, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 37125, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(basic_string, allocator> &&, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201e3d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37125, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 37125, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515d5600", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5201e3a0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "xvalue", + "storageDuration": "full expression", + "inner": [ + { + "id": "0x558a5201df20", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201df18", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201dee0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201dec8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37121, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 37121, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201dea8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37121, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 37121, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5201de90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37085, + "col": 28, + "tokLen": 35 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201d9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37085, + "col": 28, + "tokLen": 35 + } + }, + "type": { + "qualType": "const char[34]" + }, + "valueCategory": "lvalue", + "value": "\"Cannot scan uint8_t from string '\"" + } + ] + }, + { + "id": "0x558a5201da10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37123, + "col": 66, + "tokLen": 1 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e3b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37154, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201df40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37154, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37154, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"'. Value must be in range 0 - 255.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37203, + "line": 1231, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37236, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e5e0", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 37210, + "col": 12, + "tokLen": 11 + }, + "end": { + "offset": 37236, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned char", + "qualType": "uint8_t", + "typeAliasDeclId": "0x558a50375a38" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5201e5c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "desugaredQualType": "unsigned char", + "qualType": "uint8_t", + "typeAliasDeclId": "0x558a50375a38" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a5201e5b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a5201e580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a5201e790", + "kind": "FunctionDecl", + "loc": { + "offset": 37263, + "file": "ToString.cpp", + "line": 1234, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37242, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37698, + "line": 1243, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc18c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint16_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned short" + }, + "inner": [ + { + "id": "0x558a5015ac70", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned short" + } + } + ] + }, + { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "loc": { + "offset": 37291, + "line": 1234, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37272, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37291, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520206a0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37294, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 37698, + "line": 1243, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201f498", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37300, + "line": 1235, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37354, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e960", + "kind": "VarDecl", + "loc": { + "offset": 37304, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37300, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201f468", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f408", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5201f2e0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37322, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f2b0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37313, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a5201e9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37311, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5201f310", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37318, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37318, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201ea60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37318, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37318, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5201f328", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201f3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37327, + "file": "ToString.cpp", + "line": 1235, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f3c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37327, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5201f428", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37347, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37347, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5201f448", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37352, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201f6a0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37360, + "line": 1236, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37399, + "col": 44, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "loc": { + "offset": 37364, + "col": 9, + "tokLen": 5 + }, + "range": { + "begin": { + "offset": 37360, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37398, + "col": 43, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "value", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201f638", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37398, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f620", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37377, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f5f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37377, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5201f5a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37382, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 37382, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5201f670", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37385, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 37385, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5201f5c0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37385, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 37385, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5201f688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37394, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 37394, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f5d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37394, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 37394, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e960", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520205e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 37405, + "line": 1237, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 37655, + "line": 1241, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201fa50", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37409, + "line": 1237, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37508, + "line": 1238, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a5201f888", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37409, + "line": 1237, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "<", + "inner": [ + { + "id": "0x558a5201f858", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37409, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37409, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f6b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37409, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37409, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201f870", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201f838", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned short" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f820", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37448, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f7f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37448, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a504139f0", + "kind": "CXXMethodDecl", + "name": "min", + "type": { + "qualType": "unsigned short () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201fa30", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37465, + "line": 1238, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": ">", + "inner": [ + { + "id": "0x558a5201fa00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37465, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37465, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37465, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37465, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201fa18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201f9e0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned short" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f9c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37504, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f998", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37504, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50413ac8", + "kind": "CXXMethodDecl", + "name": "max", + "type": { + "qualType": "unsigned short () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520205c8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37511, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 37655, + "line": 1241, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520205b0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 37521, + "line": 1239, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52020598", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 37521, + "line": 1239, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52020570", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52020550", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52020548", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52020518", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52020500", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520204e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520204c8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520204c0", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52020488", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52020470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37581, + "line": 1239, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 37581, + "col": 69, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(basic_string, allocator> &&, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52020450", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37581, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 37581, + "col": 69, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515d5600", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52020420", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "xvalue", + "storageDuration": "full expression", + "inner": [ + { + "id": "0x558a5201ffa0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201ff98", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201ff60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201ff48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37577, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 37577, + "col": 65, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201ff28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37577, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 37577, + "col": 65, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5201ff10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37540, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201fa80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37540, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"Cannot scan uint16_t from string '\"" + } + ] + }, + { + "id": "0x558a5201fac0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37579, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52020438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + }, + "end": { + "offset": 37610, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201ffc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37610, + "col": 28, + "tokLen": 38 + }, + "end": { + "offset": 37610, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "qualType": "const char[37]" + }, + "valueCategory": "lvalue", + "value": "\"'. Value must be in range 0 - 65535.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52020690", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37661, + "line": 1242, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37695, + "col": 39, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52020660", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 37668, + "col": 12, + "tokLen": 11 + }, + "end": { + "offset": 37695, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned short", + "qualType": "uint16_t", + "typeAliasDeclId": "0x558a50375aa0" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52020648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "desugaredQualType": "unsigned short", + "qualType": "uint16_t", + "typeAliasDeclId": "0x558a50375aa0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a52020630", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a52020600", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52020810", + "kind": "FunctionDecl", + "loc": { + "offset": 37722, + "file": "ToString.cpp", + "line": 1245, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37701, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37856, + "line": 1248, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc1dd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint32_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned int" + }, + "inner": [ + { + "id": "0x558a5015ac90", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned int" + } + } + ] + }, + { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "loc": { + "offset": 37750, + "line": 1245, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37731, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37750, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52021728", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37753, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 37856, + "line": 1248, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021518", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37759, + "line": 1246, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37813, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520209e0", + "kind": "VarDecl", + "loc": { + "offset": 37763, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37759, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520214e8", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021488", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a52021360", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37781, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021330", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37772, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52020a48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37770, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52021390", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37777, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37777, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52020ae0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37777, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37777, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a520213a8", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52021470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37786, + "file": "ToString.cpp", + "line": 1246, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52021440", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37786, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a520214a8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37806, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37806, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a520214c8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37811, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52021718", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37819, + "line": 1247, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021700", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned int", + "qualType": "uint32_t", + "typeAliasDeclId": "0x558a50375b08" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52021698", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021680", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37831, + "col": 17, + "tokLen": 5 + } + }, + "type": { + "qualType": "unsigned long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520215f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37831, + "col": 17, + "tokLen": 5 + } + }, + "type": { + "qualType": "unsigned long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cac0f8", + "kind": "FunctionDecl", + "name": "stoul", + "type": { + "qualType": "unsigned long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a520215a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37837, + "col": 23, + "tokLen": 1 + }, + "end": { + "offset": 37837, + "col": 23, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520216d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37840, + "col": 26, + "tokLen": 7 + }, + "end": { + "offset": 37840, + "col": 26, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a520215c0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37840, + "col": 26, + "tokLen": 7 + }, + "end": { + "offset": 37840, + "col": 26, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a520216e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37849, + "col": 35, + "tokLen": 4 + }, + "end": { + "offset": 37849, + "col": 35, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520215d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37849, + "col": 35, + "tokLen": 4 + }, + "end": { + "offset": 37849, + "col": 35, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520209e0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52021880", + "kind": "FunctionDecl", + "loc": { + "offset": 37880, + "file": "ToString.cpp", + "line": 1250, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37859, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38015, + "line": 1253, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc22a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned long" + }, + "inner": [ + { + "id": "0x558a5015acb0", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned long" + } + } + ] + }, + { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "loc": { + "offset": 37908, + "line": 1250, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37889, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37908, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52022798", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37911, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 38015, + "line": 1253, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022588", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37917, + "line": 1251, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37971, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021a50", + "kind": "VarDecl", + "loc": { + "offset": 37921, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37917, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a52022558", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520224f8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a520223d0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37939, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520223a0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37930, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52021ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37928, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52022400", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37935, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37935, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52021b50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37935, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37935, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a52022418", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520224e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37944, + "file": "ToString.cpp", + "line": 1251, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520224b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37944, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a52022518", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37964, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37964, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a52022538", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37969, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52022788", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37977, + "line": 1252, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "uint64_t", + "typeAliasDeclId": "0x558a50375b70" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52022708", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned long long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520226f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37989, + "col": 17, + "tokLen": 6 + } + }, + "type": { + "qualType": "unsigned long long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52022660", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37989, + "col": 17, + "tokLen": 6 + } + }, + "type": { + "qualType": "unsigned long long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cae278", + "kind": "FunctionDecl", + "name": "stoull", + "type": { + "qualType": "unsigned long long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52022610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37996, + "col": 24, + "tokLen": 1 + }, + "end": { + "offset": 37996, + "col": 24, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52022740", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37999, + "col": 27, + "tokLen": 7 + }, + "end": { + "offset": 37999, + "col": 27, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a52022630", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37999, + "col": 27, + "tokLen": 7 + }, + "end": { + "offset": 37999, + "col": 27, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52022758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38008, + "col": 36, + "tokLen": 4 + }, + "end": { + "offset": 38008, + "col": 36, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52022640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38008, + "col": 36, + "tokLen": 4 + }, + "end": { + "offset": 38008, + "col": 36, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52021a50", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a520228f8", + "kind": "FunctionDecl", + "loc": { + "offset": 38034, + "file": "ToString.cpp", + "line": 1255, + "col": 17, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38018, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38167, + "line": 1258, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc27b8", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "int" + }, + "inner": [ + { + "id": "0x558a5015abf0", + "kind": "BuiltinType", + "type": { + "qualType": "int" + } + } + ] + }, + { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "loc": { + "offset": 38062, + "line": 1255, + "col": 45, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38043, + "col": 26, + "tokLen": 5 + }, + "end": { + "offset": 38062, + "col": 45, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520237a0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38065, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 38167, + "line": 1258, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023608", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 38071, + "line": 1256, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 38125, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022ad0", + "kind": "VarDecl", + "loc": { + "offset": 38075, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 38071, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520235d8", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023578", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a52023450", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38093, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023420", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38084, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52022b38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38082, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52023480", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38089, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 38089, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52022bd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38089, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 38089, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a52023498", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52023560", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38098, + "file": "ToString.cpp", + "line": 1256, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52023530", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38098, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a52023598", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38118, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 38118, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a520235b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38123, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52023790", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38131, + "line": 1257, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38164, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023728", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38164, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38143, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520236e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38143, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52023690", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38148, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 38148, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52023760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38151, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 38151, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a520236b0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 38151, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 38151, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52023778", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38160, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 38160, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520236c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38160, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 38160, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022ad0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52023900", + "kind": "FunctionDecl", + "loc": { + "offset": 38187, + "file": "ToString.cpp", + "line": 1260, + "col": 18, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38170, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38271, + "line": 1262, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc2c90", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "bool (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "bool" + }, + "inner": [ + { + "id": "0x558a5015ab70", + "kind": "BuiltinType", + "type": { + "qualType": "bool" + } + } + ] + }, + { + "id": "0x558a52023830", + "kind": "ParmVarDecl", + "loc": { + "offset": 38215, + "line": 1260, + "col": 46, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38196, + "col": 27, + "tokLen": 5 + }, + "end": { + "offset": 38215, + "col": 46, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52023cb8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38218, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 38271, + "line": 1262, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023ca8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38224, + "line": 1261, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38268, + "col": 49, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023c78", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38268, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023c60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38231, + "col": 12, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool (*)(const std::string &, defs::boolFormat)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52023be0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38231, + "col": 12, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc3260", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + } + } + } + ] + }, + { + "id": "0x558a52023b20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38240, + "col": 21, + "tokLen": 1 + }, + "end": { + "offset": 38240, + "col": 21, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023830", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52023b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38243, + "col": 24, + "tokLen": 4 + }, + "end": { + "offset": 38261, + "col": 42, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bdf0", + "kind": "EnumConstantDecl", + "name": "OneZero", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52023ed0", + "kind": "FunctionDecl", + "loc": { + "offset": 38279, + "file": "ToString.cpp", + "line": 1264, + "col": 6, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38274, + "col": 1, + "tokLen": 4 + }, + "end": { + "offset": 39159, + "line": 1294, + "col": 1, + "tokLen": 1 + } + }, + "isUsed": true, + "previousDecl": "0x558a51bc3260", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN15slsDetectorDefs10boolFormatE", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "inner": [ + { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "loc": { + "offset": 38307, + "line": 1264, + "col": 34, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38288, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 38307, + "col": 34, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52023df0", + "kind": "ParmVarDecl", + "loc": { + "offset": 38327, + "col": 54, + "tokLen": 6 + }, + "range": { + "begin": { + "offset": 38310, + "col": 37, + "tokLen": 4 + }, + "end": { + "offset": 38327, + "col": 54, + "tokLen": 6 + } + }, + "isUsed": true, + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + }, + { + "id": "0x558a52029c28", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38335, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 39159, + "line": 1294, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023fd8", + "kind": "SwitchStmt", + "range": { + "begin": { + "offset": 38341, + "line": 1265, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 39157, + "line": 1293, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023fc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38349, + "line": 1265, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52023fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38349, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52023f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38349, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023df0", + "kind": "ParmVarDecl", + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029bf8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38357, + "col": 21, + "tokLen": 1 + }, + "end": { + "offset": 39157, + "line": 1293, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520240b8", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38363, + "line": 1266, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 38582, + "line": 1272, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52024098", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38368, + "line": 1266, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0", + "inner": [ + { + "id": "0x558a52024080", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38368, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52024050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38368, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bd40", + "kind": "EnumConstantDecl", + "name": "TrueFalse", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52026a60", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38397, + "col": 39, + "tokLen": 1 + }, + "end": { + "offset": 38582, + "line": 1272, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52025498", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38407, + "line": 1267, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38443, + "line": 1268, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52025440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38411, + "line": 1267, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52025428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38413, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38413, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52025408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38413, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38413, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520240e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38411, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38411, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520253f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38416, + "col": 18, + "tokLen": 6 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52024100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38416, + "col": 18, + "tokLen": 6 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"true\"" + } + ] + } + ] + }, + { + "id": "0x558a52025488", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38436, + "line": 1268, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38443, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52025478", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38443, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38443, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a52026878", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38457, + "line": 1269, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38494, + "line": 1270, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52026820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38461, + "line": 1269, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52026808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38463, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38463, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520267e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38463, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38463, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520254b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38461, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38461, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520267d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38466, + "col": 18, + "tokLen": 7 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520254d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38466, + "col": 18, + "tokLen": 7 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"false\"" + } + ] + } + ] + }, + { + "id": "0x558a52026868", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38487, + "line": 1270, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38494, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52026858", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38494, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38494, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52026a48", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 38509, + "line": 1271, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52026a30", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 38509, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52026a08", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520269e8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520269e0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520269b0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52026998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38528, + "col": 28, + "tokLen": 47 + }, + "end": { + "offset": 38528, + "col": 28, + "tokLen": 47 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52026910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38528, + "col": 28, + "tokLen": 47 + }, + "end": { + "offset": 38528, + "col": 28, + "tokLen": 47 + } + }, + "type": { + "qualType": "const char[46]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 'true' or 'false'.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52026b40", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38588, + "line": 1273, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 38795, + "line": 1279, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52026b20", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38593, + "line": 1273, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1", + "inner": [ + { + "id": "0x558a52026b08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38593, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52026ad8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38593, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bd98", + "kind": "EnumConstantDecl", + "name": "OnOff", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029468", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38618, + "col": 35, + "tokLen": 1 + }, + "end": { + "offset": 38795, + "line": 1279, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52027f18", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38628, + "line": 1274, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38662, + "line": 1275, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52027ec0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38632, + "line": 1274, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52027ea8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38634, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38634, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52027e88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38634, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38634, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52026b68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38632, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38632, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52027e70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38637, + "col": 18, + "tokLen": 4 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52026b88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38637, + "col": 18, + "tokLen": 4 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"on\"" + } + ] + } + ] + }, + { + "id": "0x558a52027f08", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38655, + "line": 1275, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38662, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52027ef8", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38662, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38662, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a520292e8", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38676, + "line": 1276, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38711, + "line": 1277, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52029290", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38680, + "line": 1276, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52029278", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38682, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38682, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52029258", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38682, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38682, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52027f38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38680, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38680, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52029240", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38685, + "col": 18, + "tokLen": 5 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52027f58", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38685, + "col": 18, + "tokLen": 5 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"off\"" + } + ] + } + ] + }, + { + "id": "0x558a520292d8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38704, + "line": 1277, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38711, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a520292c8", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38711, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38711, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52029450", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 38726, + "line": 1278, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52029438", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 38726, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52029410", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520293f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520293e8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520293b8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520293a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38745, + "col": 28, + "tokLen": 43 + }, + "end": { + "offset": 38745, + "col": 28, + "tokLen": 43 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52029318", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38745, + "col": 28, + "tokLen": 43 + }, + "end": { + "offset": 38745, + "col": 28, + "tokLen": 43 + } + }, + "type": { + "qualType": "const char[42]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 'on' or 'off'.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029548", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38801, + "line": 1280, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 39083, + "line": 1290, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029528", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38806, + "line": 1280, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "2", + "inner": [ + { + "id": "0x558a52029510", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38806, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a520294e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38806, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bdf0", + "kind": "EnumConstantDecl", + "name": "OneZero", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029a70", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38833, + "col": 37, + "tokLen": 1 + }, + "end": { + "offset": 39083, + "line": 1290, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029748", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 38843, + "line": 1281, + "col": 9, + "tokLen": 3 + }, + "end": { + "offset": 38876, + "col": 42, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029588", + "kind": "VarDecl", + "loc": { + "offset": 38847, + "col": 13, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38843, + "col": 9, + "tokLen": 3 + }, + "end": { + "offset": 38875, + "col": 41, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "i", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520296f8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38875, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520296e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38856, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520296b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38856, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52029660", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38861, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 38861, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52029730", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38864, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 38864, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a52029680", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 38864, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 38864, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52029690", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38873, + "col": 39, + "tokLen": 2 + }, + "end": { + "offset": 38873, + "col": 39, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029798", + "kind": "SwitchStmt", + "range": { + "begin": { + "offset": 38886, + "line": 1282, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 39077, + "line": 1289, + "col": 9, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029780", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38894, + "line": 1282, + "col": 17, + "tokLen": 1 + }, + "end": { + "offset": 38894, + "col": 17, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52029760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38894, + "col": 17, + "tokLen": 1 + }, + "end": { + "offset": 38894, + "col": 17, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029588", + "kind": "VarDecl", + "name": "i", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a52029a48", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38897, + "col": 20, + "tokLen": 1 + }, + "end": { + "offset": 39077, + "line": 1289, + "col": 9, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029800", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38907, + "line": 1283, + "col": 9, + "tokLen": 4 + }, + "end": { + "offset": 38934, + "line": 1284, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a520297e0", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38912, + "line": 1283, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38912, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0", + "inner": [ + { + "id": "0x558a520297c0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38912, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38912, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + }, + { + "id": "0x558a52029838", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38927, + "line": 1284, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38934, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52029828", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38934, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38934, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52029888", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38949, + "line": 1285, + "col": 9, + "tokLen": 4 + }, + "end": { + "offset": 38976, + "line": 1286, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52029868", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38954, + "line": 1285, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38954, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1", + "inner": [ + { + "id": "0x558a52029848", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38954, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38954, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1" + } + ] + }, + { + "id": "0x558a520298c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38969, + "line": 1286, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38976, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520298b0", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38976, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38976, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a52029a28", + "kind": "DefaultStmt", + "range": { + "begin": { + "offset": 38990, + "line": 1287, + "col": 9, + "tokLen": 7 + }, + "end": { + "offset": 39066, + "line": 1288, + "col": 68, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029a10", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 39011, + "col": 13, + "tokLen": 5 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a520299f8", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 39011, + "col": 13, + "tokLen": 5 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520299d0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520299b0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520299a8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52029978", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52029960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39030, + "col": 32, + "tokLen": 36 + }, + "end": { + "offset": 39030, + "col": 32, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520298e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39030, + "col": 32, + "tokLen": 36 + }, + "end": { + "offset": 39030, + "col": 32, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 0 or 1.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029bd8", + "kind": "DefaultStmt", + "range": { + "begin": { + "offset": 39089, + "line": 1291, + "col": 5, + "tokLen": 7 + }, + "end": { + "offset": 39150, + "line": 1292, + "col": 53, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029bc0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 39106, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52029ba8", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 39106, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52029b80", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a52029b60", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52029b58", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52029b28", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52029b10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39125, + "col": 28, + "tokLen": 25 + }, + "end": { + "offset": 39125, + "col": 28, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52029aa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39125, + "col": 28, + "tokLen": 25 + }, + "end": { + "offset": 39125, + "col": 28, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean format.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +} +{ + "id": "0x558a52029d80", + "kind": "FunctionDecl", + "loc": { + "offset": 39182, + "file": "ToString.cpp", + "line": 1296, + "col": 21, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 39162, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 39315, + "line": 1299, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc34a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "long" + }, + "inner": [ + { + "id": "0x558a5015ac10", + "kind": "BuiltinType", + "type": { + "qualType": "long" + } + } + ] + }, + { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "loc": { + "offset": 39210, + "line": 1296, + "col": 49, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 39191, + "col": 30, + "tokLen": 5 + }, + "end": { + "offset": 39210, + "col": 49, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5202ac80", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 39213, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 39315, + "line": 1299, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5202aa88", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 39219, + "line": 1297, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 39273, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029f50", + "kind": "VarDecl", + "loc": { + "offset": 39223, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 39219, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5202aa58", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202a9f8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5202a8d0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39241, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202a8a0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39232, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52029fb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39230, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5202a900", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39237, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 39237, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5202a050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39237, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 39237, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5202a918", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5202a9e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39246, + "file": "ToString.cpp", + "line": 1297, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5202a9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39246, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5202aa18", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 39266, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 39266, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5202aa38", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 39271, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5202ac70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 39279, + "line": 1298, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 39312, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5202ac08", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39312, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "qualType": "long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202abf0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39291, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5202ab60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39291, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cab248", + "kind": "FunctionDecl", + "name": "stol", + "type": { + "qualType": "long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5202ab10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39296, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 39296, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5202ac40", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39299, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 39299, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5202ab30", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 39299, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 39299, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5202ac58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39308, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 39308, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5202ab40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39308, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 39308, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029f50", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/slsDetectorSoftware/generator/autocomplete/fixed.json b/slsDetectorSoftware/generator/autocomplete/fixed.json new file mode 100644 index 000000000..d1e7768df --- /dev/null +++ b/slsDetectorSoftware/generator/autocomplete/fixed.json @@ -0,0 +1,76731 @@ +[ +{ + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 9823, + "file": "../include/sls/ToString.h", + "line": 305, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9744, + "line": 304, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 9763, + "line": 304, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9754, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9763, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51b80c40", + "kind": "NonTypeTemplateParmDecl", + "loc": { + "offset": 9816, + "col": 73, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9766, + "col": 23, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "typename enable_if::value, int>::type", + "qualType": "std::enable_if_t::value, int>" + }, + "depth": 0, + "index": 1, + "defaultArg": { + "kind": "TemplateArgument", + "isExpr": true + }, + "inner": [ + { + "kind": "TemplateArgument", + "range": { + "begin": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isExpr": true, + "inner": [ + { + "id": "0x558a51b80be8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9818, + "col": 75, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + }, + { + "id": "0x558a51b80f10", + "kind": "FunctionDecl", + "loc": { + "offset": 9823, + "line": 305, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9821, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &, const std::string &)" + }, + "inner": [ + { + "id": "0x558a51b80d38", + "kind": "ParmVarDecl", + "loc": { + "offset": 9851, + "line": 305, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9832, + "col": 12, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9851, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "t", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "loc": { + "offset": 9873, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9854, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9873, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb5ed8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9879, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10664, + "line": 327, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b811e0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 9885, + "line": 306, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9899, + "col": 19, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "loc": { + "offset": 9892, + "col": 12, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9885, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9898, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "tval", + "type": { + "qualType": "double" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51b81180", + "kind": "InitListExpr", + "range": { + "begin": { + "offset": 9896, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9898, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b811c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "IntegralToFloating", + "inner": [ + { + "id": "0x558a51b81108", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9897, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b81718", + "kind": "CXXTryStmt", + "range": { + "begin": { + "offset": 9905, + "line": 307, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b813c8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9909, + "line": 307, + "col": 9, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9944, + "line": 309, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b813a8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 9919, + "line": 308, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9937, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "opcode": "=", + "inner": [ + { + "id": "0x558a51b811f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9919, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9919, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + }, + { + "id": "0x558a51b81358", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9937, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b81340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9931, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (*)(const string &, size_t *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b812a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9926, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9931, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (const string &, size_t *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50caf2a8", + "kind": "FunctionDecl", + "name": "stod", + "type": { + "qualType": "double (const string &, size_t *)" + } + } + } + ] + }, + { + "id": "0x558a51b81288", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 9936, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9936, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80d38", + "kind": "ParmVarDecl", + "name": "t", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b81388", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a50caf1d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 159105, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 4489, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a50caf1b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b816f8", + "kind": "CXXCatchStmt", + "range": { + "begin": { + "offset": 9946, + "file": "../include/sls/ToString.h", + "line": 309, + "col": 7, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81498", + "kind": "VarDecl", + "loc": { + "offset": 9982, + "line": 309, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 9953, + "col": 14, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 9982, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "e", + "type": { + "qualType": "const std::invalid_argument &" + } + }, + { + "id": "0x558a51b816e0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 9985, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10055, + "line": 311, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b816c8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 9995, + "line": 310, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51b816b0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 9995, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b81688", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51b81668", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51b81660", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51b81630", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10001, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10048, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51b815e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b81570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10014, + "col": 28, + "tokLen": 34, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[33]" + }, + "valueCategory": "lvalue", + "value": "\"Could not convert string to time\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51b817f0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10062, + "line": 313, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10089, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81748", + "kind": "UsingDecl", + "loc": { + "offset": 10081, + "col": 24, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10062, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10081, + "col": 24, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "std::chrono::duration" + } + ] + }, + { + "id": "0x558a51b818c0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10095, + "line": 314, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10127, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b81818", + "kind": "UsingDecl", + "loc": { + "offset": 10114, + "col": 24, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10095, + "col": 5, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10114, + "col": 24, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "std::chrono::duration_cast" + } + ] + }, + { + "id": "0x558a51bb5ea8", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10133, + "line": 315, + "col": 5, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51b82c30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10137, + "line": 315, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51b82c18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b82bf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10142, + "col": 14, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51b818d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10137, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10137, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b82be0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b818f8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10145, + "col": 17, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"ns\"" + } + ] + } + ] + }, + { + "id": "0x558a51b961b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10151, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10225, + "line": 317, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b961a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10161, + "line": 316, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10218, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51b96180", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10168, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10218, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b82c90", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10168, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10183, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51b96158", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10185, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10217, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51b95e00", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51b96128", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10185, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10217, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51b95f50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51b82f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10213, + "col": 61, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e78", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10232, + "line": 317, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51b97530", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10236, + "line": 317, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51b97518", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51b974f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10241, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51b961d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10236, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10236, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51b974e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51b961f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10244, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"us\"" + } + ] + } + ] + }, + { + "id": "0x558a51ba0a28", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10250, + "col": 30, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10325, + "line": 319, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51ba0a18", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10260, + "line": 318, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10318, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51ba09f0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10267, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10318, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51b97578", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10267, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10282, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51ba09c8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10284, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10317, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51ba0670", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51ba0998", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10284, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10317, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ba07c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51b97840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10313, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e48", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10332, + "line": 319, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51ba1da0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10336, + "line": 319, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ba1d88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ba1d68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10341, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ba0a40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10336, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10336, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ba1d50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ba0a60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10344, + "col": 24, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"ms\"" + } + ] + } + ] + }, + { + "id": "0x558a51bab298", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10350, + "col": 30, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10425, + "line": 321, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bab288", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10360, + "line": 320, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10418, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bab260", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10367, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10418, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ba1de8", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10367, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10382, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bab238", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10384, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10417, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51baaee0", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51bab208", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10384, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10417, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::chrono::duration>", + "qualType": "duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bab030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ba20b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10413, + "col": 62, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e18", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 10432, + "line": 321, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bac6f0", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 10436, + "line": 321, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10462, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51bac610", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51bac5f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bac5d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10441, + "col": 21, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51bab2b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10436, + "col": 16, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51bac5c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bab2d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10444, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"s\"" + } + ] + } + ] + }, + { + "id": "0x558a51bac698", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10462, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bac668", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10456, + "col": 36, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "empty", + "isArrow": false, + "referencedMemberDecl": "0x558a50c83a88", + "inner": [ + { + "id": "0x558a51bac648", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10451, + "col": 31, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b80df8", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5c48", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10465, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10541, + "line": 323, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5c38", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 10475, + "line": 322, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10534, + "col": 68, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5c10", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10482, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10534, + "col": 68, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bac720", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 10482, + "col": 16, + "tokLen": 13, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10497, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "duration_cast", + "lookups": [ + { + "id": "0x558a51b81870", + "kind": "UsingShadowDecl", + "name": "duration_cast" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51b806d0", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51b80680", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb5be8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10499, + "col": 33, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10533, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::chrono::duration" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a51bb5890", + "kind": "CXXConstructorDecl", + "name": "duration", + "type": { + "qualType": "void (const double &)" + } + }, + "inner": [ + { + "id": "0x558a51bb5bb8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10499, + "col": 33, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10533, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::chrono::duration" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const double &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb59e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const double" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bac9d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10529, + "col": 63, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b810a0", + "kind": "VarDecl", + "name": "tval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb5e00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10548, + "line": 323, + "col": 12, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10662, + "line": 326, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb5de8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 10558, + "line": 324, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb5dd0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 10558, + "line": 324, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb5da8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb5d88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb5d80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb5d50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10564, + "line": 324, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10655, + "line": 325, + "col": 78, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb5d38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb5ca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10590, + "col": 13, + "tokLen": 65, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[64]" + }, + "valueCategory": "lvalue", + "value": "\"Invalid unit in conversion from string to std::chrono::duration\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 10747, + "file": "../include/sls/ToString.h", + "line": 330, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10667, + "line": 329, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bb5f10", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 10686, + "line": 329, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10677, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10686, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bb64b0", + "kind": "NonTypeTemplateParmDecl", + "loc": { + "offset": 10740, + "col": 74, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10689, + "col": 23, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "typename enable_if::value, int>::type", + "qualType": "std::enable_if_t::value, int>" + }, + "depth": 0, + "index": 1, + "defaultArg": { + "kind": "TemplateArgument", + "isExpr": true + }, + "inner": [ + { + "kind": "TemplateArgument", + "range": { + "begin": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isExpr": true, + "inner": [ + { + "id": "0x558a51bb6458", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10742, + "col": 76, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + }, + { + "id": "0x558a51bb6740", + "kind": "FunctionDecl", + "loc": { + "offset": 10747, + "line": 330, + "col": 3, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10745, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &, const std::string &)" + }, + "inner": [ + { + "id": "0x558a51bb65a8", + "kind": "ParmVarDecl", + "loc": { + "offset": 10775, + "line": 330, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10756, + "col": 12, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10775, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "f", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "loc": { + "offset": 10797, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10778, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10797, + "col": 53, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb86e0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10803, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11600, + "line": 354, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6a20", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10809, + "line": 331, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10823, + "col": 19, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "loc": { + "offset": 10816, + "col": 12, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10809, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10822, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "fval", + "type": { + "qualType": "double" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51bb69c0", + "kind": "InitListExpr", + "range": { + "begin": { + "offset": 10820, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10822, + "col": 18, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6a00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "IntegralToFloating", + "inner": [ + { + "id": "0x558a51bb6948", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10821, + "col": 17, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb6e08", + "kind": "CXXTryStmt", + "range": { + "begin": { + "offset": 10829, + "line": 332, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6ba0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10833, + "line": 332, + "col": 9, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10868, + "line": 334, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6b80", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 10843, + "line": 333, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10861, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "opcode": "=", + "inner": [ + { + "id": "0x558a51bb6a38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10843, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10843, + "col": 9, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + }, + { + "id": "0x558a51bb6b30", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10861, + "col": 27, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6b18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10855, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (*)(const string &, size_t *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb6ae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10850, + "col": 16, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10855, + "col": 21, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double (const string &, size_t *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50caf2a8", + "kind": "FunctionDecl", + "name": "stod", + "type": { + "qualType": "double (const string &, size_t *)" + } + } + } + ] + }, + { + "id": "0x558a51bb6ac8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 10860, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10860, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb65a8", + "kind": "ParmVarDecl", + "name": "f", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51bb6b60", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a50caf1d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 159105, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 4489, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a50caf1b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 159105, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb6de8", + "kind": "CXXCatchStmt", + "range": { + "begin": { + "offset": 10870, + "file": "../include/sls/ToString.h", + "line": 334, + "col": 7, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6c10", + "kind": "VarDecl", + "loc": { + "offset": 10906, + "line": 334, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10877, + "col": 14, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10906, + "col": 43, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "e", + "type": { + "qualType": "const std::invalid_argument &" + } + }, + { + "id": "0x558a51bb6dd0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 10909, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10984, + "line": 336, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6db8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 10919, + "line": 335, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb6da0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 10919, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6d78", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb6d58", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb6d50", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb6d20", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 10925, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10977, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb6d08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb6c88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 10938, + "col": 28, + "tokLen": 39, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[38]" + }, + "valueCategory": "lvalue", + "value": "\"Could not convert string to frequency\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7f88", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 10990, + "line": 337, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11220, + "line": 342, + "col": 8, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "loc": { + "offset": 10995, + "line": 337, + "col": 10, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 10990, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11219, + "line": 342, + "col": 7, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unitLower", + "type": { + "qualType": "auto" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb7f68", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11219, + "line": 342, + "col": 7, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7f40", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:337:22)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb6ea8", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11007, + "line": 337, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb6ff0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11007, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11009, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto () const -> auto" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7f00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11011, + "line": 337, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7300", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11021, + "line": 338, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11046, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "loc": { + "offset": 11033, + "col": 21, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11021, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb72d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb7280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7e90", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11187, + "line": 340, + "col": 71, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7338", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11061, + "col": 14, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": false, + "name": "transform", + "lookups": [ + { + "id": "0x558a51084b18", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a51093238", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510cf5f0", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510d0570", + "kind": "FunctionTemplateDecl", + "name": "transform" + } + ] + }, + { + "id": "0x558a51bb7448", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11084, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7418", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11078, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7518", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11098, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb74e8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11094, + "col": 47, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81c78", + "inner": [ + { + "id": "0x558a51bb7468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb75e8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11114, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb75b8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11108, + "col": 61, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7e68", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11140, + "line": 340, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:340:24)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7608", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb7750", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11158, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto (unsigned char) const" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "c", + "type": { + "qualType": "unsigned char" + } + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ce8", + "kind": "CXXConversionDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "operator auto (*)(unsigned char)", + "type": { + "qualType": "auto (*() const noexcept)(unsigned char)" + }, + "inline": true, + "constexpr": true + }, + { + "id": "0x558a51bb7da0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "__invoke", + "type": { + "qualType": "auto (unsigned char)" + }, + "storageClass": "static", + "inline": true, + "inner": [ + { + "id": "0x558a51bb7c80", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ef0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11198, + "line": 341, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7f00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11011, + "line": 337, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11217, + "line": 342, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7300", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11021, + "line": 338, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11046, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "loc": { + "offset": 11033, + "col": 21, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11021, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb72d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb7280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11042, + "col": 30, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6668", + "kind": "ParmVarDecl", + "name": "unit", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7e90", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11187, + "line": 340, + "col": 71, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7338", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11056, + "line": 339, + "col": 9, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11061, + "col": 14, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": false, + "name": "transform", + "lookups": [ + { + "id": "0x558a51084b18", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a51093238", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510cf5f0", + "kind": "FunctionTemplateDecl", + "name": "transform" + }, + { + "id": "0x558a510d0570", + "kind": "FunctionTemplateDecl", + "name": "transform" + } + ] + }, + { + "id": "0x558a51bb7448", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11084, + "col": 37, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7418", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11078, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11071, + "col": 24, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7518", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11098, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb74e8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11094, + "col": 47, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81c78", + "inner": [ + { + "id": "0x558a51bb7468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11087, + "col": 40, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb75e8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11114, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator>", + "qualType": "iterator", + "typeAliasDeclId": "0x558a50c6d278" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb75b8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11108, + "col": 61, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a50c81988", + "inner": [ + { + "id": "0x558a51bb7538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11101, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7e68", + "kind": "LambdaExpr", + "range": { + "begin": { + "offset": 11140, + "line": 340, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "(lambda at ../include/sls/ToString.h:340:24)" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7608", + "kind": "CXXRecordDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "tagUsed": "class", + "completeDefinition": true, + "definitionData": { + "canConstDefaultInit": true, + "copyAssign": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "trivial": true + }, + "copyCtor": { + "hasConstParam": true, + "implicitHasConstParam": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "defaultCtor": { + "defaultedIsConstexpr": true + }, + "dtor": { + "irrelevant": true, + "needsImplicit": true, + "simple": true, + "trivial": true + }, + "isEmpty": true, + "isLambda": true, + "isLiteral": true, + "isStandardLayout": true, + "isTriviallyCopyable": true, + "moveAssign": {}, + "moveCtor": { + "exists": true, + "needsImplicit": true, + "simple": true, + "trivial": true + } + }, + "inner": [ + { + "id": "0x558a51bb7750", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11158, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "operator()", + "type": { + "qualType": "auto (unsigned char) const" + }, + "inline": true, + "inner": [ + { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "c", + "type": { + "qualType": "unsigned char" + } + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ce8", + "kind": "CXXConversionDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "operator auto (*)(unsigned char)", + "type": { + "qualType": "auto (*() const noexcept)(unsigned char)" + }, + "inline": true, + "constexpr": true + }, + { + "id": "0x558a51bb7da0", + "kind": "CXXMethodDecl", + "loc": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11140, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "name": "__invoke", + "type": { + "qualType": "auto (unsigned char)" + }, + "storageClass": "static", + "inline": true, + "inner": [ + { + "id": "0x558a51bb7c80", + "kind": "ParmVarDecl", + "loc": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11143, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11157, + "col": 41, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb7b20", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11160, + "col": 44, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11186, + "col": 70, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7b10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11162, + "col": 46, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ab8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11183, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (*)(int) noexcept(true)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb7a00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11169, + "col": 53, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11174, + "col": 58, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int (int) noexcept(true)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50760758", + "kind": "FunctionDecl", + "name": "tolower", + "type": { + "qualType": "int (int) noexcept(true)" + } + }, + "foundReferencedDecl": { + "id": "0x558a50768530", + "kind": "UsingShadowDecl", + "name": "tolower" + } + } + ] + }, + { + "id": "0x558a51bb7af8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a51bb7ae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb79e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11182, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7820", + "kind": "ParmVarDecl", + "name": "c", + "type": { + "qualType": "unsigned char" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb7ef0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11198, + "line": 341, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb7ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11205, + "col": 16, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb7218", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb86b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11227, + "line": 344, + "col": 5, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb7fe0", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11231, + "line": 344, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb7fa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11231, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11231, + "col": 9, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb7fc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11244, + "col": 22, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"mhz\"" + } + ] + }, + { + "id": "0x558a51bb8120", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11251, + "col": 29, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11305, + "line": 346, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8110", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11261, + "line": 345, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11298, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb80e8", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11268, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11298, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb80b8", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11270, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11297, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb80a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8068", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "opcode": "*", + "inner": [ + { + "id": "0x558a51bb8050", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb8010", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11287, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + }, + { + "id": "0x558a51bb8030", + "kind": "FloatingLiteral", + "range": { + "begin": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11294, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "value": "1.0E+6" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8680", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11312, + "line": 346, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb8178", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11316, + "line": 346, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb8138", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11316, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11316, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb8158", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11329, + "col": 29, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"khz\"" + } + ] + }, + { + "id": "0x558a51bb82b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11336, + "col": 36, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11390, + "line": 348, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb82a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11346, + "line": 347, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11383, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8280", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11353, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11383, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb8250", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11355, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11382, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb8238", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8200", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "opcode": "*", + "inner": [ + { + "id": "0x558a51bb81e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51bb81a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11372, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + }, + { + "id": "0x558a51bb81c8", + "kind": "FloatingLiteral", + "range": { + "begin": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11379, + "col": 42, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "value": "1000" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8650", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 11397, + "line": 348, + "col": 12, + "tokLen": 2, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "hasElse": true, + "inner": [ + { + "id": "0x558a51bb83b8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11401, + "line": 348, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51bb8338", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11417, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb82f0", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11411, + "col": 26, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "empty", + "inner": [ + { + "id": "0x558a51bb82d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11401, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bb8398", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "opcode": "==", + "inner": [ + { + "id": "0x558a51bb8358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11422, + "col": 37, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "auto" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb6e40", + "kind": "VarDecl", + "name": "unitLower", + "type": { + "qualType": "auto" + } + } + }, + { + "id": "0x558a51bb8378", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11435, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"hz\"" + } + ] + } + ] + }, + { + "id": "0x558a51bb84b8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11441, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11489, + "line": 350, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb84a8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11451, + "line": 349, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11482, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8480", + "kind": "CXXUnresolvedConstructExpr", + "range": { + "begin": { + "offset": 11458, + "col": 16, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11482, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "T" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb8450", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 11460, + "col": 18, + "tokLen": 11, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11481, + "col": 39, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bb8438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "FloatingToIntegral", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb8420", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a51bb83e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11477, + "col": 35, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "double" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb68e0", + "kind": "VarDecl", + "name": "fval", + "type": { + "qualType": "double" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb8638", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11496, + "line": 350, + "col": 12, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11598, + "line": 353, + "col": 5, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8620", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 11506, + "line": 351, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb8608", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 11506, + "line": 351, + "col": 9, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb85e0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a51bb85c0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb85b8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb8588", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11512, + "line": 351, + "col": 15, + "tokLen": 12, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11591, + "line": 352, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb8570", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51bb84e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11538, + "col": 13, + "tokLen": 53, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const char[52]" + }, + "valueCategory": "lvalue", + "value": "\"Invalid unit in conversion from string to frequency\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 11627, + "file": "../include/sls/ToString.h", + "line": 356, + "col": 25, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11603, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bb8710", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 11622, + "line": 356, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11613, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11622, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bb8910", + "kind": "FunctionDecl", + "loc": { + "offset": 11627, + "col": 25, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11625, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "T (const std::string &)" + }, + "inner": [ + { + "id": "0x558a51bb8808", + "kind": "ParmVarDecl", + "loc": { + "offset": 11655, + "line": 356, + "col": 53, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11636, + "col": 34, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11655, + "col": 53, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "t", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bb98a8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 11658, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11752, + "line": 360, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb9470", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11664, + "line": 357, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11682, + "col": 23, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "loc": { + "offset": 11676, + "col": 17, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11664, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11681, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "list", + "inner": [ + { + "id": "0x558a51bb9440", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 11676, + "col": 17, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11681, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "list": true, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51bb8b40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11680, + "col": 21, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11680, + "col": 21, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8808", + "kind": "ParmVarDecl", + "name": "t", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb9758", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 11688, + "line": 358, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11715, + "col": 32, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb94a0", + "kind": "VarDecl", + "loc": { + "offset": 11693, + "col": 10, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11688, + "col": 5, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "unit", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bb9740", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51bb9638", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "temp": "0x558a51bb9630", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51bb9608", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11714, + "col": 31, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb95f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::string (*)(std::string &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bb9570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11700, + "col": 17, + "tokLen": 10, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "std::string (std::string &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515dba80", + "kind": "FunctionDecl", + "name": "RemoveUnit", + "type": { + "qualType": "std::string (std::string &)" + } + } + } + ] + }, + { + "id": "0x558a51bb9550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11711, + "col": 28, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11711, + "col": 28, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bb9898", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 11721, + "line": 359, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11749, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bb9868", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 11728, + "col": 12, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11749, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bb97a0", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 11728, + "col": 12, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11738, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "StringTo", + "lookups": [ + { + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51bb8760", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51bb8710", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bb9828", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11740, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11740, + "col": 24, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb8ad8", + "kind": "VarDecl", + "name": "tmp", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + }, + { + "id": "0x558a51bb9848", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 11745, + "col": 29, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11745, + "col": 29, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bb94a0", + "kind": "VarDecl", + "name": "unit", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f0e4c0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::detectorType (const std::string &)" + } + }, + { + "id": "0x558a51f1a4a0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + } + }, + { + "id": "0x558a51f342d0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + } + }, + { + "id": "0x558a51f3ee40", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingMode (const std::string &)" + } + }, + { + "id": "0x558a51f45d00", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + } + }, + { + "id": "0x558a51f4a3c0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + } + }, + { + "id": "0x558a51f4d5d0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + } + }, + { + "id": "0x558a51f53080", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + } + }, + { + "id": "0x558a51f59f80", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + } + }, + { + "id": "0x558a51fdff60", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + } + }, + { + "id": "0x558a51fe8260", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::burstMode (const std::string &)" + } + }, + { + "id": "0x558a51fedcf0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + } + }, + { + "id": "0x558a51ff0f40", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + } + }, + { + "id": "0x558a51ff9230", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::portPosition (const std::string &)" + } + }, + { + "id": "0x558a51ffecb0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + } + }, + { + "id": "0x558a52004ac0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + } + }, + { + "id": "0x558a52007ce0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::gainMode (const std::string &)" + } + }, + { + "id": "0x558a5200ffd0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::polarity (const std::string &)" + } + }, + { + "id": "0x558a520131e0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + } + }, + { + "id": "0x558a52016430", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + } + }, + { + "id": "0x558a51bc0990", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "RegisterAddress (const std::string &)" + } + }, + { + "id": "0x558a51bc0ea0", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "RegisterValue (const std::string &)" + } + }, + { + "id": "0x558a52019620", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint8_t (const std::string &)" + } + }, + { + "id": "0x558a5201e790", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint16_t (const std::string &)" + } + }, + { + "id": "0x558a52020810", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint32_t (const std::string &)" + } + }, + { + "id": "0x558a52021880", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "uint64_t (const std::string &)" + } + }, + { + "id": "0x558a520228f8", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "int (const std::string &)" + } + }, + { + "id": "0x558a52023900", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "bool (const std::string &)" + } + }, + { + "id": "0x558a52029d80", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "int64_t (const std::string &)" + } + } + ] +}, +{ + "id": "0x558a51bb9aa0", + "kind": "FunctionDecl", + "loc": { + "offset": 11786, + "file": "../include/sls/ToString.h", + "line": 362, + "col": 32, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11755, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11815, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bb9d10", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "inner": [ + { + "id": "0x558a5144b720", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "decl": { + "id": "0x558a5144b680", + "kind": "EnumDecl", + "name": "detectorType" + } + } + ] + }, + { + "id": "0x558a51bb9980", + "kind": "ParmVarDecl", + "loc": { + "offset": 11814, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11795, + "col": 41, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11814, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bba030", + "kind": "FunctionDecl", + "loc": { + "offset": 11853, + "file": "../include/sls/ToString.h", + "line": 363, + "col": 36, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11818, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11882, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bba2a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "inner": [ + { + "id": "0x558a5152da90", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "decl": { + "id": "0x558a5152d9e8", + "kind": "EnumDecl", + "name": "detectorSettings" + } + } + ] + }, + { + "id": "0x558a51bb9f10", + "kind": "ParmVarDecl", + "loc": { + "offset": 11881, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11862, + "col": 45, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11881, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bba5c0", + "kind": "FunctionDecl", + "loc": { + "offset": 11914, + "file": "../include/sls/ToString.h", + "line": 364, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11885, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11943, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bba830", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "inner": [ + { + "id": "0x558a5152e840", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "decl": { + "id": "0x558a5152e798", + "kind": "EnumDecl", + "name": "speedLevel" + } + } + ] + }, + { + "id": "0x558a51bba4a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 11942, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11923, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 11942, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbab50", + "kind": "FunctionDecl", + "loc": { + "offset": 11975, + "file": "../include/sls/ToString.h", + "line": 365, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11946, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12004, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbadc0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "inner": [ + { + "id": "0x558a5152b060", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "decl": { + "id": "0x558a5152afb8", + "kind": "EnumDecl", + "name": "timingMode" + } + } + ] + }, + { + "id": "0x558a51bbaa30", + "kind": "ParmVarDecl", + "loc": { + "offset": 12003, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 11984, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12003, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbb0e0", + "kind": "FunctionDecl", + "loc": { + "offset": 12044, + "file": "../include/sls/ToString.h", + "line": 366, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12007, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12073, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbb350", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "inner": [ + { + "id": "0x558a51529090", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "decl": { + "id": "0x558a51528fe8", + "kind": "EnumDecl", + "name": "frameDiscardPolicy" + } + } + ] + }, + { + "id": "0x558a51bbafc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12072, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12053, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12072, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbb670", + "kind": "FunctionDecl", + "loc": { + "offset": 12105, + "file": "../include/sls/ToString.h", + "line": 367, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12076, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12134, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbb8e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "inner": [ + { + "id": "0x558a515292b0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "decl": { + "id": "0x558a51529210", + "kind": "EnumDecl", + "name": "fileFormat" + } + } + ] + }, + { + "id": "0x558a51bbb550", + "kind": "ParmVarDecl", + "loc": { + "offset": 12133, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12114, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12133, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbbc00", + "kind": "FunctionDecl", + "loc": { + "offset": 12174, + "file": "../include/sls/ToString.h", + "line": 368, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12137, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12203, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbbe70", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "inner": [ + { + "id": "0x558a5152ae10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "decl": { + "id": "0x558a5152ad68", + "kind": "EnumDecl", + "name": "externalSignalFlag" + } + } + ] + }, + { + "id": "0x558a51bbbae0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12202, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12183, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12202, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbc190", + "kind": "FunctionDecl", + "loc": { + "offset": 12236, + "file": "../include/sls/ToString.h", + "line": 369, + "col": 31, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12206, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12265, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbc400", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "inner": [ + { + "id": "0x558a5152e590", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "decl": { + "id": "0x558a5152e4e8", + "kind": "EnumDecl", + "name": "readoutMode" + } + } + ] + }, + { + "id": "0x558a51bbc070", + "kind": "ParmVarDecl", + "loc": { + "offset": 12264, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12245, + "col": 40, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12264, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbc720", + "kind": "FunctionDecl", + "loc": { + "offset": 12295, + "file": "../include/sls/ToString.h", + "line": 370, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12268, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12324, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbc990", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "inner": [ + { + "id": "0x558a5152b360", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "decl": { + "id": "0x558a5152b2b8", + "kind": "EnumDecl", + "name": "dacIndex" + } + } + ] + }, + { + "id": "0x558a51bbc600", + "kind": "ParmVarDecl", + "loc": { + "offset": 12323, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12304, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12323, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbccb0", + "kind": "FunctionDecl", + "loc": { + "offset": 12356, + "file": "../include/sls/ToString.h", + "line": 371, + "col": 30, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12327, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12385, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbcf20", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10powerIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "inner": [ + { + "id": "0x558a5152d5d0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "decl": { + "id": "0x558a5152d530", + "kind": "EnumDecl", + "name": "powerIndex" + } + } + ] + }, + { + "id": "0x558a51bbcb90", + "kind": "ParmVarDecl", + "loc": { + "offset": 12384, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12365, + "col": 39, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12384, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbd240", + "kind": "FunctionDecl", + "loc": { + "offset": 12416, + "file": "../include/sls/ToString.h", + "line": 372, + "col": 29, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12388, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12445, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbd4b0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::burstMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "inner": [ + { + "id": "0x558a5152eaf0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "decl": { + "id": "0x558a5152ea48", + "kind": "EnumDecl", + "name": "burstMode" + } + } + ] + }, + { + "id": "0x558a51bbd120", + "kind": "ParmVarDecl", + "loc": { + "offset": 12444, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12425, + "col": 38, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12444, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbd7d0", + "kind": "FunctionDecl", + "loc": { + "offset": 12483, + "file": "../include/sls/ToString.h", + "line": 373, + "col": 36, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12448, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12512, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbda40", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "inner": [ + { + "id": "0x558a5152eda0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "decl": { + "id": "0x558a5152ecf8", + "kind": "EnumDecl", + "name": "timingSourceType" + } + } + ] + }, + { + "id": "0x558a51bbd6b0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12511, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12492, + "col": 45, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12511, + "col": 64, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbdd60", + "kind": "FunctionDecl", + "loc": { + "offset": 12545, + "file": "../include/sls/ToString.h", + "line": 374, + "col": 31, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12515, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12574, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbdfd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "inner": [ + { + "id": "0x558a5152ef10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "decl": { + "id": "0x558a5152ee70", + "kind": "EnumDecl", + "name": "M3_GainCaps" + } + } + ] + }, + { + "id": "0x558a51bbdc40", + "kind": "ParmVarDecl", + "loc": { + "offset": 12573, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12554, + "col": 40, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12573, + "col": 59, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbe2f0", + "kind": "FunctionDecl", + "loc": { + "offset": 12608, + "file": "../include/sls/ToString.h", + "line": 375, + "col": 32, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12577, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12637, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbe560", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::portPosition (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "inner": [ + { + "id": "0x558a5152f570", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "decl": { + "id": "0x558a5152f4d0", + "kind": "EnumDecl", + "name": "portPosition" + } + } + ] + }, + { + "id": "0x558a51bbe1d0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12636, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12617, + "col": 41, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12636, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbe880", + "kind": "FunctionDecl", + "loc": { + "offset": 12677, + "file": "../include/sls/ToString.h", + "line": 376, + "col": 38, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12640, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12706, + "col": 67, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbeaf0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "inner": [ + { + "id": "0x558a5152f930", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "decl": { + "id": "0x558a5152f890", + "kind": "EnumDecl", + "name": "streamingInterface" + } + } + ] + }, + { + "id": "0x558a51bbe760", + "kind": "ParmVarDecl", + "loc": { + "offset": 12705, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12686, + "col": 47, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12705, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbee10", + "kind": "FunctionDecl", + "loc": { + "offset": 12741, + "file": "../include/sls/ToString.h", + "line": 377, + "col": 33, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12709, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12770, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbf080", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "inner": [ + { + "id": "0x558a5152fd10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "decl": { + "id": "0x558a5152fc70", + "kind": "EnumDecl", + "name": "vetoAlgorithm" + } + } + ] + }, + { + "id": "0x558a51bbecf0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12769, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12750, + "col": 42, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12769, + "col": 61, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbf3a0", + "kind": "FunctionDecl", + "loc": { + "offset": 12800, + "file": "../include/sls/ToString.h", + "line": 378, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12773, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12829, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbf610", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::gainMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "inner": [ + { + "id": "0x558a5152fe80", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "decl": { + "id": "0x558a5152fde0", + "kind": "EnumDecl", + "name": "gainMode" + } + } + ] + }, + { + "id": "0x558a51bbf280", + "kind": "ParmVarDecl", + "loc": { + "offset": 12828, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12809, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12828, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbf930", + "kind": "FunctionDecl", + "loc": { + "offset": 12859, + "file": "../include/sls/ToString.h", + "line": 379, + "col": 28, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12832, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12888, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bbfba0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::polarity (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "inner": [ + { + "id": "0x558a51530150", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "decl": { + "id": "0x558a515300b0", + "kind": "EnumDecl", + "name": "polarity" + } + } + ] + }, + { + "id": "0x558a51bbf810", + "kind": "ParmVarDecl", + "loc": { + "offset": 12887, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12868, + "col": 37, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12887, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bbfec0", + "kind": "FunctionDecl", + "loc": { + "offset": 12927, + "file": "../include/sls/ToString.h", + "line": 380, + "col": 37, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12891, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12956, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc0130", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "inner": [ + { + "id": "0x558a515302c0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "decl": { + "id": "0x558a51530220", + "kind": "EnumDecl", + "name": "timingInfoDecoder" + } + } + ] + }, + { + "id": "0x558a51bbfda0", + "kind": "ParmVarDecl", + "loc": { + "offset": 12955, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12936, + "col": 46, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 12955, + "col": 65, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc0450", + "kind": "FunctionDecl", + "loc": { + "offset": 12992, + "file": "../include/sls/ToString.h", + "line": 381, + "col": 34, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 12959, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13021, + "col": 63, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc06c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "inner": [ + { + "id": "0x558a51530430", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "decl": { + "id": "0x558a51530390", + "kind": "EnumDecl", + "name": "collectionMode" + } + } + ] + }, + { + "id": "0x558a51bc0330", + "kind": "ParmVarDecl", + "loc": { + "offset": 13020, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13001, + "col": 43, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13020, + "col": 62, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc0990", + "kind": "FunctionDecl", + "loc": { + "offset": 13052, + "file": "../include/sls/ToString.h", + "line": 382, + "col": 29, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13024, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13081, + "col": 58, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc0bd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToINS_15RegisterAddressEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "RegisterAddress (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "sls::RegisterAddress" + }, + "inner": [ + { + "id": "0x558a515bd700", + "kind": "RecordType", + "type": { + "qualType": "sls::RegisterAddress" + }, + "decl": { + "id": "0x558a515bd670", + "kind": "CXXRecordDecl", + "name": "RegisterAddress" + } + } + ] + }, + { + "id": "0x558a51bc0880", + "kind": "ParmVarDecl", + "loc": { + "offset": 13080, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13061, + "col": 38, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13080, + "col": 57, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc0ea0", + "kind": "FunctionDecl", + "loc": { + "offset": 13110, + "file": "../include/sls/ToString.h", + "line": 383, + "col": 27, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13084, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13139, + "col": 56, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc10e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToINS_13RegisterValueEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "RegisterValue (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "sls::RegisterValue" + }, + "inner": [ + { + "id": "0x558a515c0d60", + "kind": "RecordType", + "type": { + "qualType": "sls::RegisterValue" + }, + "decl": { + "id": "0x558a515c0cd0", + "kind": "CXXRecordDecl", + "name": "RegisterValue" + } + } + ] + }, + { + "id": "0x558a51bc0d90", + "kind": "ParmVarDecl", + "loc": { + "offset": 13138, + "col": 55, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13119, + "col": 36, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13138, + "col": 55, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc13b0", + "kind": "FunctionDecl", + "loc": { + "offset": 13163, + "file": "../include/sls/ToString.h", + "line": 385, + "col": 21, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13143, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13192, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc15f0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint8_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned char" + }, + "inner": [ + { + "id": "0x558a5015ac50", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned char" + } + } + ] + }, + { + "id": "0x558a51bc12a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13191, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13172, + "col": 30, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13191, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc18c0", + "kind": "FunctionDecl", + "loc": { + "offset": 13216, + "file": "../include/sls/ToString.h", + "line": 386, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13195, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13245, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc1b00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint16_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned short" + }, + "inner": [ + { + "id": "0x558a5015ac70", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned short" + } + } + ] + }, + { + "id": "0x558a51bc17b0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13244, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13225, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13244, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc1dd0", + "kind": "FunctionDecl", + "loc": { + "offset": 13269, + "file": "../include/sls/ToString.h", + "line": 387, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13248, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13298, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2010", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint32_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned int" + }, + "inner": [ + { + "id": "0x558a5015ac90", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned int" + } + } + ] + }, + { + "id": "0x558a51bc1cc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13297, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13278, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13297, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc22a0", + "kind": "FunctionDecl", + "loc": { + "offset": 13322, + "file": "../include/sls/ToString.h", + "line": 388, + "col": 22, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13301, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13351, + "col": 51, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc24e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned long" + }, + "inner": [ + { + "id": "0x558a5015acb0", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned long" + } + } + ] + }, + { + "id": "0x558a51bc21d0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13350, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13331, + "col": 31, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13350, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc27b8", + "kind": "FunctionDecl", + "loc": { + "offset": 13370, + "file": "../include/sls/ToString.h", + "line": 389, + "col": 17, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13354, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13399, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2a00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "int" + }, + "inner": [ + { + "id": "0x558a5015abf0", + "kind": "BuiltinType", + "type": { + "qualType": "int" + } + } + ] + }, + { + "id": "0x558a51bc26a0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13398, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13379, + "col": 26, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13398, + "col": 45, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc2c90", + "kind": "FunctionDecl", + "loc": { + "offset": 13419, + "file": "../include/sls/ToString.h", + "line": 390, + "col": 18, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13402, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13448, + "col": 47, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc2ed0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "bool (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "bool" + }, + "inner": [ + { + "id": "0x558a5015ab70", + "kind": "BuiltinType", + "type": { + "qualType": "bool" + } + } + ] + }, + { + "id": "0x558a51bc2bc0", + "kind": "ParmVarDecl", + "loc": { + "offset": 13447, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13428, + "col": 27, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13447, + "col": 46, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc3260", + "kind": "FunctionDecl", + "loc": { + "offset": 13456, + "file": "../include/sls/ToString.h", + "line": 391, + "col": 6, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13451, + "col": 1, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13510, + "col": 60, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isUsed": true, + "name": "StringTo", + "mangledName": "_ZN3sls8StringToERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN15slsDetectorDefs10boolFormatE", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "inner": [ + { + "id": "0x558a51bc3078", + "kind": "ParmVarDecl", + "loc": { + "offset": 13484, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13465, + "col": 15, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13484, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51bc3140", + "kind": "ParmVarDecl", + "loc": { + "offset": 13504, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13487, + "col": 37, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13504, + "col": 54, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + } + ] +}, +{ + "id": "0x558a51bc34a0", + "kind": "FunctionDecl", + "loc": { + "offset": 13533, + "file": "../include/sls/ToString.h", + "line": 392, + "col": 21, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13513, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13562, + "col": 50, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "previousDecl": "0x558a51bc36e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "long" + }, + "inner": [ + { + "id": "0x558a5015ac10", + "kind": "BuiltinType", + "type": { + "qualType": "long" + } + } + ] + }, + { + "id": "0x558a51bc3398", + "kind": "ParmVarDecl", + "loc": { + "offset": 13561, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13542, + "col": 30, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13561, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + ] +}, +{ + "id": "0x558a51bc4698", + "kind": "FunctionTemplateDecl", + "loc": { + "offset": 13799, + "file": "../include/sls/ToString.h", + "line": 402, + "col": 16, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13762, + "line": 401, + "col": 1, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "inner": [ + { + "id": "0x558a51bc4020", + "kind": "TemplateTypeParmDecl", + "loc": { + "offset": 13781, + "line": 401, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13772, + "col": 11, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13781, + "col": 20, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "T", + "tagUsed": "typename", + "depth": 0, + "index": 0 + }, + { + "id": "0x558a51bc45f0", + "kind": "FunctionDecl", + "loc": { + "offset": 13799, + "line": 402, + "col": 16, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13784, + "col": 1, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "name": "StringTo", + "type": { + "qualType": "std::vector (const std::vector &)" + }, + "inner": [ + { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "loc": { + "offset": 13840, + "line": 402, + "col": 57, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13808, + "col": 25, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13840, + "col": 57, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + }, + { + "id": "0x558a51bfdaa0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 13849, + "col": 66, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14009, + "line": 408, + "col": 1, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bc4990", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13855, + "line": 403, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13876, + "col": 26, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "loc": { + "offset": 13870, + "col": 20, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13855, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13870, + "col": 20, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "nrvo": true + } + ] + }, + { + "id": "0x558a51bee930", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13882, + "line": 404, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13911, + "col": 34, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bc49c8", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13889, + "col": 12, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "reserve", + "inner": [ + { + "id": "0x558a51bc49a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13882, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + }, + { + "id": "0x558a51bee408", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13910, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a5135d888" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bee3d8", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13905, + "col": 28, + "tokLen": 4, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "size", + "isArrow": false, + "referencedMemberDecl": "0x558a51be2de0", + "inner": [ + { + "id": "0x558a51bc4a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13897, + "col": 20, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfd868", + "kind": "CXXForRangeStmt", + "range": { + "begin": { + "offset": 13918, + "line": 405, + "col": 5, + "tokLen": 3, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13987, + "line": 406, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + {}, + { + "id": "0x558a51beec68", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13939, + "line": 405, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beea70", + "kind": "VarDecl", + "loc": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__range2", + "type": { + "qualType": "const std::vector &" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bee958", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13939, + "col": 26, + "tokLen": 7, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc44c8", + "kind": "ParmVarDecl", + "name": "strings", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bfa520", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "loc": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51beee50", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51beee20", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "begin", + "isArrow": false, + "referencedMemberDecl": "0x558a51be1e88", + "inner": [ + { + "id": "0x558a51beec80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beea70", + "kind": "VarDecl", + "name": "__range2", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfa538", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51beed58", + "kind": "VarDecl", + "loc": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isImplicit": true, + "isReferenced": true, + "name": "__end2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bfa440", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfa410", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "end", + "isArrow": false, + "referencedMemberDecl": "0x558a51be2118", + "inner": [ + { + "id": "0x558a51beeca0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::vector>", + "qualType": "const std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beea70", + "kind": "VarDecl", + "name": "__range2", + "type": { + "qualType": "const std::vector &" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfd338", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51bfd320", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (*)(const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfcf70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bfb108", + "kind": "FunctionDecl", + "name": "operator!=", + "type": { + "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfcf40", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfa550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + }, + { + "id": "0x558a51bfcf58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfa570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beed58", + "kind": "VarDecl", + "name": "__end2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51bfd4d8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "__normal_iterator *, vector>>" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a51bfd4c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "__normal_iterator *, vector>> &(*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfd390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "__normal_iterator *, vector>> &() noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bf8e60", + "kind": "CXXMethodDecl", + "name": "operator++", + "type": { + "qualType": "__normal_iterator *, vector>> &() noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfd370", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + }, + { + "id": "0x558a51beea38", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 13923, + "col": 10, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13946, + "col": 33, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bee9d0", + "kind": "VarDecl", + "loc": { + "offset": 13935, + "col": 22, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "range": { + "begin": { + "offset": 13923, + "col": 10, + "tokLen": 5, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "isReferenced": true, + "name": "s", + "type": { + "qualType": "std::basic_string const &" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51bfd6a8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const std::basic_string" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a51bfd690", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "reference (*)() const noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51bfd578", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "reference () const noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bf89f8", + "kind": "CXXMethodDecl", + "name": "operator*", + "type": { + "qualType": "reference () const noexcept" + } + } + } + ] + }, + { + "id": "0x558a51bfd560", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "const __gnu_cxx::__normal_iterator *, std::vector>>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51bfd540", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13937, + "col": 24, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51beecd8", + "kind": "VarDecl", + "name": "__begin2", + "type": { + "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", + "qualType": "const_iterator", + "typeAliasDeclId": "0x558a51bdb698" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfda40", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13956, + "line": 406, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13987, + "col": 40, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfd8e8", + "kind": "CXXDependentScopeMemberExpr", + "range": { + "begin": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13963, + "col": 16, + "tokLen": 9, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "isArrow": false, + "member": "push_back", + "inner": [ + { + "id": "0x558a51bfd8c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13956, + "col": 9, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + }, + { + "id": "0x558a51bfda18", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 13973, + "col": 26, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13986, + "col": 39, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51bfd968", + "kind": "UnresolvedLookupExpr", + "range": { + "begin": { + "offset": 13973, + "col": 26, + "tokLen": 8, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13983, + "col": 36, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "lvalue", + "usesADL": true, + "name": "StringTo", + "lookups": [ + { + "id": "0x558a51bc4698", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51b80fb8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb89b8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + }, + { + "id": "0x558a51bb67e8", + "kind": "FunctionTemplateDecl", + "name": "StringTo" + } + ], + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "T" + }, + "inner": [ + { + "id": "0x558a51bc4070", + "kind": "TemplateTypeParmType", + "type": { + "qualType": "T" + }, + "isDependent": true, + "isInstantiationDependent": true, + "depth": 0, + "index": 0, + "decl": { + "id": "0x558a51bc4020", + "kind": "TemplateTypeParmDecl", + "name": "T" + } + } + ] + } + ] + }, + { + "id": "0x558a51bfd9f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 13985, + "col": 38, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 13985, + "col": 38, + "tokLen": 1, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "std::basic_string const" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bee9d0", + "kind": "VarDecl", + "name": "s", + "type": { + "qualType": "std::basic_string const &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51bfda88", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 13994, + "line": 407, + "col": 5, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "inner": [ + { + "id": "0x558a51bfda68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + }, + "end": { + "offset": 14001, + "col": 12, + "tokLen": 6, + "includedFrom": { + "file": "ToString.cpp" + } + } + }, + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc4928", + "kind": "VarDecl", + "name": "result", + "type": { + "desugaredQualType": "vector", + "qualType": "std::vector" + } + } + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f0e4c0", + "kind": "FunctionDecl", + "loc": { + "offset": 23590, + "file": "ToString.cpp", + "line": 774, + "col": 32, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 23559, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 24209, + "line": 794, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bb9aa0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "inner": [ + { + "id": "0x558a5144b720", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "decl": { + "id": "0x558a5144b680", + "kind": "EnumDecl", + "name": "detectorType" + } + } + ] + }, + { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 23618, + "line": 774, + "col": 60, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 23599, + "col": 41, + "tokLen": 5 + }, + "end": { + "offset": 23618, + "col": 60, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f1a2b0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 23621, + "col": 63, + "tokLen": 1 + }, + "end": { + "offset": 24209, + "line": 794, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f0fab0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23627, + "line": 775, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23666, + "line": 776, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f0fa00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23631, + "line": 775, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f0f9e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23633, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23633, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f0f9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23633, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23633, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f0e6a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23631, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23631, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f0f9b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23636, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f0e6c8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23636, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 23636, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"Eiger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f0faa0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23653, + "line": 776, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23666, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f0fa70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23666, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b798", + "kind": "EnumConstantDecl", + "name": "EIGER", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f10ee0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23677, + "line": 777, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23719, + "line": 778, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f10e30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23681, + "line": 777, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f10e18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23683, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23683, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f10df8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23683, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23683, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f0fad0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23681, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23681, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f10de0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23686, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f0faf0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23686, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23686, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"Gotthard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f10ed0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23706, + "line": 778, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23719, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f10ea0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23713, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23719, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b818", + "kind": "EnumConstantDecl", + "name": "GOTTHARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f12310", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23733, + "line": 779, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23775, + "line": 780, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f12260", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23737, + "line": 779, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f12248", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23739, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23739, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f12228", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23739, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23739, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f10f00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23737, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23737, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f12210", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23742, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f10f20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23742, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 23742, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"Jungfrau\"" + } + ] + } + ] + }, + { + "id": "0x558a51f12300", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23762, + "line": 780, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23775, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f122d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23769, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23775, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b870", + "kind": "EnumConstantDecl", + "name": "JUNGFRAU", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f13740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23789, + "line": 781, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23836, + "line": 782, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f13690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23793, + "line": 781, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f13678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f13658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f12330", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23793, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23793, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f13640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23798, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f12350", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23798, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 23798, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"ChipTestBoard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f13730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23823, + "line": 782, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23836, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f13700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23830, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23836, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b8c8", + "kind": "EnumConstantDecl", + "name": "CHIPTESTBOARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f14b70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23855, + "line": 783, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23895, + "line": 784, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f14ac0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23859, + "line": 783, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f14aa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f14a88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f13760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23859, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23859, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f14a70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f13780", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 23864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"Moench\"" + } + ] + } + ] + }, + { + "id": "0x558a51f14b60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23882, + "line": 784, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23895, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f14b30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23889, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23895, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b920", + "kind": "EnumConstantDecl", + "name": "MOENCH", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f15fa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23907, + "line": 785, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 23948, + "line": 786, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f15ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23911, + "line": 785, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f15ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f15eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f14b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23911, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f15ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23916, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f14bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23916, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 23916, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"Mythen3\"" + } + ] + } + ] + }, + { + "id": "0x558a51f15f90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23935, + "line": 786, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 23948, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f15f60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23942, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 23948, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b978", + "kind": "EnumConstantDecl", + "name": "MYTHEN3", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f173d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 23961, + "line": 787, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24004, + "line": 788, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f17320", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 23965, + "line": 787, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f17308", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23967, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23967, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f172e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23967, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 23967, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f15fc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23965, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 23965, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f172d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 23970, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f15fe0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 23970, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 23970, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"Gotthard2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f173c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 23991, + "line": 788, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24004, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f17390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 23998, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24004, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144b9d0", + "kind": "EnumConstantDecl", + "name": "GOTTHARD2", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f18840", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24019, + "line": 789, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24073, + "line": 790, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f18790", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24023, + "line": 789, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f18778", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24025, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24025, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f18758", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24025, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24025, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f173f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24023, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24023, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f18740", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24028, + "col": 14, + "tokLen": 22 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f17410", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24028, + "col": 14, + "tokLen": 22 + }, + "end": { + "offset": 24028, + "col": 14, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Xilinx_ChipTestBoard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f18830", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24060, + "line": 790, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24073, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f18800", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24067, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24073, + "col": 22, + "tokLen": 20 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144ba28", + "kind": "EnumConstantDecl", + "name": "XILINX_CHIPTESTBOARD", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f19c70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24099, + "line": 791, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24143, + "line": 792, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f19bc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24103, + "line": 791, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f19ba8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24105, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24105, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f19b88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24105, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24105, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f18860", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24103, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24103, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f19b70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24108, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f18880", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24108, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24108, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"Matterhorn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f19c60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24130, + "line": 792, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24143, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f19c30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24137, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24143, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bab0", + "kind": "EnumConstantDecl", + "name": "MATTERHORN", + "type": { + "qualType": "slsDetectorDefs::detectorType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1a298", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 24159, + "line": 793, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f1a280", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 24159, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f1a258", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f1a238", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f1a230", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f1a200", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 24165, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 24206, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f1a1e8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f1a1d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f1a1b0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f1a1a8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f1a170", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1a158", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24203, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 24203, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1a138", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24203, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 24203, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f1a120", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24178, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f19ca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24178, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 24178, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown detector type \"" + } + ] + }, + { + "id": "0x558a51f19cd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24205, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 24205, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f0e3e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f1a4a0", + "kind": "FunctionDecl", + "loc": { + "offset": 24247, + "file": "ToString.cpp", + "line": 796, + "col": 36, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 24212, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 25496, + "line": 838, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bba030", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::detectorSettings (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "inner": [ + { + "id": "0x558a5152da90", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "decl": { + "id": "0x558a5152d9e8", + "kind": "EnumDecl", + "name": "detectorSettings" + } + } + ] + }, + { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "loc": { + "offset": 24275, + "line": 796, + "col": 64, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 24256, + "col": 45, + "tokLen": 5 + }, + "end": { + "offset": 24275, + "col": 64, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f34088", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 24278, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 25496, + "line": 838, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f1ba90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24284, + "line": 797, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24326, + "line": 798, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1b9e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24288, + "line": 797, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1b9c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24290, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24290, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1b9a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24290, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24290, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1a688", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24288, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24288, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1b990", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24293, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1a6a8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24293, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24293, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"standard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1ba80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24313, + "line": 798, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24326, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1ba50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24320, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24326, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dab0", + "kind": "EnumConstantDecl", + "name": "STANDARD", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1cec0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24340, + "line": 799, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24378, + "line": 800, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f1ce10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24344, + "line": 799, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1cdf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24346, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24346, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1cdd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24346, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24346, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1bab0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24344, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24344, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1cdc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24349, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1bad0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24349, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 24349, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"fast\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1ceb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24365, + "line": 800, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24378, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f1ce80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24372, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24378, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152db08", + "kind": "EnumConstantDecl", + "name": "FAST", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1e2f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24388, + "line": 801, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24430, + "line": 802, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1e240", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24392, + "line": 801, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1e228", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24394, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24394, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1e208", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24394, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24394, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1cee0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24392, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24392, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1e1f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24397, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1cf00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24397, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24397, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"highgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1e2e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24417, + "line": 802, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24430, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f1e2b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24424, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24430, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152db60", + "kind": "EnumConstantDecl", + "name": "HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f1f720", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24444, + "line": 803, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24489, + "line": 804, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f1f670", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24448, + "line": 803, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f1f658", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f1f638", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1e310", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24448, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24448, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f1f620", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24453, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1e330", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24453, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24453, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"dynamicgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f1f710", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24476, + "line": 804, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24489, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f1f6e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24483, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24489, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dbb8", + "kind": "EnumConstantDecl", + "name": "DYNAMICGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f20b50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24506, + "line": 805, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24547, + "line": 806, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f20aa0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24510, + "line": 805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f20a88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24512, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24512, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f20a68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24512, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24512, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f1f740", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24510, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24510, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f20a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24515, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f1f760", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24515, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 24515, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"lowgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f20b40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24534, + "line": 806, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24547, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f20b10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24541, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24547, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dc10", + "kind": "EnumConstantDecl", + "name": "LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f21f80", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24560, + "line": 807, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24604, + "line": 808, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f21ed0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24564, + "line": 807, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f21eb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24566, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24566, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f21e98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24566, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24566, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f20b70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24564, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24564, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f21e80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24569, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f20b90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24569, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 24569, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"mediumgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f21f70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24591, + "line": 808, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24604, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f21f40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24598, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24604, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dc68", + "kind": "EnumConstantDecl", + "name": "MEDIUMGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f233b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24620, + "line": 809, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24666, + "line": 810, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f23300", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24624, + "line": 809, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f232e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24626, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24626, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f232c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24626, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24626, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f21fa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24624, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24624, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f232b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24629, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f21fc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24629, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 24629, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"veryhighgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f233a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24653, + "line": 810, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24666, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f23370", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24666, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dcc0", + "kind": "EnumConstantDecl", + "name": "VERYHIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f247e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24684, + "line": 811, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24727, + "line": 812, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f24730", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24688, + "line": 811, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f24718", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24690, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24690, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f246f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24690, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24690, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f233d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24688, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24688, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f246e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24693, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f233f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24693, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 24693, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"highgain0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f247d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24714, + "line": 812, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24727, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f247a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24721, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24727, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dd18", + "kind": "EnumConstantDecl", + "name": "HIGHGAIN0", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f25c10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24742, + "line": 813, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24784, + "line": 814, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f25b60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24746, + "line": 813, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f25b48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24748, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24748, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f25b28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24748, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24748, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f24800", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24746, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24746, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f25b10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24751, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f24820", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24751, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24751, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"fixgain1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f25c00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24771, + "line": 814, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24784, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f25bd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24778, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24784, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dd70", + "kind": "EnumConstantDecl", + "name": "FIXGAIN1", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f27070", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24798, + "line": 815, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24840, + "line": 816, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f26fc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24802, + "line": 815, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f26fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24804, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24804, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f26f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24804, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24804, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f25c30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24802, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24802, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f26f70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24807, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f25c50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24807, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 24807, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"fixgain2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f27060", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24827, + "line": 816, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24840, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f27030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24834, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24840, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ddc8", + "kind": "EnumConstantDecl", + "name": "FIXGAIN2", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f284a0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24854, + "line": 817, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24899, + "line": 818, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f283f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24858, + "line": 817, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f283d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24860, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24860, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f283b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24860, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24860, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f27090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24858, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24858, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f283a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24863, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f270b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24863, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 24863, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"verylowgain\"" + } + ] + } + ] + }, + { + "id": "0x558a51f28490", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24886, + "line": 818, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24899, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f28460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24893, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24899, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152de20", + "kind": "EnumConstantDecl", + "name": "VERYLOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f298d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24916, + "line": 819, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 24955, + "line": 820, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f29820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24920, + "line": 819, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f29808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24922, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24922, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f297e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24922, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24922, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f284c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24920, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24920, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f297d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24925, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f284e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24925, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24925, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g1_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f298c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24942, + "line": 820, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 24955, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f29890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24949, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 24955, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152de78", + "kind": "EnumConstantDecl", + "name": "G1_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2ad00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 24972, + "line": 821, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25011, + "line": 822, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f2ac50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 24976, + "line": 821, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2ac38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24978, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24978, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2ac18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24978, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 24978, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f298f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 24976, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 24976, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2ac00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 24981, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f29910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 24981, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 24981, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g1_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2acf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 24998, + "line": 822, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25011, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f2acc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25005, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25011, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ded0", + "kind": "EnumConstantDecl", + "name": "G1_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2c130", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25027, + "line": 823, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25069, + "line": 824, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51f2c080", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25031, + "line": 823, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2c068", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25033, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25033, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2c048", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25033, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25033, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2ad20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25031, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25031, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2c030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25036, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2ad40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25036, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25036, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_hc_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2c120", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25056, + "line": 824, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25069, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51f2c0f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25063, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25069, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152df28", + "kind": "EnumConstantDecl", + "name": "G2_HIGHCAP_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2d560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25094, + "line": 825, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25136, + "line": 826, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2d4b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25098, + "line": 825, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2d498", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25100, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25100, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2d478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25100, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25100, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2c150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25098, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25098, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2d460", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25103, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2c170", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25103, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25103, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_hc_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2d550", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25123, + "line": 826, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25136, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2d520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25130, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25136, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152df80", + "kind": "EnumConstantDecl", + "name": "G2_HIGHCAP_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2e990", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25160, + "line": 827, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25202, + "line": 828, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2e8e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25164, + "line": 827, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2e8c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25166, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25166, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2e8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25166, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25166, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2d580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25164, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25164, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2e890", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25169, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2d5a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25169, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25169, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_lc_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2e980", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25189, + "line": 828, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25202, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f2e950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25196, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25202, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152dfd8", + "kind": "EnumConstantDecl", + "name": "G2_LOWCAP_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f2fdc0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25226, + "line": 829, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25268, + "line": 830, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51f2fd10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25230, + "line": 829, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f2fcf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25232, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25232, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f2fcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25232, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25232, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2e9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25230, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25230, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f2fcc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25235, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2e9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25235, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 25235, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"g2_lc_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f2fdb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25255, + "line": 830, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25268, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51f2fd80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25262, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25268, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e030", + "kind": "EnumConstantDecl", + "name": "G2_LOWCAP_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f311f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25291, + "line": 831, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25330, + "line": 832, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f31140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25295, + "line": 831, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f31128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f31108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f2fde0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25295, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25295, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f310f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25300, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f2fe00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25300, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25300, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g4_hg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f311e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25317, + "line": 832, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25330, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f311b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25324, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25330, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e088", + "kind": "EnumConstantDecl", + "name": "G4_HIGHGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f32620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25347, + "line": 833, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25386, + "line": 834, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f32570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25351, + "line": 833, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f32558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25353, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25353, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f32538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25353, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25353, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f31210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25351, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25351, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f32520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25356, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f31230", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25356, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25356, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"gain0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f32610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25373, + "line": 834, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25386, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f325e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25380, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25386, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e138", + "kind": "EnumConstantDecl", + "name": "GAIN0", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f33a50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25397, + "line": 835, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25436, + "line": 836, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f339a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25401, + "line": 835, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f33988", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25403, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25403, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f33968", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25403, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25403, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f32640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25401, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25401, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f33950", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25406, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f32660", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25406, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 25406, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"g4_lg\"" + } + ] + } + ] + }, + { + "id": "0x558a51f33a40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25423, + "line": 836, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25436, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f33a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25430, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25436, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e0e0", + "kind": "EnumConstantDecl", + "name": "G4_LOWGAIN", + "type": { + "qualType": "slsDetectorDefs::detectorSettings" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f34070", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 25452, + "line": 837, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f34058", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 25452, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f34030", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f34010", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f34008", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f33fd8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 25458, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 25493, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f33fc0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f33fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f33f88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f33f80", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f33f48", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f33f30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25490, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 25490, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f33f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25490, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 25490, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f33ef8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25471, + "col": 24, + "tokLen": 18 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f33a80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25471, + "col": 24, + "tokLen": 18 + }, + "end": { + "offset": 25471, + "col": 24, + "tokLen": 18 + } + }, + "type": { + "qualType": "const char[17]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown setting \"" + } + ] + }, + { + "id": "0x558a51f33aa8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25492, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 25492, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f1a3c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f342d0", + "kind": "FunctionDecl", + "loc": { + "offset": 25528, + "file": "ToString.cpp", + "line": 840, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 25499, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26053, + "line": 858, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bba5c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::speedLevel (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "inner": [ + { + "id": "0x558a5152e840", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "decl": { + "id": "0x558a5152e798", + "kind": "EnumDecl", + "name": "speedLevel" + } + } + ] + }, + { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "loc": { + "offset": 25556, + "line": 840, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 25537, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 25556, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f3ec58", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 25559, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 26053, + "line": 858, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f358d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25565, + "line": 841, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25609, + "line": 842, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f35820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25569, + "line": 841, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f35808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25571, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25571, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f357e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25571, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25571, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f344b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25569, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25569, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f357d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25574, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f344d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25574, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25574, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"full_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f358c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25596, + "line": 842, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25609, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f35890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25603, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25609, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e860", + "kind": "EnumConstantDecl", + "name": "FULL_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f36d00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25625, + "line": 843, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25660, + "line": 844, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f36c50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25629, + "line": 843, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f36c38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25631, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25631, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f36c18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25631, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25631, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f358f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25629, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25629, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f36c00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25634, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f35910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25634, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25634, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f36cf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25647, + "line": 844, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25660, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f36cc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25654, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25660, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e860", + "kind": "EnumConstantDecl", + "name": "FULL_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f38130", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25676, + "line": 845, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25720, + "line": 846, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f38080", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25680, + "line": 845, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f38068", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25682, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25682, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f38048", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25682, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25682, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f36d20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25680, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25680, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f38030", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25685, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f36d40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25685, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 25685, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"half_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f38120", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25707, + "line": 846, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25720, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f380f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25714, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25720, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e8b8", + "kind": "EnumConstantDecl", + "name": "HALF_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f39560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25736, + "line": 847, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25771, + "line": 848, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f394b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25740, + "line": 847, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f39498", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f39478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f38150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25740, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25740, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f39460", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25745, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f38170", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25745, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25745, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f39550", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25758, + "line": 848, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25771, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f39520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25765, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25771, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e8b8", + "kind": "EnumConstantDecl", + "name": "HALF_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3a990", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25787, + "line": 849, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25834, + "line": 850, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3a8e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25791, + "line": 849, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3a8c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25793, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25793, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3a8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25793, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25793, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f39580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25791, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25791, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3a890", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25796, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f395a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25796, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 25796, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"quarter_speed\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3a980", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25821, + "line": 850, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25834, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3a950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25828, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25834, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e910", + "kind": "EnumConstantDecl", + "name": "QUARTER_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3bdc0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25853, + "line": 851, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25888, + "line": 852, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3bd10", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25857, + "line": 851, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3bcf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25859, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25859, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3bcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25859, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25859, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3a9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25857, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25857, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3bcc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25862, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3a9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25862, + "col": 14, + "tokLen": 3 + }, + "end": { + "offset": 25862, + "col": 14, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3bdb0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25875, + "line": 852, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25888, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f3bd80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25882, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25888, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e910", + "kind": "EnumConstantDecl", + "name": "QUARTER_SPEED", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3d1f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25907, + "line": 853, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25944, + "line": 854, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3d140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25911, + "line": 853, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3d128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3d108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25913, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25913, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3bde0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25911, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3d0f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25916, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3be00", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25916, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25916, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"108\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3d1e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25931, + "line": 854, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25944, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3d1b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25938, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25944, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e968", + "kind": "EnumConstantDecl", + "name": "G2_108MHZ", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3e620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 25959, + "line": 855, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 25996, + "line": 856, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3e570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 25963, + "line": 855, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3e558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25965, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25965, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3e538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25965, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 25965, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3d210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25963, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 25963, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f3e520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 25968, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3d230", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 25968, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 25968, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"144\"" + } + ] + } + ] + }, + { + "id": "0x558a51f3e610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 25983, + "line": 856, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 25996, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51f3e5e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 25990, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 25996, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::speedLevel" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e9c0", + "kind": "EnumConstantDecl", + "name": "G2_144MHZ", + "type": { + "qualType": "slsDetectorDefs::speedLevel" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f3ec40", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26011, + "line": 857, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f3ec28", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26011, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f3ec00", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f3ebe0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f3ebd8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f3eba8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26017, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26050, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f3eb90", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f3eb78", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f3eb58", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f3eb50", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f3eb18", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f3eb00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26047, + "col": 41, + "tokLen": 1 + }, + "end": { + "offset": 26047, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f3eae0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26047, + "col": 41, + "tokLen": 1 + }, + "end": { + "offset": 26047, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f3eac8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26030, + "col": 24, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3e650", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26030, + "col": 24, + "tokLen": 16 + }, + "end": { + "offset": 26030, + "col": 24, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown speed \"" + } + ] + }, + { + "id": "0x558a51f3e678", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26049, + "col": 43, + "tokLen": 1 + }, + "end": { + "offset": 26049, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f341f0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f3ee40", + "kind": "FunctionDecl", + "loc": { + "offset": 26085, + "file": "ToString.cpp", + "line": 860, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26056, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26472, + "line": 872, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbab50", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "inner": [ + { + "id": "0x558a5152b060", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "decl": { + "id": "0x558a5152afb8", + "kind": "EnumDecl", + "name": "timingMode" + } + } + ] + }, + { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "loc": { + "offset": 26113, + "line": 860, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26094, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 26113, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f45b30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26116, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 26472, + "line": 872, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f40430", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26122, + "line": 861, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26160, + "line": 862, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f40380", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26126, + "line": 861, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f40368", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26128, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26128, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f40348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26128, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26128, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f3f028", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26126, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26126, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f40330", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26131, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f3f048", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26131, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26131, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"auto\"" + } + ] + } + ] + }, + { + "id": "0x558a51f40420", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26147, + "line": 862, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26160, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f403f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26154, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26160, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b080", + "kind": "EnumConstantDecl", + "name": "AUTO_TIMING", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f41860", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26177, + "line": 863, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26218, + "line": 864, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f417b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26181, + "line": 863, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f41798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26183, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26183, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f41778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26183, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26183, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f40450", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26181, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26181, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f41760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26186, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f40470", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26186, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 26186, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"trigger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f41850", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26205, + "line": 864, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26218, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f41820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26212, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26218, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b0d8", + "kind": "EnumConstantDecl", + "name": "TRIGGER_EXPOSURE", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f42c90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26240, + "line": 865, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26280, + "line": 866, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f42be0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26244, + "line": 865, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f42bc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26246, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26246, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f42ba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26246, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26246, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f41880", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26244, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26244, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f42b90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26249, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f418a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26249, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26249, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"gating\"" + } + ] + } + ] + }, + { + "id": "0x558a51f42c80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26267, + "line": 866, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26280, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f42c50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26274, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26280, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b130", + "kind": "EnumConstantDecl", + "name": "GATED", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f440c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26291, + "line": 867, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26338, + "line": 868, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f44010", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26295, + "line": 867, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f43ff8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f43fd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26297, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26297, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f42cb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26295, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26295, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f43fc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26300, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f42cd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26300, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 26300, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"burst_trigger\"" + } + ] + } + ] + }, + { + "id": "0x558a51f440b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26325, + "line": 868, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26338, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f44080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26332, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26338, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b188", + "kind": "EnumConstantDecl", + "name": "BURST_TRIGGER", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f454f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26357, + "line": 869, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26405, + "line": 870, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f45440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26361, + "line": 869, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f45428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26363, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26363, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f45408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26363, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26363, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f440e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26361, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26361, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f453f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26366, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f44100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26366, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26366, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_gating\"" + } + ] + } + ] + }, + { + "id": "0x558a51f454e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26392, + "line": 870, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26405, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f454b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26399, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26405, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b1e0", + "kind": "EnumConstantDecl", + "name": "TRIGGER_GATED", + "type": { + "qualType": "slsDetectorDefs::timingMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f45b18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26424, + "line": 871, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f45b00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26424, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f45ad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f45ab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f45ab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f45a80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26430, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26469, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f45a68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f45a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f45a30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f45a28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f459f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f459d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26466, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 26466, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f459b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26466, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 26466, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f459a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26443, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f45520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26443, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 26443, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown timing mode \"" + } + ] + }, + { + "id": "0x558a51f45550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26468, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 26468, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f3ed60", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f45d00", + "kind": "FunctionDecl", + "loc": { + "offset": 26512, + "file": "ToString.cpp", + "line": 874, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26475, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 26813, + "line": 882, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbb0e0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::frameDiscardPolicy (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "inner": [ + { + "id": "0x558a51529090", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "decl": { + "id": "0x558a51528fe8", + "kind": "EnumDecl", + "name": "frameDiscardPolicy" + } + } + ] + }, + { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "loc": { + "offset": 26540, + "line": 874, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26521, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 26540, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f4a200", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26543, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 26813, + "line": 882, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f47320", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26549, + "line": 875, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26592, + "line": 876, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f47270", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26553, + "line": 875, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f47258", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26555, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26555, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f47238", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26555, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26555, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f45ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26553, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26553, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f47220", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26558, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f45f08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26558, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 26558, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"nodiscard\"" + } + ] + } + ] + }, + { + "id": "0x558a51f47310", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26579, + "line": 876, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26592, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f472e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26586, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26592, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515290b0", + "kind": "EnumConstantDecl", + "name": "NO_DISCARD", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f48750", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26608, + "line": 877, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26654, + "line": 878, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f486a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26612, + "line": 877, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f48688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26614, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26614, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f48668", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26614, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26614, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f47340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26612, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26612, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f48650", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26617, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f47360", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26617, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 26617, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"discardempty\"" + } + ] + } + ] + }, + { + "id": "0x558a51f48740", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26641, + "line": 878, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26654, + "col": 22, + "tokLen": 20 + } + }, + "inner": [ + { + "id": "0x558a51f48710", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26648, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26654, + "col": 22, + "tokLen": 20 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529108", + "kind": "EnumConstantDecl", + "name": "DISCARD_EMPTY_FRAMES", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f49b80", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26680, + "line": 879, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26728, + "line": 880, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f49ad0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26684, + "line": 879, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f49ab8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26686, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26686, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f49a98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26686, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26686, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f48770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26684, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26684, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f49a80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26689, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f48790", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26689, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 26689, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"discardpartial\"" + } + ] + } + ] + }, + { + "id": "0x558a51f49b70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26715, + "line": 880, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26728, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f49b40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26722, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26728, + "col": 22, + "tokLen": 22 + } + }, + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529160", + "kind": "EnumConstantDecl", + "name": "DISCARD_PARTIAL_FRAMES", + "type": { + "qualType": "slsDetectorDefs::frameDiscardPolicy" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4a1e8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26756, + "line": 881, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f4a1d0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26756, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f4a1a8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f4a188", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4a180", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4a150", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26762, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 26810, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f4a138", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f4a120", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f4a100", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4a0f8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4a0c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4a0a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26807, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 26807, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4a088", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26807, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 26807, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f4a070", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26775, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f49bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26775, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 26775, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char[30]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown frame discard policy \"" + } + ] + }, + { + "id": "0x558a51f49be8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26809, + "col": 58, + "tokLen": 1 + }, + "end": { + "offset": 26809, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f45c20", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f4a3c0", + "kind": "FunctionDecl", + "loc": { + "offset": 26845, + "file": "ToString.cpp", + "line": 884, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 26816, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27030, + "line": 890, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbb670", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::fileFormat (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "inner": [ + { + "id": "0x558a515292b0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "decl": { + "id": "0x558a51529210", + "kind": "EnumDecl", + "name": "fileFormat" + } + } + ] + }, + { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 26873, + "line": 884, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 26854, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 26873, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f4d420", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 26876, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 27030, + "line": 890, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f4b9b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26882, + "line": 885, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26920, + "line": 886, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f4b900", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26886, + "line": 885, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4b8e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26888, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26888, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4b8c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26888, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26888, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4a5a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26886, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26886, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4b8b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26891, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4a5c8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26891, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 26891, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hdf5\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4b9a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26907, + "line": 886, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26920, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f4b970", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26914, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26920, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51529328", + "kind": "EnumConstantDecl", + "name": "HDF5", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4cde0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 26930, + "line": 887, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 26970, + "line": 888, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f4cd30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 26934, + "line": 887, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4cd18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26936, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26936, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ccf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26936, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 26936, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4b9d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26934, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 26934, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4cce0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 26939, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4b9f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 26939, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 26939, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"binary\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4cdd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 26957, + "line": 888, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 26970, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f4cda0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 26964, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 26970, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::fileFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515292d0", + "kind": "EnumConstantDecl", + "name": "BINARY", + "type": { + "qualType": "slsDetectorDefs::fileFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f4d408", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 26982, + "line": 889, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f4d3f0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 26982, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f4d3c8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f4d3a8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4d3a0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4d370", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 26988, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27027, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f4d358", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f4d340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f4d320", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f4d318", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f4d2e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4d2c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27024, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 27024, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4d2a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27024, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 27024, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f4d290", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27001, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ce10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27001, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 27001, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown file format \"" + } + ] + }, + { + "id": "0x558a51f4ce40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27026, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 27026, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4a2e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f4d5d0", + "kind": "FunctionDecl", + "loc": { + "offset": 27070, + "file": "ToString.cpp", + "line": 892, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27033, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27464, + "line": 902, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbbc00", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::externalSignalFlag (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "inner": [ + { + "id": "0x558a5152ae10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "decl": { + "id": "0x558a5152ad68", + "kind": "EnumDecl", + "name": "externalSignalFlag" + } + } + ] + }, + { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "loc": { + "offset": 27098, + "line": 892, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27079, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 27098, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f52eb8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27101, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 27464, + "line": 902, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f4ebd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27107, + "line": 893, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27163, + "line": 894, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f4eb20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27111, + "line": 893, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4eb08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27113, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27113, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4eae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27113, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27113, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4d7b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27111, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27111, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4ead0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27116, + "col": 14, + "tokLen": 24 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4d7d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27116, + "col": 14, + "tokLen": 24 + }, + "end": { + "offset": 27116, + "col": 14, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_in_rising_edge\"" + } + ] + } + ] + }, + { + "id": "0x558a51f4ebc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27150, + "line": 894, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27163, + "col": 22, + "tokLen": 22 + } + }, + "inner": [ + { + "id": "0x558a51f4eb90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27157, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27163, + "col": 22, + "tokLen": 22 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ae30", + "kind": "EnumConstantDecl", + "name": "TRIGGER_IN_RISING_EDGE", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f50010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27191, + "line": 895, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27248, + "line": 896, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f4ff60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27195, + "line": 895, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f4ff48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27197, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27197, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ff28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27197, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27197, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f4ebf0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27195, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27195, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f4ff10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27200, + "col": 14, + "tokLen": 25 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f4ec10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27200, + "col": 14, + "tokLen": 25 + }, + "end": { + "offset": 27200, + "col": 14, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"trigger_in_falling_edge\"" + } + ] + } + ] + }, + { + "id": "0x558a51f50000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27235, + "line": 896, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27248, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f4ffd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27242, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27248, + "col": 22, + "tokLen": 23 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ae88", + "kind": "EnumConstantDecl", + "name": "TRIGGER_IN_FALLING_EDGE", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f51440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27277, + "line": 897, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27323, + "line": 898, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f51390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27281, + "line": 897, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f51378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27283, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27283, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f51358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27283, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27283, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f50030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27281, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27281, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f51340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27286, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f50050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27286, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 27286, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"inversion_on\"" + } + ] + } + ] + }, + { + "id": "0x558a51f51430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27310, + "line": 898, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27323, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f51400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27323, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152aee0", + "kind": "EnumConstantDecl", + "name": "INVERSION_ON", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f52870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27341, + "line": 899, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27388, + "line": 900, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f527c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27345, + "line": 899, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f527a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f52788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f51460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27345, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27345, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f52770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27350, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f51480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27350, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 27350, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"inversion_off\"" + } + ] + } + ] + }, + { + "id": "0x558a51f52860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27375, + "line": 900, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27388, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51f52830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27382, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27388, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152af38", + "kind": "EnumConstantDecl", + "name": "INVERSION_OFF", + "type": { + "qualType": "slsDetectorDefs::externalSignalFlag" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f52ea0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 27407, + "line": 901, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f52e88", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 27407, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f52e60", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f52e40", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f52e38", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f52e08", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 27413, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27461, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f52df0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f52dd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f52db8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f52db0", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f52d78", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f52d60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27458, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 27458, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f52d40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27458, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 27458, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f52d28", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27426, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f528a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27426, + "col": 24, + "tokLen": 31 + }, + "end": { + "offset": 27426, + "col": 24, + "tokLen": 31 + } + }, + "type": { + "qualType": "const char[30]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown external signal flag \"" + } + ] + }, + { + "id": "0x558a51f528d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27460, + "col": 58, + "tokLen": 1 + }, + "end": { + "offset": 27460, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f4d4f8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f53080", + "kind": "FunctionDecl", + "loc": { + "offset": 27497, + "file": "ToString.cpp", + "line": 904, + "col": 31, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27467, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 27920, + "line": 916, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbc190", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::readoutMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "inner": [ + { + "id": "0x558a5152e590", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "decl": { + "id": "0x558a5152e4e8", + "kind": "EnumDecl", + "name": "readoutMode" + } + } + ] + }, + { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "loc": { + "offset": 27525, + "line": 904, + "col": 59, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27506, + "col": 40, + "tokLen": 5 + }, + "end": { + "offset": 27525, + "col": 59, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51f59db0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27528, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 27920, + "line": 916, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f54670", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27534, + "line": 905, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27574, + "line": 906, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f545c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27538, + "line": 905, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f545a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27540, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27540, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f54588", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27540, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27540, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f53268", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27538, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27538, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f54570", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27543, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f53288", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27543, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 27543, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"analog\"" + } + ] + } + ] + }, + { + "id": "0x558a51f54660", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27561, + "line": 906, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27574, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51f54630", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27568, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27574, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e5b0", + "kind": "EnumConstantDecl", + "name": "ANALOG_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f55aa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27591, + "line": 907, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27632, + "line": 908, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f559f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27595, + "line": 907, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f559d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27597, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27597, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f559b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27597, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27597, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f54690", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27595, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27595, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f559a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27600, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f546b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27600, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 27600, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"digital\"" + } + ] + } + ] + }, + { + "id": "0x558a51f55a90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27619, + "line": 908, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27632, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51f55a60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27626, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27632, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e608", + "kind": "EnumConstantDecl", + "name": "DIGITAL_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f56ed0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27650, + "line": 909, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27698, + "line": 910, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f56e20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27654, + "line": 909, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f56e08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27656, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27656, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f56de8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27656, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27656, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f55ac0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27654, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27654, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f56dd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27659, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f55ae0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27659, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 27659, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"analog_digital\"" + } + ] + } + ] + }, + { + "id": "0x558a51f56ec0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27685, + "line": 910, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27698, + "col": 22, + "tokLen": 18 + } + }, + "inner": [ + { + "id": "0x558a51f56e90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27692, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27698, + "col": 22, + "tokLen": 18 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e660", + "kind": "EnumConstantDecl", + "name": "ANALOG_AND_DIGITAL", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f58300", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27722, + "line": 911, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27767, + "line": 912, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f58250", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27726, + "line": 911, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f58238", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27728, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27728, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f58218", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27728, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27728, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f56ef0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27726, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27726, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f58200", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27731, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f56f10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27731, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 27731, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"transceiver\"" + } + ] + } + ] + }, + { + "id": "0x558a51f582f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27754, + "line": 912, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27767, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51f582c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27761, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27767, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e6b8", + "kind": "EnumConstantDecl", + "name": "TRANSCEIVER_ONLY", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f59740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27789, + "line": 913, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 27842, + "line": 914, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f59690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27793, + "line": 913, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f59678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f59658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27795, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27795, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f58320", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27793, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27793, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f59640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27798, + "col": 14, + "tokLen": 21 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f58340", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27798, + "col": 14, + "tokLen": 21 + }, + "end": { + "offset": 27798, + "col": 14, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char[20]" + }, + "valueCategory": "lvalue", + "value": "\"digital_transceiver\"" + } + ] + } + ] + }, + { + "id": "0x558a51f59730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 27829, + "line": 914, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 27842, + "col": 22, + "tokLen": 23 + } + }, + "inner": [ + { + "id": "0x558a51f59700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27836, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 27842, + "col": 22, + "tokLen": 23 + } + }, + "type": { + "qualType": "slsDetectorDefs::readoutMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152e710", + "kind": "EnumConstantDecl", + "name": "DIGITAL_AND_TRANSCEIVER", + "type": { + "qualType": "slsDetectorDefs::readoutMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f59d98", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 27871, + "line": 915, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51f59d80", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 27871, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51f59d58", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51f59d38", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f59d30", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f59d00", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 27877, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 27917, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51f59ce8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51f59cd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51f59cb0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51f59ca8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51f59c70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f59c58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27914, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 27914, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f59c38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27914, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 27914, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51f59c20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27890, + "col": 24, + "tokLen": 23 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f59770", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27890, + "col": 24, + "tokLen": 23 + }, + "end": { + "offset": 27890, + "col": 24, + "tokLen": 23 + } + }, + "type": { + "qualType": "const char[22]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown readout mode \"" + } + ] + }, + { + "id": "0x558a51f597a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27916, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 27916, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f52fa0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51f59f80", + "kind": "FunctionDecl", + "loc": { + "offset": 27950, + "file": "ToString.cpp", + "line": 918, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 27923, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33113, + "line": 1096, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbc720", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::dacIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "inner": [ + { + "id": "0x558a5152b360", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "decl": { + "id": "0x558a5152b2b8", + "kind": "EnumDecl", + "name": "dacIndex" + } + } + ] + }, + { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "loc": { + "offset": 27978, + "line": 918, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 27959, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 27978, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fdfb00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 27981, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 33113, + "line": 1096, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51f5c920", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 27987, + "line": 919, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28038, + "line": 920, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5c888", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 27991, + "line": 919, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f5b4c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 27991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5b4a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5b488", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 27993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5a168", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 27991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 27991, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5b470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 27996, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5a188", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 27996, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 27996, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 0\"" + } + ] + } + ] + }, + { + "id": "0x558a51f5c850", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28007, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5c838", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28009, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28009, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5c818", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28009, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28009, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5b4f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28007, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28007, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5c800", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28012, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5b518", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28012, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28012, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"0\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f5c910", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28025, + "line": 920, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28038, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5c8e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28032, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28038, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b380", + "kind": "EnumConstantDecl", + "name": "DAC_0", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f5f100", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28049, + "line": 921, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28100, + "line": 922, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5f068", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28053, + "line": 921, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f5dca0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5dc88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28055, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28055, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5dc68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28055, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28055, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5c940", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28053, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5dc50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28058, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5c960", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28058, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28058, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 1\"" + } + ] + } + ] + }, + { + "id": "0x558a51f5f030", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28069, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f5f018", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28071, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28071, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f5eff8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28071, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28071, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5dcd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28069, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28069, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f5efe0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28074, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5dcf8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28074, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28074, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"1\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f5f0f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28087, + "line": 922, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28100, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f5f0c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28094, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28100, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b3d8", + "kind": "EnumConstantDecl", + "name": "DAC_1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f618e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28111, + "line": 923, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28162, + "line": 924, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f61848", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28115, + "line": 923, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f60480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f60468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28117, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28117, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f60448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28117, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28117, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f5f120", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28115, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f60430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28120, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f5f140", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28120, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28120, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 2\"" + } + ] + } + ] + }, + { + "id": "0x558a51f61810", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28131, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f617f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28133, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28133, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f617d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28133, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28133, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f604b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28131, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28131, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f617c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28136, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f604d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28136, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28136, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"2\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f618d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28149, + "line": 924, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28162, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f618a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28156, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28162, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b430", + "kind": "EnumConstantDecl", + "name": "DAC_2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f640c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28173, + "line": 925, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28224, + "line": 926, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f64028", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28177, + "line": 925, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f62c60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f62c48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f62c28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f61900", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28177, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f62c10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28182, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f61920", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28182, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28182, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 3\"" + } + ] + } + ] + }, + { + "id": "0x558a51f63ff0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28193, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f63fd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28195, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28195, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f63fb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28195, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28195, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f62c98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28193, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28193, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f63fa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28198, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f62cb8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28198, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28198, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"3\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f640b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28211, + "line": 926, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28224, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f64080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28218, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28224, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b488", + "kind": "EnumConstantDecl", + "name": "DAC_3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f668b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28235, + "line": 927, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28286, + "line": 928, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f66818", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28239, + "line": 927, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f65440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28239, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f65428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28241, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28241, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f65408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28241, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28241, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f640e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28239, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28239, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f653f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28244, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f64100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28244, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28244, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 4\"" + } + ] + } + ] + }, + { + "id": "0x558a51f667e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28255, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f667c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28257, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28257, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f667a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28257, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28257, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f65478", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28255, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28255, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f66790", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28260, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f65498", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28260, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28260, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"4\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f668a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28273, + "line": 928, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28286, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f66870", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28280, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28286, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b4e0", + "kind": "EnumConstantDecl", + "name": "DAC_4", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f69090", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28297, + "line": 929, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28348, + "line": 930, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f68ff8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28301, + "line": 929, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f67c30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28301, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f67c18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28303, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28303, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f67bf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28303, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28303, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f668d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28301, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28301, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f67be0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28306, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f668f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28306, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28306, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 5\"" + } + ] + } + ] + }, + { + "id": "0x558a51f68fc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28317, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f68fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28319, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28319, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f68f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28319, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28319, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f67c68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28317, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28317, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f68f70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28322, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f67c88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28322, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28322, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"5\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f69080", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28335, + "line": 930, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28348, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f69050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28342, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28348, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b538", + "kind": "EnumConstantDecl", + "name": "DAC_5", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f6b870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28359, + "line": 931, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28410, + "line": 932, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6b7d8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28363, + "line": 931, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6a410", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28363, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6a3f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28365, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28365, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6a3d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28365, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28365, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f690b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28363, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28363, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6a3c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28368, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f690d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28368, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28368, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 6\"" + } + ] + } + ] + }, + { + "id": "0x558a51f6b7a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28379, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6b788", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28381, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28381, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6b768", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28381, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28381, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6a448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28379, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28379, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6b750", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28384, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6a468", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28384, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28384, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"6\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f6b860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28397, + "line": 932, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28410, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6b830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28404, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28410, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b590", + "kind": "EnumConstantDecl", + "name": "DAC_6", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f6e050", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28421, + "line": 933, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28472, + "line": 934, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6dfb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28425, + "line": 933, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6cbf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28425, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6cbd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28427, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28427, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6cbb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28427, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28427, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6b890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28425, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28425, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6cba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28430, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6b8b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28430, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28430, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 7\"" + } + ] + } + ] + }, + { + "id": "0x558a51f6df80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28441, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6df68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28443, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28443, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6df48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28443, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28443, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6cc28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28441, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28441, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6df30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28446, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6cc48", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28446, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28446, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"7\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f6e040", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28459, + "line": 934, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28472, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f6e010", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28466, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28472, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b5e8", + "kind": "EnumConstantDecl", + "name": "DAC_7", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f70830", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28483, + "line": 935, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28534, + "line": 936, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f70798", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28487, + "line": 935, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f6f3d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28487, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f6f3b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28489, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28489, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f6f398", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28489, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28489, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6e070", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28487, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28487, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f6f380", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28492, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6e090", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28492, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28492, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 8\"" + } + ] + } + ] + }, + { + "id": "0x558a51f70760", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28503, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f70748", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28505, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28505, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f70728", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28505, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28505, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f6f408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28503, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28503, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f70710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28508, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f6f428", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28508, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28508, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"8\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f70820", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28521, + "line": 936, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28534, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f707f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28528, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28534, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b640", + "kind": "EnumConstantDecl", + "name": "DAC_8", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f73010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28545, + "line": 937, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28596, + "line": 938, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f72f78", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28549, + "line": 937, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f71bb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f71b98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f71b78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f70850", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f71b60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28554, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f70870", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28554, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 28554, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"dac 9\"" + } + ] + } + ] + }, + { + "id": "0x558a51f72f40", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28565, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f72f28", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28567, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28567, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f72f08", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28567, + "col": 27, + "tokLen": 2 + }, + "end": { + "offset": 28567, + "col": 27, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f71be8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28565, + "col": 25, + "tokLen": 1 + }, + "end": { + "offset": 28565, + "col": 25, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f72ef0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28570, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f71c08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28570, + "col": 30, + "tokLen": 3 + }, + "end": { + "offset": 28570, + "col": 30, + "tokLen": 3 + } + }, + "type": { + "qualType": "const char[2]" + }, + "valueCategory": "lvalue", + "value": "\"9\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f73000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28583, + "line": 938, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28596, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f72fd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28590, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28596, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b698", + "kind": "EnumConstantDecl", + "name": "DAC_9", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f757f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28607, + "line": 939, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28660, + "line": 940, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f75758", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28611, + "line": 939, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f74390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28611, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f74378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28613, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28613, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f74358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28613, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28613, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f73030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28611, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28611, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f74340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28616, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f73050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28616, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28616, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 10\"" + } + ] + } + ] + }, + { + "id": "0x558a51f75720", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28628, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f75708", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28630, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28630, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f756e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28630, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28630, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f743c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28628, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28628, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f756d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28633, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f743e8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28633, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28633, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"10\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f757e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28647, + "line": 940, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28660, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f757b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28654, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28660, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b6f0", + "kind": "EnumConstantDecl", + "name": "DAC_10", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f77fd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28672, + "line": 941, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28725, + "line": 942, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f77f38", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28676, + "line": 941, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f76b70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28676, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f76b58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28678, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28678, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f76b38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28678, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28678, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f75810", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28676, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28676, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f76b20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28681, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f75830", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28681, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28681, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 11\"" + } + ] + } + ] + }, + { + "id": "0x558a51f77f00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28693, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f77ee8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28695, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28695, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f77ec8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28695, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28695, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f76ba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28693, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28693, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f77eb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28698, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f76bc8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28698, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28698, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"11\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f77fc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28712, + "line": 942, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28725, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f77f90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28719, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28725, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b748", + "kind": "EnumConstantDecl", + "name": "DAC_11", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7a7b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28737, + "line": 943, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28790, + "line": 944, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7a718", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28741, + "line": 943, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f79350", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28741, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f79338", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28743, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28743, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f79318", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28743, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28743, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f77ff0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28741, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28741, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f79300", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28746, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f78010", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28746, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28746, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 12\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7a6e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28758, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7a6c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28760, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28760, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7a6a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28760, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28760, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f79388", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28758, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28758, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7a690", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28763, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f793a8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28763, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28763, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"12\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7a7a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28777, + "line": 944, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28790, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7a770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28784, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28790, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b7a0", + "kind": "EnumConstantDecl", + "name": "DAC_12", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7cf90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28802, + "line": 945, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28855, + "line": 946, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7cef8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28806, + "line": 945, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f7bb30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28806, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7bb18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28808, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28808, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7baf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28808, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28808, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7a7d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28806, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28806, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7bae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28811, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7a7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28811, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28811, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 13\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7cec0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28823, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7cea8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28825, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28825, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7ce88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28825, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28825, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7bb68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28823, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28823, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7ce70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28828, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7bb88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28828, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28828, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"13\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7cf80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28842, + "line": 946, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28855, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7cf50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28849, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28855, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b7f8", + "kind": "EnumConstantDecl", + "name": "DAC_13", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f7f770", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28867, + "line": 947, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28920, + "line": 948, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7f6d8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28871, + "line": 947, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f7e310", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28871, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7e2f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28873, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28873, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7e2d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28873, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28873, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7cfb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28871, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28871, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7e2c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28876, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7cfd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28876, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28876, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 14\"" + } + ] + } + ] + }, + { + "id": "0x558a51f7f6a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28888, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f7f688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28890, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28890, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f7f668", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28890, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28890, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7e348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28888, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28888, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f7f650", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28893, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7e368", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28893, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28893, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"14\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f7f760", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28907, + "line": 948, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28920, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f7f730", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28914, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28920, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b850", + "kind": "EnumConstantDecl", + "name": "DAC_14", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f81f50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28932, + "line": 949, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 28985, + "line": 950, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f81eb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 28936, + "line": 949, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f80af0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28936, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f80ad8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28938, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28938, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f80ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28938, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 28938, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f7f790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28936, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 28936, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f80aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28941, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f7f7b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28941, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 28941, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 15\"" + } + ] + } + ] + }, + { + "id": "0x558a51f81e80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 28953, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f81e68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28955, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28955, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f81e48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28955, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 28955, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f80b28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28953, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 28953, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f81e30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 28958, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f80b48", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 28958, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 28958, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"15\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f81f40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 28972, + "line": 950, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 28985, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f81f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 28979, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 28985, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b8a8", + "kind": "EnumConstantDecl", + "name": "DAC_15", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f84730", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 28997, + "line": 951, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29050, + "line": 952, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f84698", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 29001, + "line": 951, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f832d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f832b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29003, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29003, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f83298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29003, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29003, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f81f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29001, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f83280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29006, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f81f90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29006, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29006, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 16\"" + } + ] + } + ] + }, + { + "id": "0x558a51f84660", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29018, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f84648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29020, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29020, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f84628", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29020, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29020, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f83308", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29018, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29018, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f84610", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29023, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f83328", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29023, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29023, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"16\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f84720", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29037, + "line": 952, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29050, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f846f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29044, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29050, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b900", + "kind": "EnumConstantDecl", + "name": "DAC_16", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f86f50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29062, + "line": 953, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29115, + "line": 954, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f86eb8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 29066, + "line": 953, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a51f85ab0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29066, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f85a98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29068, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29068, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f85a78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29068, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29068, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f84750", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29066, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29066, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f85a60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29071, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f84770", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29071, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29071, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"dac 17\"" + } + ] + } + ] + }, + { + "id": "0x558a51f86e80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29083, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f86e68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29085, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29085, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f86e48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29085, + "col": 28, + "tokLen": 2 + }, + "end": { + "offset": 29085, + "col": 28, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f85ae8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29083, + "col": 26, + "tokLen": 1 + }, + "end": { + "offset": 29083, + "col": 26, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f86e30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29088, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f85b08", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29088, + "col": 31, + "tokLen": 4 + }, + "end": { + "offset": 29088, + "col": 31, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"17\"" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51f86f40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29102, + "line": 954, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29115, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f86f10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29109, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29115, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b958", + "kind": "EnumConstantDecl", + "name": "DAC_17", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f88380", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29127, + "line": 955, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29165, + "line": 956, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f882d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29131, + "line": 955, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f882b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29133, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29133, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f88298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29133, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29133, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f86f70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29131, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29131, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f88280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29136, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f86f90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29136, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29136, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vsvp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f88370", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29152, + "line": 956, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29165, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f88340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29159, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29165, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152b9b0", + "kind": "EnumConstantDecl", + "name": "VSVP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f897b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29175, + "line": 957, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29214, + "line": 958, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f89700", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29179, + "line": 957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f896e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29181, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29181, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f896c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29181, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29181, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f883a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29179, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29179, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f896b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29184, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f883c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29184, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 29184, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vtrim\"" + } + ] + } + ] + }, + { + "id": "0x558a51f897a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29201, + "line": 958, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29214, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51f89770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29208, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29214, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ba08", + "kind": "EnumConstantDecl", + "name": "VTRIM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8abe0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29225, + "line": 959, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29267, + "line": 960, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8ab30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29229, + "line": 959, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8ab18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29231, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29231, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8aaf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29231, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29231, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f897d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29229, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29229, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8aae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29234, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f897f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29234, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29234, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vrpreamp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8abd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29254, + "line": 960, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29267, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8aba0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29261, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29267, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ba60", + "kind": "EnumConstantDecl", + "name": "VRPREAMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8c010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29281, + "line": 961, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29323, + "line": 962, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8bf60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29285, + "line": 961, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8bf48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29287, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29287, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8bf28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29287, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29287, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8ac00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29285, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29285, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8bf10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29290, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8ac20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29290, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29290, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vrshaper\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8c000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29310, + "line": 962, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29323, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f8bfd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29323, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bab8", + "kind": "EnumConstantDecl", + "name": "VRSHAPER", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8d440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29337, + "line": 963, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29375, + "line": 964, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f8d390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29341, + "line": 963, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8d378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29343, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29343, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8d358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29343, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29343, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8c030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29341, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29341, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8d340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29346, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8c050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29346, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29346, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vsvn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8d430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29362, + "line": 964, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29375, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f8d400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29369, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29375, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bb10", + "kind": "EnumConstantDecl", + "name": "VSVN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8e870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29385, + "line": 965, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29425, + "line": 966, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f8e7c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29389, + "line": 965, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8e7a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29391, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29391, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8e788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29391, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29391, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8d460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29389, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29389, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8e770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29394, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8d480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29394, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29394, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vtgstv\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8e860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29412, + "line": 966, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29425, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f8e830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29419, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29425, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bb68", + "kind": "EnumConstantDecl", + "name": "VTGSTV", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f8fca0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29437, + "line": 967, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29478, + "line": 968, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f8fbf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29441, + "line": 967, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f8fbd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29443, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29443, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f8fbb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29443, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29443, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8e890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29441, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29441, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f8fba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29446, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8e8b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29446, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29446, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_ll\"" + } + ] + } + ] + }, + { + "id": "0x558a51f8fc90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29465, + "line": 968, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29478, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f8fc60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29472, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29478, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bbc0", + "kind": "EnumConstantDecl", + "name": "VCMP_LL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f910d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29491, + "line": 969, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29532, + "line": 970, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f91020", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29495, + "line": 969, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f91008", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29497, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29497, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f90fe8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29497, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29497, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f8fcc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29495, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29495, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f90fd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29500, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f8fce0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29500, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29500, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_lr\"" + } + ] + } + ] + }, + { + "id": "0x558a51f910c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29519, + "line": 970, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29532, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f91090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29526, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29532, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bc18", + "kind": "EnumConstantDecl", + "name": "VCMP_LR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f92500", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29545, + "line": 971, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29583, + "line": 972, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f92450", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29549, + "line": 971, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f92438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f92418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f910f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f92400", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f91110", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 29554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vcal\"" + } + ] + } + ] + }, + { + "id": "0x558a51f924f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29570, + "line": 972, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29583, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51f924c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29577, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29583, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bc70", + "kind": "EnumConstantDecl", + "name": "VCAL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f93930", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29593, + "line": 973, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29634, + "line": 974, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f93880", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29597, + "line": 973, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f93868", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f93848", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f92520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29597, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29597, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f93830", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29602, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f92540", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29602, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29602, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_rl\"" + } + ] + } + ] + }, + { + "id": "0x558a51f93920", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29621, + "line": 974, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29634, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f938f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29628, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29634, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bcc8", + "kind": "EnumConstantDecl", + "name": "VCMP_RL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f94d60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29647, + "line": 975, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29687, + "line": 976, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f94cb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29651, + "line": 975, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f94c98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29653, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29653, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f94c78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29653, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29653, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f93950", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29651, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29651, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f94c60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29656, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f93970", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29656, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29656, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"rxb_rb\"" + } + ] + } + ] + }, + { + "id": "0x558a51f94d50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29674, + "line": 976, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29687, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f94d20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29681, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29687, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bd20", + "kind": "EnumConstantDecl", + "name": "RXB_RB", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f96190", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29699, + "line": 977, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29739, + "line": 978, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f960e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29703, + "line": 977, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f960c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29705, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29705, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f960a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29705, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29705, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f94d80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29703, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29703, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f96090", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29708, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f94da0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29708, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 29708, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"rxb_lb\"" + } + ] + } + ] + }, + { + "id": "0x558a51f96180", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29726, + "line": 978, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29739, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51f96150", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29733, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29739, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bd78", + "kind": "EnumConstantDecl", + "name": "RXB_LB", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f975c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29751, + "line": 979, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29792, + "line": 980, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f97510", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29755, + "line": 979, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f974f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29757, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29757, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f974d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29757, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29757, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f961b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29755, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29755, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f974c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29760, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f961d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29760, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 29760, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vcmp_rr\"" + } + ] + } + ] + }, + { + "id": "0x558a51f975b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29779, + "line": 980, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29792, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f97580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29786, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29792, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bdd0", + "kind": "EnumConstantDecl", + "name": "VCMP_RR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f989f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29805, + "line": 981, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29842, + "line": 982, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f98940", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29809, + "line": 981, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f98928", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29811, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29811, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f98908", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29811, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29811, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f975e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29809, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29809, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f988f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29814, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f97600", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29814, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29814, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"vcp\"" + } + ] + } + ] + }, + { + "id": "0x558a51f989e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29829, + "line": 982, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29842, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f989b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29836, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29842, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152be28", + "kind": "EnumConstantDecl", + "name": "VCP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f99e20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29851, + "line": 983, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29888, + "line": 984, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f99d70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29855, + "line": 983, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f99d58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29857, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29857, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f99d38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29857, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29857, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f98a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29855, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29855, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f99d20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29860, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f98a30", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29860, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 29860, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"vcn\"" + } + ] + } + ] + }, + { + "id": "0x558a51f99e10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29875, + "line": 984, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29888, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51f99de0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29882, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29888, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152be80", + "kind": "EnumConstantDecl", + "name": "VCN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9b250", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29897, + "line": 985, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29939, + "line": 986, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f9b1a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29901, + "line": 985, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9b188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29903, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29903, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9b168", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29903, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29903, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f99e40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29901, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29901, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9b150", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29906, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f99e60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29906, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 29906, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vishaper\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9b240", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29926, + "line": 986, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29939, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51f9b210", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29933, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29939, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bed8", + "kind": "EnumConstantDecl", + "name": "VISHAPER", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9c680", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 29953, + "line": 987, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 29997, + "line": 988, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f9c5d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 29957, + "line": 987, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9c5b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9c598", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 29959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9b270", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 29957, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9c580", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 29962, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9b290", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 29962, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 29962, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vthreshold\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9c670", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 29984, + "line": 988, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 29997, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51f9c640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 29991, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 29997, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bf30", + "kind": "EnumConstantDecl", + "name": "VTHRESHOLD", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9dab0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30013, + "line": 989, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30054, + "line": 990, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9da00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30017, + "line": 989, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9d9e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30019, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30019, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9d9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30019, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30019, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9c6a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30017, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30017, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9d9b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30022, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9c6c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30022, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30022, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vref_ds\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9daa0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30041, + "line": 990, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30054, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9da70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30048, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30054, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bfe0", + "kind": "EnumConstantDecl", + "name": "VREF_DS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51f9eee0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30067, + "line": 991, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30108, + "line": 992, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9ee30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30071, + "line": 991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51f9ee18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30073, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30073, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51f9edf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30073, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30073, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9dad0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30071, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30071, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51f9ede0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30076, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9daf0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30076, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30076, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vout_cm\"" + } + ] + } + ] + }, + { + "id": "0x558a51f9eed0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30095, + "line": 992, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30108, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51f9eea0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30102, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30108, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c038", + "kind": "EnumConstantDecl", + "name": "VOUT_CM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa0310", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30121, + "line": 993, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30161, + "line": 994, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fa0260", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30125, + "line": 993, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa0248", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30127, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30127, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa0228", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30127, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30127, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51f9ef00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30125, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30125, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa0210", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30130, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51f9ef20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30130, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 30130, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vin_cm\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa0300", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30148, + "line": 994, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30161, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fa02d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30155, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30161, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c090", + "kind": "EnumConstantDecl", + "name": "VIN_CM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa1740", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30173, + "line": 995, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30216, + "line": 996, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa1690", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30177, + "line": 995, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa1678", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa1658", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30179, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30179, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa0330", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30177, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30177, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa1640", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30182, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa0350", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30182, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30182, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vref_comp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa1730", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30203, + "line": 996, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30216, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa1700", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30210, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30216, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c0e8", + "kind": "EnumConstantDecl", + "name": "VREF_COMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa2b70", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30231, + "line": 997, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30272, + "line": 998, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa2ac0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30235, + "line": 997, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa2aa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30237, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30237, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa2a88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30237, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30237, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa1760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30235, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30235, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa2a70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30240, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa1780", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30240, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30240, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa2b60", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30259, + "line": 998, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30272, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa2b30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30266, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30272, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c140", + "kind": "EnumConstantDecl", + "name": "VB_COMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa3fa0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30285, + "line": 999, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30327, + "line": 1000, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fa3ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30289, + "line": 999, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa3ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30291, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30291, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa3eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30291, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30291, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa2b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30289, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30289, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa3ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30294, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa2bb0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30294, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30294, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vdd_prot\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa3f90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30314, + "line": 1000, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30327, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fa3f60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30321, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30327, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c198", + "kind": "EnumConstantDecl", + "name": "VDD_PROT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa53d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30341, + "line": 1001, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30382, + "line": 1002, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa5320", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30345, + "line": 1001, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa5308", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa52e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30347, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30347, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa3fc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30345, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30345, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa52d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30350, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa3fe0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30350, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 30350, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"vin_com\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa53c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30369, + "line": 1002, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30382, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a51fa5390", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30376, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30382, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c1f0", + "kind": "EnumConstantDecl", + "name": "VIN_COM", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa6820", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30395, + "line": 1003, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30439, + "line": 1004, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fa6770", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30399, + "line": 1003, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa6758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30401, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30401, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa6738", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30401, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30401, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa53f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30399, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30399, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa6720", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30404, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa5410", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30404, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30404, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_prech\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa6810", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30426, + "line": 1004, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30439, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fa67e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30433, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30439, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c248", + "kind": "EnumConstantDecl", + "name": "VREF_PRECH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa7c50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30455, + "line": 1005, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30498, + "line": 1006, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa7ba0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30459, + "line": 1005, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa7b88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30461, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30461, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa7b68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30461, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30461, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa6840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30459, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30459, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa7b50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30464, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa6860", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30464, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30464, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vb_pixbuf\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa7c40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30485, + "line": 1006, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30498, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fa7c10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30492, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30498, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c2a0", + "kind": "EnumConstantDecl", + "name": "VB_PIXBUF", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fa9080", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30513, + "line": 1007, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30552, + "line": 1008, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fa8fd0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30517, + "line": 1007, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fa8fb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30519, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30519, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fa8f98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30519, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30519, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa7c70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30517, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30517, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fa8f80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30522, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa7c90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30522, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 30522, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vb_ds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fa9070", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30539, + "line": 1008, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30552, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fa9040", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30546, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30552, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c2f8", + "kind": "EnumConstantDecl", + "name": "VB_DS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51faa4b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30563, + "line": 1009, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30607, + "line": 1010, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51faa400", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30567, + "line": 1009, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51faa3e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30569, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30569, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51faa3c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30569, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30569, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fa90a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30567, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30567, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51faa3b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30572, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fa90c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30572, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30572, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_h_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51faa4a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30594, + "line": 1010, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30607, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51faa470", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30601, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30607, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c350", + "kind": "EnumConstantDecl", + "name": "VREF_H_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fab8e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30623, + "line": 1011, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30667, + "line": 1012, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fab830", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30627, + "line": 1011, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fab818", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30629, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30629, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fab7f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30629, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30629, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51faa4d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30627, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30627, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fab7e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30632, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51faa4f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30632, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30632, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp_fe\"" + } + ] + } + ] + }, + { + "id": "0x558a51fab8d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30654, + "line": 1012, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30667, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fab8a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30661, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30667, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c3a8", + "kind": "EnumConstantDecl", + "name": "VB_COMP_FE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51facd10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30683, + "line": 1013, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30728, + "line": 1014, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51facc60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30687, + "line": 1013, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51facc48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30689, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30689, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51facc28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30689, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30689, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fab900", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30687, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30687, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51facc10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30692, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fab920", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30692, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30692, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"vb_comp_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51facd00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30715, + "line": 1014, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30728, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faccd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30722, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30728, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c400", + "kind": "EnumConstantDecl", + "name": "VB_COMP_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fae140", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30745, + "line": 1015, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30787, + "line": 1016, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fae090", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30749, + "line": 1015, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fae078", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30751, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30751, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fae058", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30751, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30751, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51facd30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30749, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30749, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fae040", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30754, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51facd50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30754, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 30754, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fae130", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30774, + "line": 1016, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30787, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fae100", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30781, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30787, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c458", + "kind": "EnumConstantDecl", + "name": "VCOM_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51faf570", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30801, + "line": 1017, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30846, + "line": 1018, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faf4c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30805, + "line": 1017, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51faf4a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51faf488", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fae160", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30805, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51faf470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30810, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fae180", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30810, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 30810, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"vref_rstore\"" + } + ] + } + ] + }, + { + "id": "0x558a51faf560", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30833, + "line": 1018, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30846, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51faf530", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30840, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30846, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c4b0", + "kind": "EnumConstantDecl", + "name": "VREF_RSTORE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb09a0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30863, + "line": 1019, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30907, + "line": 1020, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb08f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30867, + "line": 1019, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb08d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30869, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30869, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb08b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30869, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30869, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51faf590", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30867, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30867, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb08a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30872, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51faf5b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30872, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 30872, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vb_opa_1st\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb0990", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30894, + "line": 1020, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30907, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb0960", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30901, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30907, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c508", + "kind": "EnumConstantDecl", + "name": "VB_OPA_1ST", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb1dd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30923, + "line": 1021, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 30969, + "line": 1022, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fb1d20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30927, + "line": 1021, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb1d08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30929, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30929, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb1ce8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30929, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30929, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb09c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30927, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30927, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb1cd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30932, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb09e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30932, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 30932, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"vref_comp_fe\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb1dc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 30956, + "line": 1022, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 30969, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fb1d90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30963, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 30969, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c560", + "kind": "EnumConstantDecl", + "name": "VREF_COMP_FE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb3200", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 30987, + "line": 1023, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31030, + "line": 1024, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb3150", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 30991, + "line": 1023, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb3138", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb3118", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30993, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 30993, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb1df0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 30991, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 30991, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb3100", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 30996, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb1e10", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 30996, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 30996, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_adc1\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb31f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31017, + "line": 1024, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31030, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb31c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31024, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31030, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c5b8", + "kind": "EnumConstantDecl", + "name": "VCOM_ADC1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb4630", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31045, + "line": 1025, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31089, + "line": 1026, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb4580", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31049, + "line": 1025, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb4568", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31051, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31051, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb4548", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31051, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31051, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb3220", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31049, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31049, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb4530", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31054, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb3240", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31054, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31054, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vref_l_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb4620", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31076, + "line": 1026, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31089, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fb45f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31083, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31089, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c610", + "kind": "EnumConstantDecl", + "name": "VREF_L_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb5a60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31105, + "line": 1027, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31147, + "line": 1028, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fb59b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31109, + "line": 1027, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb5998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31111, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31111, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb5978", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31111, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31111, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb4650", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31109, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31109, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb5960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31114, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb4670", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31114, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 31114, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"vref_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb5a50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31134, + "line": 1028, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31147, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fb5a20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31141, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31147, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c668", + "kind": "EnumConstantDecl", + "name": "VREF_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb6e90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31161, + "line": 1029, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31200, + "line": 1030, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fb6de0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31165, + "line": 1029, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb6dc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31167, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31167, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb6da8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31167, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31167, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb5a80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31165, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31165, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb6d90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31170, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb5aa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31170, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31170, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vb_cs\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb6e80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31187, + "line": 1030, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31200, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fb6e50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31194, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31200, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c6c0", + "kind": "EnumConstantDecl", + "name": "VB_CS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb82c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31211, + "line": 1031, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31254, + "line": 1032, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb8210", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31215, + "line": 1031, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb81f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31217, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31217, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb81d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31217, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31217, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb6eb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31215, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31215, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb81c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31220, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb6ed0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31220, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31220, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vb_opa_fd\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb82b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31241, + "line": 1032, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31254, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb8280", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31248, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31254, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c718", + "kind": "EnumConstantDecl", + "name": "VB_OPA_FD", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fb96f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31269, + "line": 1033, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31312, + "line": 1034, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb9640", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31273, + "line": 1033, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fb9628", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31275, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31275, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fb9608", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31275, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31275, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb82e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31273, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31273, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fb95f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31278, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb8300", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31278, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31278, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcom_adc2\"" + } + ] + } + ] + }, + { + "id": "0x558a51fb96e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31299, + "line": 1034, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31312, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fb96b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31306, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31312, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c770", + "kind": "EnumConstantDecl", + "name": "VCOM_ADC2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbab20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31327, + "line": 1035, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31367, + "line": 1036, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fbaa70", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31331, + "line": 1035, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbaa58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31333, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31333, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbaa38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31333, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31333, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fb9710", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31331, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31331, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbaa20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31336, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fb9730", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31336, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31336, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcassh\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbab10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31354, + "line": 1036, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31367, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fbaae0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31361, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31367, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c7c8", + "kind": "EnumConstantDecl", + "name": "VCASSH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbbf50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31379, + "line": 1037, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31417, + "line": 1038, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbbea0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31383, + "line": 1037, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbbe88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31385, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31385, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbbe68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31385, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31385, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbab40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31383, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31383, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbbe50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31388, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbab60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31388, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31388, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth2\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbbf40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31404, + "line": 1038, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31417, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbbf10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31411, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31417, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c820", + "kind": "EnumConstantDecl", + "name": "VTH2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbd380", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31427, + "line": 1039, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31471, + "line": 1040, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fbd2d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31431, + "line": 1039, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbd2b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31433, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31433, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbd298", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31433, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31433, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbbf70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31431, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31431, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbd280", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31436, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbbf90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31436, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31436, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vrshaper_n\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbd370", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31458, + "line": 1040, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31471, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fbd340", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31465, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31471, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c878", + "kind": "EnumConstantDecl", + "name": "VRSHAPER_N", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbe7b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31487, + "line": 1041, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31530, + "line": 1042, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fbe700", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31491, + "line": 1041, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbe6e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31493, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31493, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbe6c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31493, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31493, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbd3a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31491, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31491, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbe6b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31496, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbd3c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31496, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 31496, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vipre_out\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbe7a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31517, + "line": 1042, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31530, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fbe770", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31524, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31530, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c8d0", + "kind": "EnumConstantDecl", + "name": "VIPRE_OUT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fbfbe0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31545, + "line": 1043, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31583, + "line": 1044, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbfb30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31549, + "line": 1043, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fbfb18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fbfaf8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31551, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31551, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbe7d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31549, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31549, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fbfae0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbe7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31554, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31554, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth3\"" + } + ] + } + ] + }, + { + "id": "0x558a51fbfbd0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31570, + "line": 1044, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31583, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fbfba0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31577, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31583, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c928", + "kind": "EnumConstantDecl", + "name": "VTH3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc1010", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31593, + "line": 1045, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31631, + "line": 1046, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc0f60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31597, + "line": 1045, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc0f48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc0f28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31599, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31599, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fbfc00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31597, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31597, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc0f10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31602, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fbfc20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31602, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31602, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vth1\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc1000", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31618, + "line": 1046, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31631, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc0fd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31625, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31631, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c980", + "kind": "EnumConstantDecl", + "name": "VTH1", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc2440", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31641, + "line": 1047, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31680, + "line": 1048, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc2390", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31645, + "line": 1047, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc2378", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31647, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31647, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc2358", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31647, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31647, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc1030", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31645, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31645, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc2340", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31650, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc1050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31650, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31650, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vicin\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc2430", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31667, + "line": 1048, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31680, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc2400", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31674, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31680, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152c9d8", + "kind": "EnumConstantDecl", + "name": "VICIN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc3870", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31691, + "line": 1049, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31729, + "line": 1050, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc37c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31695, + "line": 1049, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc37a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31697, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31697, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc3788", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31697, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31697, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc2460", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31695, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31695, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc3770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31700, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc2480", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31700, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 31700, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"vcas\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc3860", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31716, + "line": 1050, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31729, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51fc3830", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31723, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31729, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ca30", + "kind": "EnumConstantDecl", + "name": "VCAS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc4ca0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31739, + "line": 1051, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31779, + "line": 1052, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc4bf0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31743, + "line": 1051, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc4bd8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31745, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31745, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc4bb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31745, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31745, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc3890", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31743, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31743, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc4ba0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31748, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc38b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31748, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31748, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcal_n\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc4c90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31766, + "line": 1052, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31779, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc4c60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31773, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31779, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ca88", + "kind": "EnumConstantDecl", + "name": "VCAL_N", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc60d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31791, + "line": 1053, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31830, + "line": 1054, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc6020", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31795, + "line": 1053, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc6008", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31797, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31797, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc5fe8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31797, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31797, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc4cc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31795, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31795, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc5fd0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31800, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc4ce0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31800, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31800, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vipre\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc60c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31817, + "line": 1054, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31830, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc6090", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31824, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31830, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cae0", + "kind": "EnumConstantDecl", + "name": "VIPRE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc7530", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31841, + "line": 1055, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31881, + "line": 1056, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc7480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31845, + "line": 1055, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc7468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31847, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31847, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc7448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31847, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31847, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc60f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31845, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31845, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc7430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31850, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc6110", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31850, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 31850, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vcal_p\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc7520", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31868, + "line": 1056, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31881, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fc74f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31875, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31881, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cb38", + "kind": "EnumConstantDecl", + "name": "VCAL_P", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc8960", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31893, + "line": 1057, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31932, + "line": 1058, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc88b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31897, + "line": 1057, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc8898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31899, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31899, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc8878", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31899, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31899, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc7550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31897, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31897, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc8860", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31902, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc7570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31902, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 31902, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"vdcsh\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc8950", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31919, + "line": 1058, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31932, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51fc8920", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31926, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31932, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cb90", + "kind": "EnumConstantDecl", + "name": "VDCSH", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fc9d90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 31943, + "line": 1059, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 31987, + "line": 1060, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fc9ce0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 31947, + "line": 1059, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fc9cc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31949, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31949, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fc9ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31949, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 31949, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc8980", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31947, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 31947, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fc9c90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 31952, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc89a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 31952, + "col": 14, + "tokLen": 12 + }, + "end": { + "offset": 31952, + "col": 14, + "tokLen": 12 + } + }, + "type": { + "qualType": "const char[11]" + }, + "valueCategory": "lvalue", + "value": "\"vbp_colbuf\"" + } + ] + } + ] + }, + { + "id": "0x558a51fc9d80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 31974, + "line": 1060, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 31987, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fc9d50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 31981, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 31987, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cbe8", + "kind": "EnumConstantDecl", + "name": "VBP_COLBUF", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcb1c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32003, + "line": 1061, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32043, + "line": 1062, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fcb110", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32007, + "line": 1061, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcb0f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32009, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32009, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcb0d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32009, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32009, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fc9db0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32007, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32007, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcb0c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32012, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fc9dd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32012, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 32012, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"vb_sda\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcb1b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32030, + "line": 1062, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32043, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51fcb180", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32037, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32043, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cc40", + "kind": "EnumConstantDecl", + "name": "VB_SDA", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcc5f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32055, + "line": 1063, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32098, + "line": 1064, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcc540", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32059, + "line": 1063, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcc528", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32061, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32061, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcc508", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32061, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32061, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcb1e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32059, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32059, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcc4f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32064, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcb200", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32064, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32064, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vcasc_sfp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcc5e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32085, + "line": 1064, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32098, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcc5b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32092, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32098, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cc98", + "kind": "EnumConstantDecl", + "name": "VCASC_SFP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcda20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32113, + "line": 1065, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32156, + "line": 1066, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcd970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32117, + "line": 1065, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fcd958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32119, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32119, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fcd938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32119, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32119, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcc610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32117, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32117, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fcd920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32122, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcc630", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32122, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32122, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"vipre_cds\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcda10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32143, + "line": 1066, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32156, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcd9e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32150, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32156, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ccf0", + "kind": "EnumConstantDecl", + "name": "VIPRE_CDS", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fcee50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32171, + "line": 1067, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32214, + "line": 1068, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fceda0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32175, + "line": 1067, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fced88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32177, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32177, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fced68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32177, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32177, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcda40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32175, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32175, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fced50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32180, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcda60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32180, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32180, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"ibias_sfp\"" + } + ] + } + ] + }, + { + "id": "0x558a51fcee40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32201, + "line": 1068, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32214, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fcee10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32208, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32214, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cd48", + "kind": "EnumConstantDecl", + "name": "IBIAS_SFP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd0280", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32229, + "line": 1069, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32271, + "line": 1070, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd01d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32233, + "line": 1069, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd01b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32235, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32235, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd0198", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32235, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32235, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fcee70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32233, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32233, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd0180", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32238, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fcee90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32238, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32238, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"trimbits\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd0270", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32258, + "line": 1070, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32271, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd0240", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32265, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32271, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d168", + "kind": "EnumConstantDecl", + "name": "TRIMBIT_SCAN", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd16b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32289, + "line": 1071, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32334, + "line": 1072, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd1600", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32293, + "line": 1071, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd15e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32295, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32295, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd15c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32295, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32295, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd02a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32293, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32293, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd15b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32298, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd02c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32298, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32298, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"highvoltage\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd16a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32321, + "line": 1072, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32334, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fd1670", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32328, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32334, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cdf8", + "kind": "EnumConstantDecl", + "name": "HIGH_VOLTAGE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd2ae0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32352, + "line": 1073, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32393, + "line": 1074, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fd2a30", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32356, + "line": 1073, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd2a18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32358, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32358, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd29f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32358, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32358, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd16d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32356, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32356, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd29e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32361, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd16f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32361, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 32361, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"iodelay\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd2ad0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32380, + "line": 1074, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32393, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51fd2aa0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32387, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32393, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152bf88", + "kind": "EnumConstantDecl", + "name": "IO_DELAY", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd3f10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32407, + "line": 1075, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32449, + "line": 1076, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fd3e60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32411, + "line": 1075, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd3e48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32413, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32413, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd3e28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32413, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32413, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd2b00", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32411, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32411, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd3e10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32416, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd2b20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32416, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 32416, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"temp_adc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd3f00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32436, + "line": 1076, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32449, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fd3ed0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32443, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32449, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ce50", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_ADC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd5340", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32470, + "line": 1077, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32513, + "line": 1078, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd5290", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32474, + "line": 1077, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd5278", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32476, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32476, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd5258", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32476, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32476, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd3f30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32474, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32474, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd5240", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32479, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd3f50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32479, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32479, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpga\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd5330", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32500, + "line": 1078, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32513, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd5300", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32507, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32513, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cea8", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd6770", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32535, + "line": 1079, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32581, + "line": 1080, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fd66c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32539, + "line": 1079, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd66a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32541, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32541, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd6688", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32541, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32541, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd5360", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32539, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32539, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd6670", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32544, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd5380", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32544, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 32544, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgaext\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd6760", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32568, + "line": 1080, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32581, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fd6730", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32575, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32581, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cf00", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGAEXT", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd7ba0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32606, + "line": 1081, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32649, + "line": 1082, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd7af0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32610, + "line": 1081, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd7ad8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32612, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32612, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd7ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32612, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32612, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd6790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32610, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32610, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd7aa0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32615, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd67b0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32615, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32615, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_10ge\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd7b90", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32636, + "line": 1082, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32649, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd7b60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32643, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32649, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cf58", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_10GE", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fd8fd0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32671, + "line": 1083, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32714, + "line": 1084, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd8f20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32675, + "line": 1083, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fd8f08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32677, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32677, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fd8ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32677, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32677, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd7bc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32675, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32675, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fd8ed0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32680, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd7be0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32680, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32680, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_dcdc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fd8fc0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32701, + "line": 1084, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32714, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fd8f90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32708, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32714, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152cfb0", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_DCDC", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fda400", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32736, + "line": 1085, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32779, + "line": 1086, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fda350", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32740, + "line": 1085, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fda338", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fda318", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32742, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32742, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fd8ff0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32740, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32740, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fda300", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32745, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fd9010", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32745, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32745, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_sodl\"" + } + ] + } + ] + }, + { + "id": "0x558a51fda3f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32766, + "line": 1086, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32779, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fda3c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32773, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32779, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d008", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_SODL", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdb830", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32801, + "line": 1087, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32844, + "line": 1088, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fdb780", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32805, + "line": 1087, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdb768", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdb748", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32807, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32807, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fda420", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32805, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32805, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdb730", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32810, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fda440", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32810, + "col": 14, + "tokLen": 11 + }, + "end": { + "offset": 32810, + "col": 14, + "tokLen": 11 + } + }, + "type": { + "qualType": "const char[10]" + }, + "valueCategory": "lvalue", + "value": "\"temp_sodr\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdb820", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32831, + "line": 1088, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32844, + "col": 22, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a51fdb7f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32838, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32844, + "col": 22, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d060", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_SODR", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdcc60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32866, + "line": 1089, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32911, + "line": 1090, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fdcbb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32870, + "line": 1089, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdcb98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32872, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32872, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdcb78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32872, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32872, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fdb850", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32870, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32870, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdcb60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32875, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdb870", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32875, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32875, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgafl\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdcc50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32898, + "line": 1090, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32911, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fdcc20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32905, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32911, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d0b8", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA2", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fde090", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 32934, + "line": 1091, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 32979, + "line": 1092, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fddfe0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 32938, + "line": 1091, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fddfc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32940, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32940, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fddfa8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32940, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 32940, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fdcc80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32938, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 32938, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fddf90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 32943, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdcca0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 32943, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 32943, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"temp_fpgafr\"" + } + ] + } + ] + }, + { + "id": "0x558a51fde080", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 32966, + "line": 1092, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 32979, + "col": 22, + "tokLen": 17 + } + }, + "inner": [ + { + "id": "0x558a51fde050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 32973, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 32979, + "col": 22, + "tokLen": 17 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d110", + "kind": "EnumConstantDecl", + "name": "TEMPERATURE_FPGA3", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdf4c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33002, + "line": 1093, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33048, + "line": 1094, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51fdf410", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33006, + "line": 1093, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdf3f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33008, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33008, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf3d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33008, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33008, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fde0b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33006, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33006, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fdf3c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33011, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fde0d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33011, + "col": 14, + "tokLen": 14 + }, + "end": { + "offset": 33011, + "col": 14, + "tokLen": 14 + } + }, + "type": { + "qualType": "const char[13]" + }, + "valueCategory": "lvalue", + "value": "\"temp_slowadc\"" + } + ] + } + ] + }, + { + "id": "0x558a51fdf4b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33035, + "line": 1094, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33048, + "col": 22, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a51fdf480", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33042, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33048, + "col": 22, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::dacIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d4c0", + "kind": "EnumConstantDecl", + "name": "SLOW_ADC_TEMP", + "type": { + "qualType": "slsDetectorDefs::dacIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fdfae8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33067, + "line": 1095, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fdfad0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33067, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fdfaa8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fdfa88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fdfa80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fdfa50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33073, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33110, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51fdfa38", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51fdfa20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fdfa00", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fdf9f8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fdf9c0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fdf9a8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33107, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 33107, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf988", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33107, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 33107, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fdf970", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33086, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fdf4f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33086, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 33086, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char[19]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown dac Index \"" + } + ] + }, + { + "id": "0x558a51fdf520", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33109, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33109, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51f59ea0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51fdff60", + "kind": "FunctionDecl", + "loc": { + "offset": 33145, + "file": "ToString.cpp", + "line": 1098, + "col": 30, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33116, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33550, + "line": 1112, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbccb0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10powerIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::powerIndex (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "inner": [ + { + "id": "0x558a5152d5d0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "decl": { + "id": "0x558a5152d530", + "kind": "EnumDecl", + "name": "powerIndex" + } + } + ] + }, + { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "loc": { + "offset": 33173, + "line": 1098, + "col": 58, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33154, + "col": 39, + "tokLen": 5 + }, + "end": { + "offset": 33173, + "col": 58, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fe8090", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 33176, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 33550, + "line": 1112, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fe1550", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33182, + "line": 1099, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33219, + "line": 1100, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe14a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33186, + "line": 1099, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe1488", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33188, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33188, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe1468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33188, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33188, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe0148", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33186, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33186, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe1450", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33191, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe0168", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33191, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33191, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_a\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe1540", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33206, + "line": 1100, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33219, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe1510", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33213, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33219, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d5f0", + "kind": "EnumConstantDecl", + "name": "V_POWER_A", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe2980", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33234, + "line": 1101, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33271, + "line": 1102, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe28d0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33238, + "line": 1101, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe28b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33240, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33240, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe2898", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33240, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33240, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe1570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33238, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33238, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe2880", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33243, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe1590", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33243, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33243, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_b\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe2970", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33258, + "line": 1102, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33271, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe2940", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33265, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33271, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d648", + "kind": "EnumConstantDecl", + "name": "V_POWER_B", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe3db0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33286, + "line": 1103, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33323, + "line": 1104, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe3d00", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33290, + "line": 1103, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe3ce8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33292, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33292, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe3cc8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33292, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33292, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe29a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33290, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33290, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe3cb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33295, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe29c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33295, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33295, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_c\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe3da0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33310, + "line": 1104, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33323, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe3d70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33317, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33323, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d6a0", + "kind": "EnumConstantDecl", + "name": "V_POWER_C", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe51e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33338, + "line": 1105, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33375, + "line": 1106, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe5130", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33342, + "line": 1105, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe5118", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33344, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33344, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe50f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33344, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33344, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe3dd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33342, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33342, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe50e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33347, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe3df0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33347, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 33347, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"v_d\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe51d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33362, + "line": 1106, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33375, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51fe51a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33369, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33375, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d6f8", + "kind": "EnumConstantDecl", + "name": "V_POWER_D", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe6620", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33390, + "line": 1107, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33428, + "line": 1108, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fe6570", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33394, + "line": 1107, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe6558", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33396, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33396, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe6538", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33396, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33396, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe5200", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33394, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33394, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe6520", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33399, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe5220", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33399, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 33399, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"v_io\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe6610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33415, + "line": 1108, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33428, + "col": 22, + "tokLen": 10 + } + }, + "inner": [ + { + "id": "0x558a51fe65e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33422, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33428, + "col": 22, + "tokLen": 10 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d750", + "kind": "EnumConstantDecl", + "name": "V_POWER_IO", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe7a50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33444, + "line": 1109, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33484, + "line": 1110, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fe79a0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33448, + "line": 1109, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe7988", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7968", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33450, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33450, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe6640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33448, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33448, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe7950", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33453, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe6660", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33453, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 33453, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"v_chip\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe7a40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33471, + "line": 1110, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33484, + "col": 22, + "tokLen": 12 + } + }, + "inner": [ + { + "id": "0x558a51fe7a10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33478, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33484, + "col": 22, + "tokLen": 12 + } + }, + "type": { + "qualType": "slsDetectorDefs::powerIndex" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152d7a8", + "kind": "EnumConstantDecl", + "name": "V_POWER_CHIP", + "type": { + "qualType": "slsDetectorDefs::powerIndex" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fe8078", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33502, + "line": 1111, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fe8060", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33502, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fe8038", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fe8018", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fe8010", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fe7fe0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33547, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51fe7fc8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51fe7fb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fe7f90", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fe7f88", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fe7f50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe7f38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33544, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33544, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7f18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33544, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 33544, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fe7f00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33521, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe7a80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33521, + "col": 24, + "tokLen": 22 + }, + "end": { + "offset": 33521, + "col": 24, + "tokLen": 22 + } + }, + "type": { + "qualType": "const char[21]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown power Index \"" + } + ] + }, + { + "id": "0x558a51fe7ab0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33546, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 33546, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fdfe88", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51fe8260", + "kind": "FunctionDecl", + "loc": { + "offset": 33581, + "file": "ToString.cpp", + "line": 1114, + "col": 29, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33553, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 33941, + "line": 1124, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbd240", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::burstMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "inner": [ + { + "id": "0x558a5152eaf0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "decl": { + "id": "0x558a5152ea48", + "kind": "EnumDecl", + "name": "burstMode" + } + } + ] + }, + { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "loc": { + "offset": 33609, + "line": 1114, + "col": 57, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33590, + "col": 38, + "tokLen": 5 + }, + "end": { + "offset": 33609, + "col": 57, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51fedb30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 33612, + "col": 60, + "tokLen": 1 + }, + "end": { + "offset": 33941, + "line": 1124, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fe9860", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33618, + "line": 1115, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33666, + "line": 1116, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51fe97b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33622, + "line": 1115, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fe9798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33624, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33624, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fe9778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33624, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33624, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe8448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33622, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33622, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fe9760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33627, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe8468", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33627, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33627, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"burst_internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fe9850", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33653, + "line": 1116, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33666, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51fe9820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33660, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33666, + "col": 22, + "tokLen": 14 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152eb10", + "kind": "EnumConstantDecl", + "name": "BURST_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51feac90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33686, + "line": 1117, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33734, + "line": 1118, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51feabe0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33690, + "line": 1117, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51feabc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33692, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33692, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51feaba8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33692, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33692, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fe9880", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33690, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33690, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51feab90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33695, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fe98a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33695, + "col": 14, + "tokLen": 16 + }, + "end": { + "offset": 33695, + "col": 14, + "tokLen": 16 + } + }, + "type": { + "qualType": "const char[15]" + }, + "valueCategory": "lvalue", + "value": "\"burst_external\"" + } + ] + } + ] + }, + { + "id": "0x558a51feac80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33721, + "line": 1118, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33734, + "col": 22, + "tokLen": 14 + } + }, + "inner": [ + { + "id": "0x558a51feac50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33728, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33734, + "col": 22, + "tokLen": 14 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152eb68", + "kind": "EnumConstantDecl", + "name": "BURST_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fec0c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33754, + "line": 1119, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33799, + "line": 1120, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fec010", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33758, + "line": 1119, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51febff8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33760, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33760, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51febfd8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33760, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33760, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51feacb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33758, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33758, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51febfc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33763, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51feacd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33763, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33763, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"cw_internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fec0b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33786, + "line": 1120, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33799, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fec080", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33793, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33799, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ebc0", + "kind": "EnumConstantDecl", + "name": "CONTINUOUS_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fed4f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 33824, + "line": 1121, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 33869, + "line": 1122, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fed440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33828, + "line": 1121, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fed428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33830, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33830, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fed408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33830, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 33830, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fec0e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33828, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 33828, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fed3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33833, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fec100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33833, + "col": 14, + "tokLen": 13 + }, + "end": { + "offset": 33833, + "col": 14, + "tokLen": 13 + } + }, + "type": { + "qualType": "const char[12]" + }, + "valueCategory": "lvalue", + "value": "\"cw_external\"" + } + ] + } + ] + }, + { + "id": "0x558a51fed4e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 33856, + "line": 1122, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 33869, + "col": 22, + "tokLen": 19 + } + }, + "inner": [ + { + "id": "0x558a51fed4b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33863, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 33869, + "col": 22, + "tokLen": 19 + } + }, + "type": { + "qualType": "slsDetectorDefs::burstMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ec18", + "kind": "EnumConstantDecl", + "name": "CONTINUOUS_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::burstMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fedb18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 33894, + "line": 1123, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51fedb00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 33894, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fedad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51fedab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51fedab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51feda80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 33900, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 33938, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51feda68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51feda50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51feda30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51feda28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51fed9f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fed9d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33935, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 33935, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fed9b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33935, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 33935, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51fed9a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33913, + "col": 24, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fed520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 33913, + "col": 24, + "tokLen": 21 + }, + "end": { + "offset": 33913, + "col": 24, + "tokLen": 21 + } + }, + "type": { + "qualType": "const char[20]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown burst mode \"" + } + ] + }, + { + "id": "0x558a51fed550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 33937, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 33937, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fe8188", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51fedcf0", + "kind": "FunctionDecl", + "loc": { + "offset": 33979, + "file": "ToString.cpp", + "line": 1126, + "col": 36, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 33944, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34197, + "line": 1132, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbd7d0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingSourceType (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "inner": [ + { + "id": "0x558a5152eda0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "decl": { + "id": "0x558a5152ecf8", + "kind": "EnumDecl", + "name": "timingSourceType" + } + } + ] + }, + { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "loc": { + "offset": 34007, + "line": 1126, + "col": 64, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 33988, + "col": 45, + "tokLen": 5 + }, + "end": { + "offset": 34007, + "col": 64, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ff0d90", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34010, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 34197, + "line": 1132, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fef2e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34016, + "line": 1127, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34058, + "line": 1128, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fef230", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34020, + "line": 1127, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51fef218", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34022, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34022, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51fef1f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34022, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34022, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51feded8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34020, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34020, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51fef1e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34025, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fedef8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34025, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34025, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"internal\"" + } + ] + } + ] + }, + { + "id": "0x558a51fef2d0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34045, + "line": 1128, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34058, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51fef2a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34052, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34058, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152edc0", + "kind": "EnumConstantDecl", + "name": "TIMING_INTERNAL", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff0710", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34079, + "line": 1129, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34121, + "line": 1130, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51ff0660", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34083, + "line": 1129, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff0648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34085, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34085, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0628", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34085, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34085, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51fef300", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34083, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34083, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff0610", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34088, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51fef320", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34088, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34088, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"external\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff0700", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34108, + "line": 1130, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34121, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a51ff06d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34115, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34121, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ee18", + "kind": "EnumConstantDecl", + "name": "TIMING_EXTERNAL", + "type": { + "qualType": "slsDetectorDefs::timingSourceType" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff0d78", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34142, + "line": 1131, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ff0d60", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34142, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ff0d38", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ff0d18", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff0d10", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff0ce0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34148, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34194, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ff0cc8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ff0cb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ff0c90", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff0c88", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff0c50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff0c38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34191, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 34191, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0c18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34191, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 34191, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ff0c00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34161, + "col": 24, + "tokLen": 29 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff0740", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34161, + "col": 24, + "tokLen": 29 + }, + "end": { + "offset": 34161, + "col": 24, + "tokLen": 29 + } + }, + "type": { + "qualType": "const char[28]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown timing source type \"" + } + ] + }, + { + "id": "0x558a51ff0778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34193, + "col": 56, + "tokLen": 1 + }, + "end": { + "offset": 34193, + "col": 56, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51fedc18", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51ff0f40", + "kind": "FunctionDecl", + "loc": { + "offset": 34230, + "file": "ToString.cpp", + "line": 1134, + "col": 31, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34200, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34640, + "line": 1148, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbdd60", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::M3_GainCaps (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "inner": [ + { + "id": "0x558a5152ef10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "decl": { + "id": "0x558a5152ee70", + "kind": "EnumDecl", + "name": "M3_GainCaps" + } + } + ] + }, + { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "loc": { + "offset": 34258, + "line": 1134, + "col": 59, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 34239, + "col": 40, + "tokLen": 5 + }, + "end": { + "offset": 34258, + "col": 59, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ff9060", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34261, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 34640, + "line": 1148, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ff2530", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34267, + "line": 1135, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34307, + "line": 1136, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff2480", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34271, + "line": 1135, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff2468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34273, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34273, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff2448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34273, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34273, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff1128", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34271, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34271, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff2430", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34276, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff1148", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34276, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34276, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"C10pre\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff2520", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34294, + "line": 1136, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34307, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff24f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34301, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34307, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152efb0", + "kind": "EnumConstantDecl", + "name": "M3_C10pre", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff3960", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34322, + "line": 1137, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34361, + "line": 1138, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff38b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34326, + "line": 1137, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff3898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34328, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34328, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff3878", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34328, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34328, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff2550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34326, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34326, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff3860", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34331, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff2570", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34331, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34331, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C15sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff3950", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34348, + "line": 1138, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34361, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff3920", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34355, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34361, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f088", + "kind": "EnumConstantDecl", + "name": "M3_C15sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff4d90", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34375, + "line": 1139, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34414, + "line": 1140, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff4ce0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34379, + "line": 1139, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff4cc8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34381, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34381, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff4ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34381, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34381, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff3980", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34379, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34379, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff4c90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34384, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff39a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34384, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34384, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C30sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff4d80", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34401, + "line": 1140, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34414, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff4d50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34408, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34414, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f160", + "kind": "EnumConstantDecl", + "name": "M3_C30sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff61c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34428, + "line": 1141, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34467, + "line": 1142, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff6110", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34432, + "line": 1141, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff60f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34434, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34434, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff60d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34434, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34434, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff4db0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34432, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34432, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff60c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34437, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff4dd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34437, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34437, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"C50sh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff61b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34454, + "line": 1142, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34467, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a51ff6180", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34461, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34467, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f238", + "kind": "EnumConstantDecl", + "name": "M3_C50sh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff75f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34481, + "line": 1143, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34523, + "line": 1144, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51ff7540", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34485, + "line": 1143, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff7528", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34487, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34487, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff7508", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34487, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34487, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff61e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34485, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34485, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff74f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34490, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff6200", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34490, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 34490, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"C225ACsh\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff75e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34510, + "line": 1144, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34523, + "col": 22, + "tokLen": 11 + } + }, + "inner": [ + { + "id": "0x558a51ff75b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34517, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34523, + "col": 22, + "tokLen": 11 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f310", + "kind": "EnumConstantDecl", + "name": "M3_C225ACsh", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff8a20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34540, + "line": 1145, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34580, + "line": 1146, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff8970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34544, + "line": 1145, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff8958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34546, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34546, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34546, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34546, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff7610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34544, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34544, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ff8920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34549, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff7630", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34549, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34549, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"C15pre\"" + } + ] + } + ] + }, + { + "id": "0x558a51ff8a10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34567, + "line": 1146, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34580, + "col": 22, + "tokLen": 9 + } + }, + "inner": [ + { + "id": "0x558a51ff89e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34574, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34580, + "col": 22, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f3e8", + "kind": "EnumConstantDecl", + "name": "M3_C15pre", + "type": { + "qualType": "slsDetectorDefs::M3_GainCaps" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ff9048", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34595, + "line": 1147, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ff9030", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34595, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ff9008", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ff8fe8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff8fe0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff8fb0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34601, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34637, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ff8f98", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ff8f80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ff8f60", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ff8f58", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ff8f20", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ff8f08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34634, + "col": 44, + "tokLen": 1 + }, + "end": { + "offset": 34634, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8ee8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34634, + "col": 44, + "tokLen": 1 + }, + "end": { + "offset": 34634, + "col": 44, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ff8ed0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34614, + "col": 24, + "tokLen": 19 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff8a50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34614, + "col": 24, + "tokLen": 19 + }, + "end": { + "offset": 34614, + "col": 24, + "tokLen": 19 + } + }, + "type": { + "qualType": "const char[18]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown gain cap \"" + } + ] + }, + { + "id": "0x558a51ff8a80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34636, + "col": 46, + "tokLen": 1 + }, + "end": { + "offset": 34636, + "col": 46, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff0e68", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51ff9230", + "kind": "FunctionDecl", + "loc": { + "offset": 34674, + "file": "ToString.cpp", + "line": 1150, + "col": 32, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34643, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 34957, + "line": 1160, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbe2f0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::portPosition (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "inner": [ + { + "id": "0x558a5152f570", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "decl": { + "id": "0x558a5152f4d0", + "kind": "EnumDecl", + "name": "portPosition" + } + } + ] + }, + { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "loc": { + "offset": 34702, + "line": 1150, + "col": 60, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 34683, + "col": 41, + "tokLen": 5 + }, + "end": { + "offset": 34702, + "col": 60, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a51ffeaf0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 34705, + "col": 63, + "tokLen": 1 + }, + "end": { + "offset": 34957, + "line": 1160, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffa820", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34711, + "line": 1151, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34749, + "line": 1152, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51ffa770", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34715, + "line": 1151, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffa758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34717, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34717, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffa738", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34717, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34717, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ff9418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34715, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34715, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffa720", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34720, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ff9438", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34720, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 34720, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"left\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffa810", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34736, + "line": 1152, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34749, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a51ffa7e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34743, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34749, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f590", + "kind": "EnumConstantDecl", + "name": "LEFT", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffbc50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34759, + "line": 1153, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34798, + "line": 1154, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51ffbba0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34763, + "line": 1153, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffbb88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34765, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34765, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffbb68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34765, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34765, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffa840", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34763, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34763, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffbb50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34768, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffa860", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34768, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 34768, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"right\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffbc40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34785, + "line": 1154, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34798, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a51ffbc10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34792, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34798, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f5e8", + "kind": "EnumConstantDecl", + "name": "RIGHT", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffd080", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34809, + "line": 1155, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34846, + "line": 1156, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51ffcfd0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34813, + "line": 1155, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffcfb8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34815, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34815, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffcf98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34815, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34815, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffbc70", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34813, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34813, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffcf80", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34818, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffbc90", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34818, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 34818, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"top\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffd070", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34833, + "line": 1156, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34846, + "col": 22, + "tokLen": 3 + } + }, + "inner": [ + { + "id": "0x558a51ffd040", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34840, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34846, + "col": 22, + "tokLen": 3 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f640", + "kind": "EnumConstantDecl", + "name": "TOP", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffe4b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 34855, + "line": 1157, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 34895, + "line": 1158, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51ffe400", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34859, + "line": 1157, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffe3e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe3c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34861, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 34861, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a51ffd0a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34859, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 34859, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a51ffe3b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffd0c0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34864, + "col": 14, + "tokLen": 8 + }, + "end": { + "offset": 34864, + "col": 14, + "tokLen": 8 + } + }, + "type": { + "qualType": "const char[7]" + }, + "valueCategory": "lvalue", + "value": "\"bottom\"" + } + ] + } + ] + }, + { + "id": "0x558a51ffe4a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 34882, + "line": 1158, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 34895, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a51ffe470", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34889, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 34895, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::portPosition" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f698", + "kind": "EnumConstantDecl", + "name": "BOTTOM", + "type": { + "qualType": "slsDetectorDefs::portPosition" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51ffead8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 34907, + "line": 1159, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a51ffeac0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 34907, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51ffea98", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a51ffea78", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ffea70", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ffea40", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 34913, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 34954, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ffea28", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a51ffea10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51ffe9f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a51ffe9e8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a51ffe9b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a51ffe998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34951, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 34951, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe978", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34951, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 34951, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a51ffe960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34926, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a51ffe4e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 34926, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 34926, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown port position \"" + } + ] + }, + { + "id": "0x558a51ffe510", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 34953, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 34953, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ff9158", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a51ffecb0", + "kind": "FunctionDecl", + "loc": { + "offset": 34997, + "file": "ToString.cpp", + "line": 1162, + "col": 38, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 34960, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 35420, + "line": 1173, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbe880", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::streamingInterface (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "inner": [ + { + "id": "0x558a5152f930", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "decl": { + "id": "0x558a5152f890", + "kind": "EnumDecl", + "name": "streamingInterface" + } + } + ] + }, + { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "loc": { + "offset": 35025, + "line": 1162, + "col": 66, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35006, + "col": 47, + "tokLen": 5 + }, + "end": { + "offset": 35025, + "col": 66, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520048f0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35028, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 35420, + "line": 1173, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffef98", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 35034, + "line": 1163, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 35052, + "col": 23, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "loc": { + "offset": 35046, + "col": 17, + "tokLen": 2 + }, + "range": { + "begin": { + "offset": 35034, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "init": "c", + "inner": [ + { + "id": "0x558a51ffef68", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35051, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const basic_string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a51ffef48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35051, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 35051, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52000550", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35058, + "line": 1164, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35125, + "line": 1165, + "col": 30, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a51fffa78", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 35062, + "line": 1164, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a51fff900", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35072, + "col": 19, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff8d0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35064, + "col": 11, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b838", + "inner": [ + { + "id": "0x558a51ffefb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35062, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35062, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a51fff048", + "kind": "CharacterLiteral", + "range": { + "begin": { + "offset": 35069, + "col": 16, + "tokLen": 3 + }, + "end": { + "offset": 35069, + "col": 16, + "tokLen": 3 + } + }, + "type": { + "qualType": "char" + }, + "valueCategory": "prvalue", + "value": 44 + }, + { + "id": "0x558a51fff948", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff930", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 102107, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2991, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f9b0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a51fffa60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35077, + "file": "ToString.cpp", + "line": 1164, + "col": 24, + "tokLen": 3 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a51fffa30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35077, + "col": 24, + "tokLen": 3 + }, + "end": { + "offset": 35090, + "col": 37, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a520004a8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35104, + "line": 1165, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35125, + "col": 30, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string" + }, + "valueCategory": "lvalue", + "inner": [ + { + "id": "0x558a52000478", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35104, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35107, + "col": 12, + "tokLen": 5 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "erase", + "isArrow": false, + "referencedMemberDecl": "0x558a50c904f8", + "inner": [ + { + "id": "0x558a51fffa98", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35104, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35104, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a520003f8", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35124, + "col": 29, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520003b0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35116, + "col": 21, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b838", + "inner": [ + { + "id": "0x558a520003e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35113, + "col": 18, + "tokLen": 2 + } + }, + "type": { + "qualType": "const std::basic_string" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a51fffb20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35113, + "col": 18, + "tokLen": 2 + }, + "end": { + "offset": 35113, + "col": 18, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + } + ] + }, + { + "id": "0x558a51fffbb8", + "kind": "CharacterLiteral", + "range": { + "begin": { + "offset": 35121, + "col": 26, + "tokLen": 3 + }, + "end": { + "offset": 35121, + "col": 26, + "tokLen": 3 + } + }, + "type": { + "qualType": "char" + }, + "valueCategory": "prvalue", + "value": 44 + }, + { + "id": "0x558a52000428", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a51fff930", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 102107, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2991, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f9b0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 102107, + "col": 42, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52000530", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52000518", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 76670, + "line": 2323, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520004f8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 76670, + "col": 50, + "tokLen": 4, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520019b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35132, + "file": "ToString.cpp", + "line": 1166, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35191, + "line": 1167, + "col": 42, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520018e8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35136, + "line": 1166, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520018d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35139, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35139, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520018b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35139, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35139, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52001880", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35136, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35136, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52000570", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35136, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35136, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52001898", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35142, + "col": 15, + "tokLen": 6 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52000590", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35142, + "col": 15, + "tokLen": 6 + }, + "end": { + "offset": 35142, + "col": 15, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"none\"" + } + ] + } + ] + }, + { + "id": "0x558a520019a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35158, + "line": 1167, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35191, + "col": 42, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52001970", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35165, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35191, + "col": 42, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152f990", + "kind": "EnumConstantDecl", + "name": "NONE", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52002e10", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35201, + "line": 1168, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35259, + "line": 1169, + "col": 42, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a52002d48", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35205, + "line": 1168, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52002d30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35208, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35208, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52002d10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35208, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35208, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52002ce0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35205, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35205, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520019d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35205, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35205, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52002cf8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35211, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520019f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35211, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 35211, + "col": 15, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"lll\"" + } + ] + } + ] + }, + { + "id": "0x558a52002e00", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35226, + "line": 1169, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35259, + "col": 42, + "tokLen": 16 + } + }, + "inner": [ + { + "id": "0x558a52002dd0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35233, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35259, + "col": 42, + "tokLen": 16 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fa68", + "kind": "EnumConstantDecl", + "name": "LOW_LATENCY_LINK", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52004270", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35281, + "line": 1170, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35341, + "line": 1171, + "col": 42, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a520041a8", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35285, + "line": 1170, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52004190", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35288, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35288, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52004170", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35288, + "col": 12, + "tokLen": 2 + }, + "end": { + "offset": 35288, + "col": 12, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52004140", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35285, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35285, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52002e30", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35285, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 35285, + "col": 9, + "tokLen": 2 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffeee0", + "kind": "VarDecl", + "name": "rs", + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "std::string", + "typeAliasDeclId": "0x558a50689410" + } + } + } + ] + }, + { + "id": "0x558a52004158", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35291, + "col": 15, + "tokLen": 7 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52002e50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35291, + "col": 15, + "tokLen": 7 + }, + "end": { + "offset": 35291, + "col": 15, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"10gbe\"" + } + ] + } + ] + }, + { + "id": "0x558a52004260", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35308, + "line": 1171, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35341, + "col": 42, + "tokLen": 13 + } + }, + "inner": [ + { + "id": "0x558a52004230", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35315, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35341, + "col": 42, + "tokLen": 13 + } + }, + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fb40", + "kind": "EnumConstantDecl", + "name": "ETHERNET_10GB", + "type": { + "qualType": "slsDetectorDefs::streamingInterface" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520048d8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 35360, + "line": 1172, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a520048c0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 35360, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52004898", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52004878", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52004870", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52004840", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35366, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35417, + "col": 62, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52004828", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52004810", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520047f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520047e8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520047b0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52004798", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35414, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 35414, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52004778", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35414, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 35414, + "col": 59, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52004760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35379, + "col": 24, + "tokLen": 34 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520042a0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35379, + "col": 24, + "tokLen": 34 + }, + "end": { + "offset": 35379, + "col": 24, + "tokLen": 34 + } + }, + "type": { + "qualType": "const char[33]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown streamingInterface type \"" + } + ] + }, + { + "id": "0x558a520042d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35416, + "col": 61, + "tokLen": 1 + }, + "end": { + "offset": 35416, + "col": 61, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51ffebd8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52004ac0", + "kind": "FunctionDecl", + "loc": { + "offset": 35455, + "file": "ToString.cpp", + "line": 1175, + "col": 33, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 35423, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 35645, + "line": 1181, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbee10", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::vetoAlgorithm (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "inner": [ + { + "id": "0x558a5152fd10", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "decl": { + "id": "0x558a5152fc70", + "kind": "EnumDecl", + "name": "vetoAlgorithm" + } + } + ] + }, + { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "loc": { + "offset": 35483, + "line": 1175, + "col": 61, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35464, + "col": 42, + "tokLen": 5 + }, + "end": { + "offset": 35483, + "col": 61, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52007b30", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35486, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 35645, + "line": 1181, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520060b0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35492, + "line": 1176, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35530, + "line": 1177, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52006000", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35496, + "line": 1176, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52005fe8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35498, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35498, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52005fc8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35498, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35498, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52004ca8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35496, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35496, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52005fb0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35501, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52004cc8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35501, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 35501, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hits\"" + } + ] + } + ] + }, + { + "id": "0x558a520060a0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35517, + "line": 1177, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35530, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52006070", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35524, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35530, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fd30", + "kind": "EnumConstantDecl", + "name": "ALG_HITS", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520074f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35544, + "line": 1178, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35581, + "line": 1179, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52007440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35548, + "line": 1178, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52007428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35550, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35550, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52007408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35550, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35550, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520060d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35548, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35548, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520073f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35553, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520060f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35553, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 35553, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"raw\"" + } + ] + } + ] + }, + { + "id": "0x558a520074e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35568, + "line": 1179, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35581, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a520074b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35575, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35581, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fd88", + "kind": "EnumConstantDecl", + "name": "ALG_RAW", + "type": { + "qualType": "slsDetectorDefs::vetoAlgorithm" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52007b18", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 35594, + "line": 1180, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52007b00", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 35594, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52007ad8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52007ab8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52007ab0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52007a80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 35600, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 35642, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52007a68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52007a50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52007a30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52007a28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520079f0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520079d8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35639, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 35639, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520079b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35639, + "col": 50, + "tokLen": 1 + }, + "end": { + "offset": 35639, + "col": 50, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a520079a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35613, + "col": 24, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52007520", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35613, + "col": 24, + "tokLen": 25 + }, + "end": { + "offset": 35613, + "col": 24, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown veto algorithm \"" + } + ] + }, + { + "id": "0x558a52007550", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35641, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 35641, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520049e0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52007ce0", + "kind": "FunctionDecl", + "loc": { + "offset": 35675, + "file": "ToString.cpp", + "line": 1183, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 35648, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36101, + "line": 1197, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbf3a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::gainMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "inner": [ + { + "id": "0x558a5152fe80", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "decl": { + "id": "0x558a5152fde0", + "kind": "EnumDecl", + "name": "gainMode" + } + } + ] + }, + { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "loc": { + "offset": 35703, + "line": 1183, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 35684, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 35703, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5200fe00", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 35706, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 36101, + "line": 1197, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520092d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35712, + "line": 1184, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35753, + "line": 1185, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52009220", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35716, + "line": 1184, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52009208", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35718, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35718, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520091e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35718, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35718, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52007ec8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35716, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35716, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520091d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35721, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52007ee8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35721, + "col": 14, + "tokLen": 9 + }, + "end": { + "offset": 35721, + "col": 14, + "tokLen": 9 + } + }, + "type": { + "qualType": "const char[8]" + }, + "valueCategory": "lvalue", + "value": "\"dynamic\"" + } + ] + } + ] + }, + { + "id": "0x558a520092c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35740, + "line": 1185, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35753, + "col": 22, + "tokLen": 7 + } + }, + "inner": [ + { + "id": "0x558a52009290", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35747, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35753, + "col": 22, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fea0", + "kind": "EnumConstantDecl", + "name": "DYNAMIC", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200a700", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35766, + "line": 1186, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35813, + "line": 1187, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200a650", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35770, + "line": 1186, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200a638", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35772, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35772, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200a618", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35772, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35772, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520092f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35770, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35770, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200a600", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35775, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52009310", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35775, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35775, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"forceswitchg1\"" + } + ] + } + ] + }, + { + "id": "0x558a5200a6f0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35800, + "line": 1187, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35813, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200a6c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35807, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35813, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152fef8", + "kind": "EnumConstantDecl", + "name": "FORCE_SWITCH_G1", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200bb30", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35834, + "line": 1188, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35881, + "line": 1189, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200ba80", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35838, + "line": 1188, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200ba68", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35840, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35840, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200ba48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35840, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35840, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200a720", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35838, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35838, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200ba30", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35843, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200a740", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35843, + "col": 14, + "tokLen": 15 + }, + "end": { + "offset": 35843, + "col": 14, + "tokLen": 15 + } + }, + "type": { + "qualType": "const char[14]" + }, + "valueCategory": "lvalue", + "value": "\"forceswitchg2\"" + } + ] + } + ] + }, + { + "id": "0x558a5200bb20", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35868, + "line": 1189, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35881, + "col": 22, + "tokLen": 15 + } + }, + "inner": [ + { + "id": "0x558a5200baf0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35875, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35881, + "col": 22, + "tokLen": 15 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ff50", + "kind": "EnumConstantDecl", + "name": "FORCE_SWITCH_G2", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200cf60", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35902, + "line": 1190, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35941, + "line": 1191, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200ceb0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35906, + "line": 1190, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200ce98", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35908, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35908, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200ce78", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35908, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35908, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200bb50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35906, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35906, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200ce60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35911, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200bb70", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35911, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35911, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg1\"" + } + ] + } + ] + }, + { + "id": "0x558a5200cf50", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35928, + "line": 1191, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35941, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200cf20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35935, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35941, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5152ffa8", + "kind": "EnumConstantDecl", + "name": "FIX_G1", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200e390", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 35953, + "line": 1192, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 35992, + "line": 1193, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200e2e0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 35957, + "line": 1192, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200e2c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200e2a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35959, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 35959, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200cf80", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35957, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 35957, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200e290", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 35962, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200cfa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 35962, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 35962, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg2\"" + } + ] + } + ] + }, + { + "id": "0x558a5200e380", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 35979, + "line": 1193, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 35992, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200e350", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 35986, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 35992, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530000", + "kind": "EnumConstantDecl", + "name": "FIX_G2", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200f7c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36004, + "line": 1194, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36043, + "line": 1195, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200f710", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36008, + "line": 1194, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200f6f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36010, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36010, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200f6d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36010, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36010, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5200e3b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36008, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36008, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5200f6c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36013, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200e3d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36013, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36013, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"fixg0\"" + } + ] + } + ] + }, + { + "id": "0x558a5200f7b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36030, + "line": 1195, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36043, + "col": 22, + "tokLen": 6 + } + }, + "inner": [ + { + "id": "0x558a5200f780", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36037, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36043, + "col": 22, + "tokLen": 6 + } + }, + "type": { + "qualType": "slsDetectorDefs::gainMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530058", + "kind": "EnumConstantDecl", + "name": "FIX_G0", + "type": { + "qualType": "slsDetectorDefs::gainMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a5200fde8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36055, + "line": 1196, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a5200fdd0", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36055, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5200fda8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a5200fd88", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a5200fd80", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5200fd50", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36061, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36098, + "col": 48, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a5200fd38", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a5200fd20", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5200fd00", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5200fcf8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5200fcc0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5200fca8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36095, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 36095, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5200fc88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36095, + "col": 45, + "tokLen": 1 + }, + "end": { + "offset": 36095, + "col": 45, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5200fc70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36074, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5200f7f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36074, + "col": 24, + "tokLen": 20 + }, + "end": { + "offset": 36074, + "col": 24, + "tokLen": 20 + } + }, + "type": { + "qualType": "const char[19]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown gain mode \"" + } + ] + }, + { + "id": "0x558a5200f820", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36097, + "col": 47, + "tokLen": 1 + }, + "end": { + "offset": 36097, + "col": 47, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52007c08", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a5200ffd0", + "kind": "FunctionDecl", + "loc": { + "offset": 36131, + "file": "ToString.cpp", + "line": 1199, + "col": 28, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36104, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36320, + "line": 1205, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbf930", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::polarity (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "inner": [ + { + "id": "0x558a51530150", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "decl": { + "id": "0x558a515300b0", + "kind": "EnumDecl", + "name": "polarity" + } + } + ] + }, + { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "loc": { + "offset": 36159, + "line": 1199, + "col": 56, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36140, + "col": 37, + "tokLen": 5 + }, + "end": { + "offset": 36159, + "col": 56, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52013030", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36162, + "col": 59, + "tokLen": 1 + }, + "end": { + "offset": 36320, + "line": 1205, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520115c0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36168, + "line": 1200, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36205, + "line": 1201, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52011510", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36172, + "line": 1200, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a520114f8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36174, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36174, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520114d8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36174, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36174, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520101b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36172, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36172, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520114c0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36177, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520101d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36177, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36177, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"pos\"" + } + ] + } + ] + }, + { + "id": "0x558a520115b0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36192, + "line": 1201, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36205, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52011580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36199, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36205, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530170", + "kind": "EnumConstantDecl", + "name": "POSITIVE", + "type": { + "qualType": "slsDetectorDefs::polarity" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520129f0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36219, + "line": 1202, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36256, + "line": 1203, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52012940", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36223, + "line": 1202, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52012928", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36225, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36225, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52012908", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36225, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36225, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520115e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36223, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36223, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520128f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36228, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52011600", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36228, + "col": 14, + "tokLen": 5 + }, + "end": { + "offset": 36228, + "col": 14, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"neg\"" + } + ] + } + ] + }, + { + "id": "0x558a520129e0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36243, + "line": 1203, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36256, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a520129b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36250, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36256, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::polarity" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515301c8", + "kind": "EnumConstantDecl", + "name": "NEGATIVE", + "type": { + "qualType": "slsDetectorDefs::polarity" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52013018", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36270, + "line": 1204, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52013000", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36270, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52012fd8", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52012fb8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52012fb0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52012f80", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36276, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36317, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52012f68", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a52012f50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52012f30", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52012f28", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52012ef0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52012ed8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36314, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 36314, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52012eb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36314, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 36314, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52012ea0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36289, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52012a20", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36289, + "col": 24, + "tokLen": 24 + }, + "end": { + "offset": 36289, + "col": 24, + "tokLen": 24 + } + }, + "type": { + "qualType": "const char[23]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown polarity mode \"" + } + ] + }, + { + "id": "0x558a52012a50", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36316, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36316, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5200fef8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a520131e0", + "kind": "FunctionDecl", + "loc": { + "offset": 36359, + "file": "ToString.cpp", + "line": 1207, + "col": 37, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36323, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36558, + "line": 1213, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bbfec0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::timingInfoDecoder (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "inner": [ + { + "id": "0x558a515302c0", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "decl": { + "id": "0x558a51530220", + "kind": "EnumDecl", + "name": "timingInfoDecoder" + } + } + ] + }, + { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "loc": { + "offset": 36387, + "line": 1207, + "col": 65, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36368, + "col": 46, + "tokLen": 5 + }, + "end": { + "offset": 36387, + "col": 65, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52016280", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36390, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 36558, + "line": 1213, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520147d0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36396, + "line": 1208, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36438, + "line": 1209, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52014720", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36400, + "line": 1208, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52014708", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36402, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36402, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520146e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36402, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36402, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520133c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36400, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36400, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520146d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36405, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520133e8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36405, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36405, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"swissfel\"" + } + ] + } + ] + }, + { + "id": "0x558a520147c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36425, + "line": 1209, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36438, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52014790", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36432, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36438, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515302e0", + "kind": "EnumConstantDecl", + "name": "SWISSFEL", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52015c00", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36452, + "line": 1210, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36491, + "line": 1211, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52015b50", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36456, + "line": 1210, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52015b38", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36458, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36458, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52015b18", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36458, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36458, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520147f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36456, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36456, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52015b00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36461, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52014810", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36461, + "col": 14, + "tokLen": 7 + }, + "end": { + "offset": 36461, + "col": 14, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"shine\"" + } + ] + } + ] + }, + { + "id": "0x558a52015bf0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36478, + "line": 1211, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36491, + "col": 22, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52015bc0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36485, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36491, + "col": 22, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530338", + "kind": "EnumConstantDecl", + "name": "SHINE", + "type": { + "qualType": "slsDetectorDefs::timingInfoDecoder" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52016268", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36502, + "line": 1212, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52016250", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36502, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52016228", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52016208", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52016200", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520161d0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36508, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36555, + "col": 58, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520161b8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520161a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52016180", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a52016178", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52016140", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52016128", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36552, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 36552, + "col": 55, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52016108", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36552, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 36552, + "col": 55, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a520160f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36521, + "col": 24, + "tokLen": 30 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52015c30", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36521, + "col": 24, + "tokLen": 30 + }, + "end": { + "offset": 36521, + "col": 24, + "tokLen": 30 + } + }, + "type": { + "qualType": "const char[29]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown Timing Info Decoder \"" + } + ] + }, + { + "id": "0x558a52015c68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36554, + "col": 57, + "tokLen": 1 + }, + "end": { + "offset": 36554, + "col": 57, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52013108", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52016430", + "kind": "FunctionDecl", + "loc": { + "offset": 36594, + "file": "ToString.cpp", + "line": 1215, + "col": 34, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36561, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 36787, + "line": 1221, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc0450", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "defs::collectionMode (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "inner": [ + { + "id": "0x558a51530430", + "kind": "EnumType", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "decl": { + "id": "0x558a51530390", + "kind": "EnumDecl", + "name": "collectionMode" + } + } + ] + }, + { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "loc": { + "offset": 36622, + "line": 1215, + "col": 62, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36603, + "col": 43, + "tokLen": 5 + }, + "end": { + "offset": 36622, + "col": 62, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520194c0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36625, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 36787, + "line": 1221, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52017a20", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36631, + "line": 1216, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36669, + "line": 1217, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52017970", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36635, + "line": 1216, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52017958", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36637, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36637, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52017938", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36637, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36637, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52016618", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36635, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36635, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52017920", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36640, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52016638", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36640, + "col": 14, + "tokLen": 6 + }, + "end": { + "offset": 36640, + "col": 14, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"hole\"" + } + ] + } + ] + }, + { + "id": "0x558a52017a10", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36656, + "line": 1217, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36669, + "col": 22, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520179e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36663, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36669, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a51530450", + "kind": "EnumConstantDecl", + "name": "HOLE", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52018e50", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36679, + "line": 1218, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 36721, + "line": 1219, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52018da0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36683, + "line": 1218, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52018d88", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36685, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36685, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52018d68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36685, + "col": 11, + "tokLen": 2 + }, + "end": { + "offset": 36685, + "col": 11, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52017a40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36683, + "col": 9, + "tokLen": 1 + }, + "end": { + "offset": 36683, + "col": 9, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52018d50", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36688, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52017a60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36688, + "col": 14, + "tokLen": 10 + }, + "end": { + "offset": 36688, + "col": 14, + "tokLen": 10 + } + }, + "type": { + "qualType": "const char[9]" + }, + "valueCategory": "lvalue", + "value": "\"electron\"" + } + ] + } + ] + }, + { + "id": "0x558a52018e40", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 36708, + "line": 1219, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 36721, + "col": 22, + "tokLen": 8 + } + }, + "inner": [ + { + "id": "0x558a52018e10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36715, + "col": 16, + "tokLen": 4 + }, + "end": { + "offset": 36721, + "col": 22, + "tokLen": 8 + } + }, + "type": { + "qualType": "slsDetectorDefs::collectionMode" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a515304a8", + "kind": "EnumConstantDecl", + "name": "ELECTRON", + "type": { + "qualType": "slsDetectorDefs::collectionMode" + } + } + } + ] + } + ] + }, + { + "id": "0x558a520194a8", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 36735, + "line": 1220, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52019490", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 36735, + "col": 5, + "tokLen": 5 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52019468", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52019448", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52019440", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52019410", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 36741, + "col": 11, + "tokLen": 12 + }, + "end": { + "offset": 36784, + "col": 54, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520193f8", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520193e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520193c0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520193b8", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52019380", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52019368", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36781, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36781, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52019348", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36781, + "col": 51, + "tokLen": 1 + }, + "end": { + "offset": 36781, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a52019330", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36754, + "col": 24, + "tokLen": 26 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52018e80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36754, + "col": 24, + "tokLen": 26 + }, + "end": { + "offset": 36754, + "col": 24, + "tokLen": 26 + } + }, + "type": { + "qualType": "const char[25]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown collection mode \"" + } + ] + }, + { + "id": "0x558a52018eb0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36783, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 36783, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52016358", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52019620", + "kind": "FunctionDecl", + "loc": { + "offset": 36810, + "file": "ToString.cpp", + "line": 1223, + "col": 21, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 36790, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37239, + "line": 1232, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc13b0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint8_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned char" + }, + "inner": [ + { + "id": "0x558a5015ac50", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned char" + } + } + ] + }, + { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "loc": { + "offset": 36838, + "line": 1223, + "col": 49, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 36819, + "col": 30, + "tokLen": 5 + }, + "end": { + "offset": 36838, + "col": 49, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5201e620", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 36841, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 37239, + "line": 1232, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d310", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 36847, + "line": 1224, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36901, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520197f0", + "kind": "VarDecl", + "loc": { + "offset": 36851, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 36847, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201d2e0", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d280", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5201d140", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36869, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d110", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36860, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52019858", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36858, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 36858, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5201d170", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36865, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 36865, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520198f0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 36865, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 36865, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5201d1a0", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d268", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36874, + "file": "ToString.cpp", + "line": 1224, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d238", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36874, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 36887, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5201d2a0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 36894, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 36894, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5201d2c0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 36899, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 36899, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d580", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 36907, + "line": 1225, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36946, + "col": 44, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d340", + "kind": "VarDecl", + "loc": { + "offset": 36911, + "col": 9, + "tokLen": 5 + }, + "range": { + "begin": { + "offset": 36907, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 36945, + "col": 43, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "value", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201d518", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36945, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d500", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36924, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d468", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36919, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36924, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5201d418", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36929, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 36929, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5201d550", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36932, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 36932, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5201d438", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 36932, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 36932, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5201d568", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36941, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 36941, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d448", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36941, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 36941, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520197f0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e560", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 36952, + "line": 1226, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 37197, + "line": 1230, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201d940", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36956, + "line": 1226, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37053, + "line": 1227, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a5201d778", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 36956, + "line": 1226, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "<", + "inner": [ + { + "id": "0x558a5201d748", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36956, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36956, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d598", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36956, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 36956, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201d760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201d728", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36998, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36994, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d6e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 36964, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 36994, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a502efe00", + "kind": "CXXMethodDecl", + "name": "min", + "type": { + "qualType": "unsigned char () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201d920", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37011, + "line": 1227, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": ">", + "inner": [ + { + "id": "0x558a5201d8f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37011, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37011, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201d798", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37011, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37011, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201d908", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201d8d0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37053, + "col": 51, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned char" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d8b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37049, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201d888", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37019, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37049, + "col": 47, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned char () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a502efed8", + "kind": "CXXMethodDecl", + "name": "max", + "type": { + "qualType": "unsigned char () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e548", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37056, + "col": 54, + "tokLen": 1 + }, + "end": { + "offset": 37197, + "line": 1230, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e530", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 37066, + "line": 1228, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a5201e518", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 37066, + "line": 1228, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201e4f0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a5201e4d0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201e4c8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201e498", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 37072, + "line": 1228, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37190, + "line": 1229, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a5201e480", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a5201e468", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5201e448", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201e440", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201e408", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37085, + "line": 1228, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201e3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37125, + "line": 1228, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 37125, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(basic_string, allocator> &&, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201e3d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37125, + "col": 68, + "tokLen": 1 + }, + "end": { + "offset": 37125, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515d5600", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + } + } + } + ] + }, + { + "id": "0x558a5201e3a0", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "xvalue", + "storageDuration": "full expression", + "inner": [ + { + "id": "0x558a5201df20", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201df18", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201dee0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201dec8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37121, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 37121, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201dea8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37121, + "col": 64, + "tokLen": 1 + }, + "end": { + "offset": 37121, + "col": 64, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5201de90", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37085, + "col": 28, + "tokLen": 35 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201d9d0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37085, + "col": 28, + "tokLen": 35 + }, + "end": { + "offset": 37085, + "col": 28, + "tokLen": 35 + } + }, + "type": { + "qualType": "const char[34]" + }, + "valueCategory": "lvalue", + "value": "\"Cannot scan uint8_t from string '\"" + } + ] + }, + { + "id": "0x558a5201da10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37123, + "col": 66, + "tokLen": 1 + }, + "end": { + "offset": 37123, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52019558", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e3b8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37154, + "line": 1229, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37154, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201df40", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37154, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37154, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"'. Value must be in range 0 - 255.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201e610", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37203, + "line": 1231, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37236, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e5e0", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 37210, + "col": 12, + "tokLen": 11 + }, + "end": { + "offset": 37236, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned char", + "qualType": "uint8_t", + "typeAliasDeclId": "0x558a50375a38" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a5201e5c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "desugaredQualType": "unsigned char", + "qualType": "uint8_t", + "typeAliasDeclId": "0x558a50375a38" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a5201e5b0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a5201e580", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37231, + "col": 33, + "tokLen": 5 + }, + "end": { + "offset": 37231, + "col": 33, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201d340", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a5201e790", + "kind": "FunctionDecl", + "loc": { + "offset": 37263, + "file": "ToString.cpp", + "line": 1234, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37242, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37698, + "line": 1243, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc18c0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint16_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned short" + }, + "inner": [ + { + "id": "0x558a5015ac70", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned short" + } + } + ] + }, + { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "loc": { + "offset": 37291, + "line": 1234, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37272, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37291, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520206a0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37294, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 37698, + "line": 1243, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201f498", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37300, + "line": 1235, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37354, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201e960", + "kind": "VarDecl", + "loc": { + "offset": 37304, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37300, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201f468", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f408", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5201f2e0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37322, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f2b0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37313, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a5201e9c8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37311, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37311, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5201f310", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37318, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37318, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201ea60", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37318, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37318, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5201f328", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201f3f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37327, + "file": "ToString.cpp", + "line": 1235, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f3c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37327, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37340, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5201f428", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37347, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37347, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5201f448", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37352, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37352, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201f6a0", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37360, + "line": 1236, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37399, + "col": 44, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "loc": { + "offset": 37364, + "col": 9, + "tokLen": 5 + }, + "range": { + "begin": { + "offset": 37360, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37398, + "col": 43, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "value", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5201f638", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37398, + "col": 43, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f620", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37377, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f5f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37372, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37377, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5201f5a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37382, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 37382, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5201f670", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37385, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 37385, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5201f5c0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37385, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 37385, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5201f688", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37394, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 37394, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f5d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37394, + "col": 39, + "tokLen": 4 + }, + "end": { + "offset": 37394, + "col": 39, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e960", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520205e0", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 37405, + "line": 1237, + "col": 5, + "tokLen": 2 + }, + "end": { + "offset": 37655, + "line": 1241, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5201fa50", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37409, + "line": 1237, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37508, + "line": 1238, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "||", + "inner": [ + { + "id": "0x558a5201f888", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37409, + "line": 1237, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "<", + "inner": [ + { + "id": "0x558a5201f858", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37409, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37409, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f6b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37409, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37409, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201f870", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201f838", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37452, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned short" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f820", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37448, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f7f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37417, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37448, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a504139f0", + "kind": "CXXMethodDecl", + "name": "min", + "type": { + "qualType": "unsigned short () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5201fa30", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37465, + "line": 1238, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": ">", + "inner": [ + { + "id": "0x558a5201fa00", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37465, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37465, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5201f8a8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37465, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37465, + "col": 9, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a5201fa18", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a5201f9e0", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37508, + "col": 52, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned short" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201f9c8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37504, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short (*)() noexcept" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201f998", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37473, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 37504, + "col": 48, + "tokLen": 3 + } + }, + "type": { + "qualType": "unsigned short () noexcept" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50413ac8", + "kind": "CXXMethodDecl", + "name": "max", + "type": { + "qualType": "unsigned short () noexcept" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520205c8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37511, + "col": 55, + "tokLen": 1 + }, + "end": { + "offset": 37655, + "line": 1241, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520205b0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 37521, + "line": 1239, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52020598", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 37521, + "line": 1239, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52020570", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f84840", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const std::string &)" + } + }, + "inner": [ + { + "id": "0x558a52020550", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52020548", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52020518", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 37527, + "line": 1239, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 37648, + "line": 1240, + "col": 66, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const std::string &)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52020500", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "lvalue", + "storageDuration": "full expression", + "boundToLValueRef": true, + "inner": [ + { + "id": "0x558a520204e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const basic_string, allocator>" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a520204c8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a520204c0", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52020488", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37540, + "line": 1239, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52020470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37581, + "line": 1239, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 37581, + "col": 69, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(basic_string, allocator> &&, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52020450", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37581, + "col": 69, + "tokLen": 1 + }, + "end": { + "offset": 37581, + "col": 69, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a515d5600", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (basic_string, allocator> &&, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52020420", + "kind": "MaterializeTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "xvalue", + "storageDuration": "full expression", + "inner": [ + { + "id": "0x558a5201ffa0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "temp": "0x558a5201ff98", + "dtor": { + "id": "0x558a50c7fdd8", + "kind": "CXXDestructorDecl", + "name": "~basic_string", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a5201ff60", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "std::basic_string", + "qualType": "basic_string, allocator>" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a5201ff48", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37577, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 37577, + "col": 65, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5201ff28", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37577, + "col": 65, + "tokLen": 1 + }, + "end": { + "offset": 37577, + "col": 65, + "tokLen": 1 + } + }, + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5156deb0", + "kind": "FunctionDecl", + "name": "operator+", + "type": { + "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)" + } + } + } + ] + }, + { + "id": "0x558a5201ff10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37540, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201fa80", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37540, + "col": 28, + "tokLen": 36 + }, + "end": { + "offset": 37540, + "col": 28, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"Cannot scan uint16_t from string '\"" + } + ] + }, + { + "id": "0x558a5201fac0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37579, + "col": 67, + "tokLen": 1 + }, + "end": { + "offset": 37579, + "col": 67, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201e6c0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52020438", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37610, + "line": 1240, + "col": 28, + "tokLen": 38 + }, + "end": { + "offset": 37610, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5201ffc0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37610, + "col": 28, + "tokLen": 38 + }, + "end": { + "offset": 37610, + "col": 28, + "tokLen": 38 + } + }, + "type": { + "qualType": "const char[37]" + }, + "valueCategory": "lvalue", + "value": "\"'. Value must be in range 0 - 65535.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52020690", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37661, + "line": 1242, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37695, + "col": 39, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52020660", + "kind": "CXXStaticCastExpr", + "range": { + "begin": { + "offset": 37668, + "col": 12, + "tokLen": 11 + }, + "end": { + "offset": 37695, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned short", + "qualType": "uint16_t", + "typeAliasDeclId": "0x558a50375aa0" + }, + "valueCategory": "prvalue", + "castKind": "NoOp", + "inner": [ + { + "id": "0x558a52020648", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "desugaredQualType": "unsigned short", + "qualType": "uint16_t", + "typeAliasDeclId": "0x558a50375aa0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a52020630", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "isPartOfExplicitCast": true, + "inner": [ + { + "id": "0x558a52020600", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37690, + "col": 34, + "tokLen": 5 + }, + "end": { + "offset": 37690, + "col": 34, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a5201f4c8", + "kind": "VarDecl", + "name": "value", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52020810", + "kind": "FunctionDecl", + "loc": { + "offset": 37722, + "file": "ToString.cpp", + "line": 1245, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37701, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 37856, + "line": 1248, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc1dd0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint32_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned int" + }, + "inner": [ + { + "id": "0x558a5015ac90", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned int" + } + } + ] + }, + { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "loc": { + "offset": 37750, + "line": 1245, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37731, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37750, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52021728", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37753, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 37856, + "line": 1248, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021518", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37759, + "line": 1246, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37813, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520209e0", + "kind": "VarDecl", + "loc": { + "offset": 37763, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37759, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520214e8", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021488", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a52021360", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37781, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021330", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37772, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52020a48", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37770, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37770, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52021390", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37777, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37777, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52020ae0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37777, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37777, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a520213a8", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52021470", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37786, + "file": "ToString.cpp", + "line": 1246, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52021440", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37786, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37799, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a520214a8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37806, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37806, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a520214c8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37811, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37811, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52021718", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37819, + "line": 1247, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021700", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned int", + "qualType": "uint32_t", + "typeAliasDeclId": "0x558a50375b08" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52021698", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37853, + "col": 39, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52021680", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37831, + "col": 17, + "tokLen": 5 + } + }, + "type": { + "qualType": "unsigned long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520215f0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37826, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37831, + "col": 17, + "tokLen": 5 + } + }, + "type": { + "qualType": "unsigned long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cac0f8", + "kind": "FunctionDecl", + "name": "stoul", + "type": { + "qualType": "unsigned long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a520215a0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37837, + "col": 23, + "tokLen": 1 + }, + "end": { + "offset": 37837, + "col": 23, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52020740", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520216d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37840, + "col": 26, + "tokLen": 7 + }, + "end": { + "offset": 37840, + "col": 26, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a520215c0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37840, + "col": 26, + "tokLen": 7 + }, + "end": { + "offset": 37840, + "col": 26, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a520216e8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37849, + "col": 35, + "tokLen": 4 + }, + "end": { + "offset": 37849, + "col": 35, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520215d0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37849, + "col": 35, + "tokLen": 4 + }, + "end": { + "offset": 37849, + "col": 35, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520209e0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52021880", + "kind": "FunctionDecl", + "loc": { + "offset": 37880, + "file": "ToString.cpp", + "line": 1250, + "col": 22, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 37859, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38015, + "line": 1253, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc22a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "uint64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "unsigned long" + }, + "inner": [ + { + "id": "0x558a5015acb0", + "kind": "BuiltinType", + "type": { + "qualType": "unsigned long" + } + } + ] + }, + { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "loc": { + "offset": 37908, + "line": 1250, + "col": 50, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 37889, + "col": 31, + "tokLen": 5 + }, + "end": { + "offset": 37908, + "col": 50, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52022798", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 37911, + "col": 53, + "tokLen": 1 + }, + "end": { + "offset": 38015, + "line": 1253, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022588", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 37917, + "line": 1251, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37971, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52021a50", + "kind": "VarDecl", + "loc": { + "offset": 37921, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 37917, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a52022558", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520224f8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a520223d0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37939, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520223a0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37930, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52021ab8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37928, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 37928, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52022400", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37935, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37935, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52021b50", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 37935, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 37935, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a52022418", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a520224e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37944, + "file": "ToString.cpp", + "line": 1251, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520224b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37944, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 37957, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a52022518", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37964, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 37964, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a52022538", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 37969, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 37969, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52022788", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 37977, + "line": 1252, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022770", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "uint64_t", + "typeAliasDeclId": "0x558a50375b70" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52022708", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38012, + "col": 40, + "tokLen": 1 + } + }, + "type": { + "qualType": "unsigned long long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520226f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37989, + "col": 17, + "tokLen": 6 + } + }, + "type": { + "qualType": "unsigned long long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52022660", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37984, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 37989, + "col": 17, + "tokLen": 6 + } + }, + "type": { + "qualType": "unsigned long long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cae278", + "kind": "FunctionDecl", + "name": "stoull", + "type": { + "qualType": "unsigned long long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52022610", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 37996, + "col": 24, + "tokLen": 1 + }, + "end": { + "offset": 37996, + "col": 24, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a520217b8", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52022740", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 37999, + "col": 27, + "tokLen": 7 + }, + "end": { + "offset": 37999, + "col": 27, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a52022630", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 37999, + "col": 27, + "tokLen": 7 + }, + "end": { + "offset": 37999, + "col": 27, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52022758", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38008, + "col": 36, + "tokLen": 4 + }, + "end": { + "offset": 38008, + "col": 36, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52022640", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38008, + "col": 36, + "tokLen": 4 + }, + "end": { + "offset": 38008, + "col": 36, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52021a50", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a520228f8", + "kind": "FunctionDecl", + "loc": { + "offset": 38034, + "file": "ToString.cpp", + "line": 1255, + "col": 17, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38018, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38167, + "line": 1258, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc27b8", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "int" + }, + "inner": [ + { + "id": "0x558a5015abf0", + "kind": "BuiltinType", + "type": { + "qualType": "int" + } + } + ] + }, + { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "loc": { + "offset": 38062, + "line": 1255, + "col": 45, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38043, + "col": 26, + "tokLen": 5 + }, + "end": { + "offset": 38062, + "col": 45, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a520237a0", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38065, + "col": 48, + "tokLen": 1 + }, + "end": { + "offset": 38167, + "line": 1258, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023608", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 38071, + "line": 1256, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 38125, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52022ad0", + "kind": "VarDecl", + "loc": { + "offset": 38075, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 38071, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520235d8", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023578", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a52023450", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38093, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023420", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38084, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52022b38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38082, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 38082, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a52023480", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38089, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 38089, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52022bd0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38089, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 38089, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a52023498", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52023560", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38098, + "file": "ToString.cpp", + "line": 1256, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52023530", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38098, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 38111, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a52023598", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38118, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 38118, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a520235b8", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38123, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 38123, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52023790", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38131, + "line": 1257, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38164, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023728", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38164, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023710", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38143, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520236e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38138, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 38143, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52023690", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38148, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 38148, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022828", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52023760", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38151, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 38151, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a520236b0", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 38151, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 38151, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52023778", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38160, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 38160, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a520236c0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38160, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 38160, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52022ad0", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52023900", + "kind": "FunctionDecl", + "loc": { + "offset": 38187, + "file": "ToString.cpp", + "line": 1260, + "col": 18, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38170, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 38271, + "line": 1262, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc2c90", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "bool (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "bool" + }, + "inner": [ + { + "id": "0x558a5015ab70", + "kind": "BuiltinType", + "type": { + "qualType": "bool" + } + } + ] + }, + { + "id": "0x558a52023830", + "kind": "ParmVarDecl", + "loc": { + "offset": 38215, + "line": 1260, + "col": 46, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38196, + "col": 27, + "tokLen": 5 + }, + "end": { + "offset": 38215, + "col": 46, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52023cb8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38218, + "col": 49, + "tokLen": 1 + }, + "end": { + "offset": 38271, + "line": 1262, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023ca8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38224, + "line": 1261, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 38268, + "col": 49, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023c78", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38268, + "col": 49, + "tokLen": 1 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52023c60", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38231, + "col": 12, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool (*)(const std::string &, defs::boolFormat)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52023be0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38231, + "col": 12, + "tokLen": 8 + }, + "end": { + "offset": 38231, + "col": 12, + "tokLen": 8 + } + }, + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51bc3260", + "kind": "FunctionDecl", + "name": "StringTo", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + } + } + } + ] + }, + { + "id": "0x558a52023b20", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38240, + "col": 21, + "tokLen": 1 + }, + "end": { + "offset": 38240, + "col": 21, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023830", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52023b90", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38243, + "col": 24, + "tokLen": 4 + }, + "end": { + "offset": 38261, + "col": 42, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bdf0", + "kind": "EnumConstantDecl", + "name": "OneZero", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52023ed0", + "kind": "FunctionDecl", + "loc": { + "offset": 38279, + "file": "ToString.cpp", + "line": 1264, + "col": 6, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 38274, + "col": 1, + "tokLen": 4 + }, + "end": { + "offset": 39159, + "line": 1294, + "col": 1, + "tokLen": 1 + } + }, + "isUsed": true, + "previousDecl": "0x558a51bc3260", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN15slsDetectorDefs10boolFormatE", + "type": { + "qualType": "bool (const std::string &, defs::boolFormat)" + }, + "inner": [ + { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "loc": { + "offset": 38307, + "line": 1264, + "col": 34, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38288, + "col": 15, + "tokLen": 5 + }, + "end": { + "offset": 38307, + "col": 34, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a52023df0", + "kind": "ParmVarDecl", + "loc": { + "offset": 38327, + "col": 54, + "tokLen": 6 + }, + "range": { + "begin": { + "offset": 38310, + "col": 37, + "tokLen": 4 + }, + "end": { + "offset": 38327, + "col": 54, + "tokLen": 6 + } + }, + "isUsed": true, + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + }, + { + "id": "0x558a52029c28", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38335, + "col": 62, + "tokLen": 1 + }, + "end": { + "offset": 39159, + "line": 1294, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023fd8", + "kind": "SwitchStmt", + "range": { + "begin": { + "offset": 38341, + "line": 1265, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 39157, + "line": 1293, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52023fc0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38349, + "line": 1265, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52023fa8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38349, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52023f88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38349, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38349, + "col": 13, + "tokLen": 6 + } + }, + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023df0", + "kind": "ParmVarDecl", + "name": "format", + "type": { + "desugaredQualType": "slsDetectorDefs::boolFormat", + "qualType": "defs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029bf8", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38357, + "col": 21, + "tokLen": 1 + }, + "end": { + "offset": 39157, + "line": 1293, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a520240b8", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38363, + "line": 1266, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 38582, + "line": 1272, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52024098", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38368, + "line": 1266, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0", + "inner": [ + { + "id": "0x558a52024080", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38368, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52024050", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38368, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38386, + "col": 28, + "tokLen": 9 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bd40", + "kind": "EnumConstantDecl", + "name": "TrueFalse", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52026a60", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38397, + "col": 39, + "tokLen": 1 + }, + "end": { + "offset": 38582, + "line": 1272, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52025498", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38407, + "line": 1267, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38443, + "line": 1268, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52025440", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38411, + "line": 1267, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52025428", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38413, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38413, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52025408", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38413, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38413, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520240e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38411, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38411, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520253f0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38416, + "col": 18, + "tokLen": 6 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52024100", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38416, + "col": 18, + "tokLen": 6 + }, + "end": { + "offset": 38416, + "col": 18, + "tokLen": 6 + } + }, + "type": { + "qualType": "const char[5]" + }, + "valueCategory": "lvalue", + "value": "\"true\"" + } + ] + } + ] + }, + { + "id": "0x558a52025488", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38436, + "line": 1268, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38443, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52025478", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38443, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38443, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a52026878", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38457, + "line": 1269, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38494, + "line": 1270, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52026820", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38461, + "line": 1269, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52026808", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38463, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38463, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520267e8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38463, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38463, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a520254b8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38461, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38461, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a520267d0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38466, + "col": 18, + "tokLen": 7 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520254d8", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38466, + "col": 18, + "tokLen": 7 + }, + "end": { + "offset": 38466, + "col": 18, + "tokLen": 7 + } + }, + "type": { + "qualType": "const char[6]" + }, + "valueCategory": "lvalue", + "value": "\"false\"" + } + ] + } + ] + }, + { + "id": "0x558a52026868", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38487, + "line": 1270, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38494, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52026858", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38494, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38494, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52026a48", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 38509, + "line": 1271, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52026a30", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 38509, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52026a08", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520269e8", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520269e0", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520269b0", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 38515, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38575, + "col": 75, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52026998", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38528, + "col": 28, + "tokLen": 47 + }, + "end": { + "offset": 38528, + "col": 28, + "tokLen": 47 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52026910", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38528, + "col": 28, + "tokLen": 47 + }, + "end": { + "offset": 38528, + "col": 28, + "tokLen": 47 + } + }, + "type": { + "qualType": "const char[46]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 'true' or 'false'.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52026b40", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38588, + "line": 1273, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 38795, + "line": 1279, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52026b20", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38593, + "line": 1273, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1", + "inner": [ + { + "id": "0x558a52026b08", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38593, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a52026ad8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38593, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38611, + "col": 28, + "tokLen": 5 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bd98", + "kind": "EnumConstantDecl", + "name": "OnOff", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029468", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38618, + "col": 35, + "tokLen": 1 + }, + "end": { + "offset": 38795, + "line": 1279, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52027f18", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38628, + "line": 1274, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38662, + "line": 1275, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52027ec0", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38632, + "line": 1274, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52027ea8", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38634, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38634, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52027e88", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38634, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38634, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52026b68", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38632, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38632, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52027e70", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38637, + "col": 18, + "tokLen": 4 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52026b88", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38637, + "col": 18, + "tokLen": 4 + }, + "end": { + "offset": 38637, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"on\"" + } + ] + } + ] + }, + { + "id": "0x558a52027f08", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38655, + "line": 1275, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38662, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52027ef8", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38662, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38662, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a520292e8", + "kind": "IfStmt", + "range": { + "begin": { + "offset": 38676, + "line": 1276, + "col": 9, + "tokLen": 2 + }, + "end": { + "offset": 38711, + "line": 1277, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52029290", + "kind": "CXXOperatorCallExpr", + "range": { + "begin": { + "offset": 38680, + "line": 1276, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "adl": true, + "inner": [ + { + "id": "0x558a52029278", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38682, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38682, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (*)(const basic_string, allocator> &, const char *)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a52029258", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38682, + "col": 15, + "tokLen": 2 + }, + "end": { + "offset": 38682, + "col": 15, + "tokLen": 2 + } + }, + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a51b2e6e0", + "kind": "FunctionDecl", + "name": "operator==", + "type": { + "qualType": "bool (const basic_string, allocator> &, const char *)" + } + } + } + ] + }, + { + "id": "0x558a52027f38", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38680, + "col": 13, + "tokLen": 1 + }, + "end": { + "offset": 38680, + "col": 13, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52029240", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38685, + "col": 18, + "tokLen": 5 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52027f58", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38685, + "col": 18, + "tokLen": 5 + }, + "end": { + "offset": 38685, + "col": 18, + "tokLen": 5 + } + }, + "type": { + "qualType": "const char[4]" + }, + "valueCategory": "lvalue", + "value": "\"off\"" + } + ] + } + ] + }, + { + "id": "0x558a520292d8", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38704, + "line": 1277, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38711, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a520292c8", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38711, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38711, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52029450", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 38726, + "line": 1278, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52029438", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 38726, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52029410", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520293f0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520293e8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a520293b8", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 38732, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 38788, + "col": 71, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a520293a0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38745, + "col": 28, + "tokLen": 43 + }, + "end": { + "offset": 38745, + "col": 28, + "tokLen": 43 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52029318", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 38745, + "col": 28, + "tokLen": 43 + }, + "end": { + "offset": 38745, + "col": 28, + "tokLen": 43 + } + }, + "type": { + "qualType": "const char[42]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 'on' or 'off'.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029548", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38801, + "line": 1280, + "col": 5, + "tokLen": 4 + }, + "end": { + "offset": 39083, + "line": 1290, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029528", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38806, + "line": 1280, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "2", + "inner": [ + { + "id": "0x558a52029510", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38806, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a520294e0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38806, + "col": 10, + "tokLen": 4 + }, + "end": { + "offset": 38824, + "col": 28, + "tokLen": 7 + } + }, + "type": { + "qualType": "slsDetectorDefs::boolFormat" + }, + "valueCategory": "prvalue", + "referencedDecl": { + "id": "0x558a5144bdf0", + "kind": "EnumConstantDecl", + "name": "OneZero", + "type": { + "qualType": "slsDetectorDefs::boolFormat" + } + } + } + ] + } + ] + }, + { + "id": "0x558a52029a70", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38833, + "col": 37, + "tokLen": 1 + }, + "end": { + "offset": 39083, + "line": 1290, + "col": 5, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029748", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 38843, + "line": 1281, + "col": 9, + "tokLen": 3 + }, + "end": { + "offset": 38876, + "col": 42, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029588", + "kind": "VarDecl", + "loc": { + "offset": 38847, + "col": 13, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 38843, + "col": 9, + "tokLen": 3 + }, + "end": { + "offset": 38875, + "col": 41, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "i", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a520296f8", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38875, + "col": 41, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520296e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38856, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a520296b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38851, + "col": 17, + "tokLen": 3 + }, + "end": { + "offset": 38856, + "col": 22, + "tokLen": 4 + } + }, + "type": { + "qualType": "int (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50c62038", + "kind": "FunctionDecl", + "name": "stoi", + "type": { + "qualType": "int (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a52029660", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38861, + "col": 27, + "tokLen": 1 + }, + "end": { + "offset": 38861, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52023d28", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a52029730", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38864, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 38864, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a52029680", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 38864, + "col": 30, + "tokLen": 7 + }, + "end": { + "offset": 38864, + "col": 30, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a52029690", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38873, + "col": 39, + "tokLen": 2 + }, + "end": { + "offset": 38873, + "col": 39, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029798", + "kind": "SwitchStmt", + "range": { + "begin": { + "offset": 38886, + "line": 1282, + "col": 9, + "tokLen": 6 + }, + "end": { + "offset": 39077, + "line": 1289, + "col": 9, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029780", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 38894, + "line": 1282, + "col": 17, + "tokLen": 1 + }, + "end": { + "offset": 38894, + "col": 17, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a52029760", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 38894, + "col": 17, + "tokLen": 1 + }, + "end": { + "offset": 38894, + "col": 17, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029588", + "kind": "VarDecl", + "name": "i", + "type": { + "qualType": "int" + } + } + } + ] + }, + { + "id": "0x558a52029a48", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 38897, + "col": 20, + "tokLen": 1 + }, + "end": { + "offset": 39077, + "line": 1289, + "col": 9, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029800", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38907, + "line": 1283, + "col": 9, + "tokLen": 4 + }, + "end": { + "offset": 38934, + "line": 1284, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a520297e0", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38912, + "line": 1283, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38912, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0", + "inner": [ + { + "id": "0x558a520297c0", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38912, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38912, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + }, + { + "id": "0x558a52029838", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38927, + "line": 1284, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38934, + "col": 20, + "tokLen": 5 + } + }, + "inner": [ + { + "id": "0x558a52029828", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38934, + "col": 20, + "tokLen": 5 + }, + "end": { + "offset": 38934, + "col": 20, + "tokLen": 5 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": false + } + ] + } + ] + }, + { + "id": "0x558a52029888", + "kind": "CaseStmt", + "range": { + "begin": { + "offset": 38949, + "line": 1285, + "col": 9, + "tokLen": 4 + }, + "end": { + "offset": 38976, + "line": 1286, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a52029868", + "kind": "ConstantExpr", + "range": { + "begin": { + "offset": 38954, + "line": 1285, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38954, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1", + "inner": [ + { + "id": "0x558a52029848", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 38954, + "col": 14, + "tokLen": 1 + }, + "end": { + "offset": 38954, + "col": 14, + "tokLen": 1 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "1" + } + ] + }, + { + "id": "0x558a520298c0", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 38969, + "line": 1286, + "col": 13, + "tokLen": 6 + }, + "end": { + "offset": 38976, + "col": 20, + "tokLen": 4 + } + }, + "inner": [ + { + "id": "0x558a520298b0", + "kind": "CXXBoolLiteralExpr", + "range": { + "begin": { + "offset": 38976, + "col": 20, + "tokLen": 4 + }, + "end": { + "offset": 38976, + "col": 20, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "value": true + } + ] + } + ] + }, + { + "id": "0x558a52029a28", + "kind": "DefaultStmt", + "range": { + "begin": { + "offset": 38990, + "line": 1287, + "col": 9, + "tokLen": 7 + }, + "end": { + "offset": 39066, + "line": 1288, + "col": 68, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029a10", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 39011, + "col": 13, + "tokLen": 5 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a520299f8", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 39011, + "col": 13, + "tokLen": 5 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a520299d0", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a520299b0", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a520299a8", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52029978", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 39017, + "col": 19, + "tokLen": 12 + }, + "end": { + "offset": 39066, + "col": 68, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52029960", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39030, + "col": 32, + "tokLen": 36 + }, + "end": { + "offset": 39030, + "col": 32, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a520298e0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39030, + "col": 32, + "tokLen": 36 + }, + "end": { + "offset": 39030, + "col": 32, + "tokLen": 36 + } + }, + "type": { + "qualType": "const char[35]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean. Expecting 0 or 1.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "0x558a52029bd8", + "kind": "DefaultStmt", + "range": { + "begin": { + "offset": 39089, + "line": 1291, + "col": 5, + "tokLen": 7 + }, + "end": { + "offset": 39150, + "line": 1292, + "col": 53, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029bc0", + "kind": "ExprWithCleanups", + "range": { + "begin": { + "offset": 39106, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "cleanupsHaveSideEffects": true, + "inner": [ + { + "id": "0x558a52029ba8", + "kind": "CXXThrowExpr", + "range": { + "begin": { + "offset": 39106, + "col": 9, + "tokLen": 5 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "qualType": "void" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a52029b80", + "kind": "CXXFunctionalCastExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "castKind": "ConstructorConversion", + "conversionFunc": { + "id": "0x558a50f849b0", + "kind": "CXXConstructorDecl", + "name": "RuntimeError", + "type": { + "qualType": "void (const char *)" + } + }, + "inner": [ + { + "id": "0x558a52029b60", + "kind": "CXXBindTemporaryExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "temp": "0x558a52029b58", + "dtor": { + "id": "0x558a50f85298", + "kind": "CXXDestructorDecl", + "name": "~RuntimeError", + "type": { + "qualType": "void () noexcept" + } + }, + "inner": [ + { + "id": "0x558a52029b28", + "kind": "CXXConstructExpr", + "range": { + "begin": { + "offset": 39112, + "col": 15, + "tokLen": 12 + }, + "end": { + "offset": 39150, + "col": 53, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "sls::RuntimeError", + "qualType": "RuntimeError" + }, + "valueCategory": "prvalue", + "ctorType": { + "qualType": "void (const char *)" + }, + "hadMultipleCandidates": true, + "constructionKind": "complete", + "inner": [ + { + "id": "0x558a52029b10", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39125, + "col": 28, + "tokLen": 25 + }, + "end": { + "offset": 39125, + "col": 28, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a52029aa0", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39125, + "col": 28, + "tokLen": 25 + }, + "end": { + "offset": 39125, + "col": 28, + "tokLen": 25 + } + }, + "type": { + "qualType": "const char[24]" + }, + "valueCategory": "lvalue", + "value": "\"Unknown boolean format.\"" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] +}, +{ + "id": "0x558a52029d80", + "kind": "FunctionDecl", + "loc": { + "offset": 39182, + "file": "ToString.cpp", + "line": 1296, + "col": 21, + "tokLen": 8 + }, + "range": { + "begin": { + "offset": 39162, + "col": 1, + "tokLen": 8 + }, + "end": { + "offset": 39315, + "line": 1299, + "col": 1, + "tokLen": 1 + } + }, + "previousDecl": "0x558a51bc34a0", + "name": "StringTo", + "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", + "type": { + "qualType": "int64_t (const std::string &)" + }, + "inner": [ + { + "kind": "TemplateArgument", + "type": { + "qualType": "long" + }, + "inner": [ + { + "id": "0x558a5015ac10", + "kind": "BuiltinType", + "type": { + "qualType": "long" + } + } + ] + }, + { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "loc": { + "offset": 39210, + "line": 1296, + "col": 49, + "tokLen": 1 + }, + "range": { + "begin": { + "offset": 39191, + "col": 30, + "tokLen": 5 + }, + "end": { + "offset": 39210, + "col": 49, + "tokLen": 1 + } + }, + "isUsed": true, + "name": "s", + "type": { + "qualType": "const std::string &" + } + }, + { + "id": "0x558a5202ac80", + "kind": "CompoundStmt", + "range": { + "begin": { + "offset": 39213, + "col": 52, + "tokLen": 1 + }, + "end": { + "offset": 39315, + "line": 1299, + "col": 1, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5202aa88", + "kind": "DeclStmt", + "range": { + "begin": { + "offset": 39219, + "line": 1297, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 39273, + "col": 59, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a52029f50", + "kind": "VarDecl", + "loc": { + "offset": 39223, + "col": 9, + "tokLen": 4 + }, + "range": { + "begin": { + "offset": 39219, + "col": 5, + "tokLen": 3 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "isUsed": true, + "name": "base", + "type": { + "qualType": "int" + }, + "init": "c", + "inner": [ + { + "id": "0x558a5202aa58", + "kind": "ConditionalOperator", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202a9f8", + "kind": "BinaryOperator", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "qualType": "bool" + }, + "valueCategory": "prvalue", + "opcode": "!=", + "inner": [ + { + "id": "0x558a5202a8d0", + "kind": "CXXMemberCallExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39241, + "col": 27, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202a8a0", + "kind": "MemberExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39232, + "col": 18, + "tokLen": 4 + } + }, + "type": { + "qualType": "" + }, + "valueCategory": "prvalue", + "name": "find", + "isArrow": false, + "referencedMemberDecl": "0x558a50c9b598", + "inner": [ + { + "id": "0x558a52029fb8", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39230, + "col": 16, + "tokLen": 1 + }, + "end": { + "offset": 39230, + "col": 16, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + } + ] + }, + { + "id": "0x558a5202a900", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39237, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 39237, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char *" + }, + "valueCategory": "prvalue", + "castKind": "ArrayToPointerDecay", + "inner": [ + { + "id": "0x558a5202a050", + "kind": "StringLiteral", + "range": { + "begin": { + "offset": 39237, + "col": 23, + "tokLen": 4 + }, + "end": { + "offset": 39237, + "col": 23, + "tokLen": 4 + } + }, + "type": { + "qualType": "const char[3]" + }, + "valueCategory": "lvalue", + "value": "\"0x\"" + } + ] + }, + { + "id": "0x558a5202a918", + "kind": "CXXDefaultArgExpr", + "range": { + "begin": {}, + "end": {} + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5201d188", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 101453, + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h", + "line": 2973, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "IntegralCast", + "inner": [ + { + "id": "0x558a50b7f990", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + }, + "end": { + "offset": 101453, + "col": 49, + "tokLen": 1, + "includedFrom": { + "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string" + } + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "0" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5202a9e0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39246, + "file": "ToString.cpp", + "line": 1297, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "unsigned long", + "qualType": "typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5202a9b0", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39246, + "col": 32, + "tokLen": 3 + }, + "end": { + "offset": 39259, + "col": 45, + "tokLen": 4 + } + }, + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a518bd2a0", + "kind": "VarDecl", + "name": "npos", + "type": { + "desugaredQualType": "const unsigned long", + "qualType": "const typename basic_string, allocator>::size_type", + "typeAliasDeclId": "0x558a50c6cac0" + } + }, + "nonOdrUseReason": "constant" + } + ] + } + ] + }, + { + "id": "0x558a5202aa18", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 39266, + "col": 52, + "tokLen": 2 + }, + "end": { + "offset": 39266, + "col": 52, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "16" + }, + { + "id": "0x558a5202aa38", + "kind": "IntegerLiteral", + "range": { + "begin": { + "offset": 39271, + "col": 57, + "tokLen": 2 + }, + "end": { + "offset": 39271, + "col": 57, + "tokLen": 2 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "value": "10" + } + ] + } + ] + } + ] + }, + { + "id": "0x558a5202ac70", + "kind": "ReturnStmt", + "range": { + "begin": { + "offset": 39279, + "line": 1298, + "col": 5, + "tokLen": 6 + }, + "end": { + "offset": 39312, + "col": 38, + "tokLen": 1 + } + }, + "inner": [ + { + "id": "0x558a5202ac08", + "kind": "CallExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39312, + "col": 38, + "tokLen": 1 + } + }, + "type": { + "qualType": "long" + }, + "valueCategory": "prvalue", + "inner": [ + { + "id": "0x558a5202abf0", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39291, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "long (*)(const string &, size_t *, int)" + }, + "valueCategory": "prvalue", + "castKind": "FunctionToPointerDecay", + "inner": [ + { + "id": "0x558a5202ab60", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39286, + "col": 12, + "tokLen": 3 + }, + "end": { + "offset": 39291, + "col": 17, + "tokLen": 4 + } + }, + "type": { + "qualType": "long (const string &, size_t *, int)" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a50cab248", + "kind": "FunctionDecl", + "name": "stol", + "type": { + "qualType": "long (const string &, size_t *, int)" + } + } + } + ] + }, + { + "id": "0x558a5202ab10", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39296, + "col": 22, + "tokLen": 1 + }, + "end": { + "offset": 39296, + "col": 22, + "tokLen": 1 + } + }, + "type": { + "desugaredQualType": "const std::basic_string", + "qualType": "const std::string", + "typeAliasDeclId": "0x558a50689410" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029cb0", + "kind": "ParmVarDecl", + "name": "s", + "type": { + "qualType": "const std::string &" + } + } + }, + { + "id": "0x558a5202ac40", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39299, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 39299, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "size_t *" + }, + "valueCategory": "prvalue", + "castKind": "NullToPointer", + "inner": [ + { + "id": "0x558a5202ab30", + "kind": "CXXNullPtrLiteralExpr", + "range": { + "begin": { + "offset": 39299, + "col": 25, + "tokLen": 7 + }, + "end": { + "offset": 39299, + "col": 25, + "tokLen": 7 + } + }, + "type": { + "qualType": "std::nullptr_t" + }, + "valueCategory": "prvalue" + } + ] + }, + { + "id": "0x558a5202ac58", + "kind": "ImplicitCastExpr", + "range": { + "begin": { + "offset": 39308, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 39308, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "prvalue", + "castKind": "LValueToRValue", + "inner": [ + { + "id": "0x558a5202ab40", + "kind": "DeclRefExpr", + "range": { + "begin": { + "offset": 39308, + "col": 34, + "tokLen": 4 + }, + "end": { + "offset": 39308, + "col": 34, + "tokLen": 4 + } + }, + "type": { + "qualType": "int" + }, + "valueCategory": "lvalue", + "referencedDecl": { + "id": "0x558a52029f50", + "kind": "VarDecl", + "name": "base", + "type": { + "qualType": "int" + } + } + } + ] + } + ] + } + ] + } + ] + } + ] +} +] \ No newline at end of file diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index 6b84ffff1..d6859ae06 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -1969,7 +1969,7 @@ rx_threads: chipversion: inherit_actions: GET_COMMAND - help: "\n\t[Jungfrau] Returns chip version. Can be 1.0, 1.1 or 1.2" + help: "\n\t[Jungfrau] Returns chip version as string. For example, 'v1.1' or 'v1.2 Low Noise'" actions: GET: function: getChipVersion diff --git a/slsDetectorSoftware/generator/extended_commands.yaml b/slsDetectorSoftware/generator/extended_commands.yaml index 0134cf5ed..35a24572c 100644 --- a/slsDetectorSoftware/generator/extended_commands.yaml +++ b/slsDetectorSoftware/generator/extended_commands.yaml @@ -1117,7 +1117,8 @@ chipversion: store_result_in_t: true command_name: chipversion function_alias: chipversion - help: "\n\t[Jungfrau] Returns chip version. Can be 1.0 or 1.1" + help: "\n\t[Jungfrau] Returns chip version as string. For example, 'v1.1' or 'v1.2\ + \ Low Noise'" infer_action: true template: true clearbit: diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index f5118e9e6..d55362359 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -1301,7 +1301,7 @@ class Detector { * ************************************************/ /** [Jungfrau] */ - Result getChipVersion(Positions pos = {}) const; + Result getChipVersion(Positions pos = {}) const; /** [Jungfrau][Moench] */ Result getThresholdTemperature(Positions pos = {}) const; diff --git a/slsDetectorSoftware/src/Caller.cpp b/slsDetectorSoftware/src/Caller.cpp index 690387c81..c7f6efac9 100644 --- a/slsDetectorSoftware/src/Caller.cpp +++ b/slsDetectorSoftware/src/Caller.cpp @@ -1427,7 +1427,7 @@ std::string Caller::chipversion(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Jungfrau] Returns chip version. Can be 1.0 or 1.1 )V0G0N" + [Jungfrau] Returns chip version as string. For example, 'v1.1' or 'v1.2 Low Noise' )V0G0N" << std::endl; return os.str(); } diff --git a/slsDetectorSoftware/src/CallerSpecial.cpp b/slsDetectorSoftware/src/CallerSpecial.cpp index dc2ae8c6c..2ece1cd04 100644 --- a/slsDetectorSoftware/src/CallerSpecial.cpp +++ b/slsDetectorSoftware/src/CallerSpecial.cpp @@ -313,6 +313,8 @@ std::string Caller::versions(int action) { std::string vBebFirmware = "Unknown"; std::string vFeblFirmware = "Unknown"; std::string vFebrFirmware = "Unknown"; + bool jungfrau = false; + std::string vChipVersion = "Unknown"; bool receiver = false; std::string vReceiver = "Unknown"; @@ -323,6 +325,7 @@ std::string Caller::versions(int action) { // shared memory has detectors vType = OutString(det->getDetectorType()); eiger = (det->getDetectorType().squash() == defs::EIGER); + jungfrau = (det->getDetectorType().squash() == defs::JUNGFRAU); receiver = det->getUseReceiverFlag().squash(false); if (receiver) { // cannot connect to receiver @@ -350,6 +353,10 @@ std::string Caller::versions(int action) { vFebrFirmware = OutString(det->getFrontEndFirmwareVersion( defs::FRONT_RIGHT, std::vector{det_id})); } + if (jungfrau) { + vChipVersion = OutString( + det->getChipVersion(std::vector{det_id})); + } } catch (const std::exception &e) { } } @@ -364,6 +371,9 @@ std::string Caller::versions(int action) { } else { os << "\nFirmware : " << vFirmware; } + if (jungfrau) { + os << "\nChip : " << vChipVersion; + } os << "\nServer : " << vServer << "\nKernel : " << vKernel << "\nHardware : " << vHardware; diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 405f3914f..0e08ce5be 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1793,7 +1793,7 @@ void Detector::setTop(bool value, Positions pos) { } // Jungfrau/moench Specific -Result Detector::getChipVersion(Positions pos) const { +Result Detector::getChipVersion(Positions pos) const { return pimpl->Parallel(&Module::getChipVersion, pos); } diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 4c487d6a6..e22d5281b 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1851,8 +1851,10 @@ void Module::setTop(bool value) { } // Jungfrau/Moench Specific -double Module::getChipVersion() const { - return (sendToDetector(F_GET_CHIP_VERSION)) / 10.00; +std::string Module::getChipVersion() const { + char retval[MAX_STR_LENGTH]{}; + sendToDetector(F_GET_CHIP_VERSION, nullptr, retval); + return retval; } int Module::getThresholdTemperature() const { diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 49d7812ac..ded7c28f8 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -401,7 +401,7 @@ class Module : public virtual slsDetectorDefs { * Jungfrau/Moench Specific * * * * ************************************************/ - double getChipVersion() const; + std::string getChipVersion() const; int getThresholdTemperature() const; void setThresholdTemperature(int val); bool getTemperatureControl() const; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp index f2204d154..3ce1ec92a 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp @@ -8,8 +8,18 @@ #include "tests/globals.h" #include "catch.hpp" +#include namespace sls { +int chipVersionToX10(const std::string &chipVersion) { + static const std::regex versionRegex(R"(v?\s*([0-9]+)\.([0-9]+))", + std::regex::icase); + std::smatch match; + if (!std::regex_search(chipVersion, match, versionRegex)) { + throw sls::RuntimeError("Could not parse chip version: " + chipVersion); + } + return std::stoi(match[1].str()) * 10 + std::stoi(match[2].str()); +} namespace acq = sls::test::acquire; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.h b/slsDetectorSoftware/tests/Caller/test-Caller-global.h index c3b35766f..eabedbf7e 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.h +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.h @@ -8,10 +8,13 @@ #include #include #include +#include #include namespace sls { +int chipVersionToX10(const std::string &chipVersion); + namespace acq = sls::test::acquire; namespace mf = sls::test::master_file; namespace checks = sls::test::checks; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp index acfc88521..0d09c1f74 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp @@ -285,7 +285,7 @@ TEST_CASE("extrastoragecells", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { - auto chipVersion = det.getChipVersion().squash() * 10; + auto chipVersion = chipVersionToX10(det.getChipVersion().squash()); // chip version 1.0 and 1.2 if (chipVersion == 10 || chipVersion == 12) { auto prev_val = det.getNumberOfAdditionalStorageCells().tsquash( @@ -335,8 +335,9 @@ TEST_CASE("storagecell_start", "[.detectorintegration]") { caller.call("storagecell_start", {"1"}, -1, PUT, oss); REQUIRE(oss.str() == "storagecell_start 1\n"); } - // chip version 1.0 - if (det.getChipVersion().squash() * 10 == 10) { + auto chipVersion = chipVersionToX10(det.getChipVersion().squash()); + // chip version 1.0 and chip version 1.2 + if (chipVersion == 10 || chipVersion == 12) { std::ostringstream oss; caller.call("storagecell_start", {"15"}, -1, PUT, oss); REQUIRE(oss.str() == "storagecell_start 15\n"); @@ -375,7 +376,7 @@ TEST_CASE("storagecell_delay", "[.detectorintegration]") { auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { // chip version 1.0 and 1.2 - auto chipVersion = det.getChipVersion().squash() * 10; + auto chipVersion = chipVersionToX10(det.getChipVersion().squash()); if (chipVersion == 10 || chipVersion == 12) { auto prev_val = det.getStorageCellDelay(); { @@ -466,7 +467,7 @@ TEST_CASE("filtercells", "[.detectorintegration]") { auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { // chip version 1.1 - if (det.getChipVersion().squash() * 10 == 11) { + if (chipVersionToX10(det.getChipVersion().squash()) == 11) { auto prev_val = det.getNumberOfFilterCells(); { std::ostringstream oss; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index aa3df3402..fa7c55d50 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -1121,13 +1121,16 @@ TEST_CASE("readoutspeed", "[.detectorintegration]") { det_type == defs::MOENCH || det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3) { auto prev_val = det.getReadoutSpeed(); + bool fullSpeedSupportedJungfrauBoards = false; + if (det_type == defs::JUNGFRAU) { + auto chipVersion = chipVersionToX10(det.getChipVersion().squash()); + fullSpeedSupportedJungfrauBoards = (chipVersion >= 11); + } - // full speed for jungfrau/moench only works for new boards (chipv1.1 is - // with new board [hw1.0 and chipv1.0 not tested here]) - if (((det_type == defs::JUNGFRAU) && - det.getChipVersion().squash() * 10 == 11) || - det_type == defs::EIGER || det_type == defs::MOENCH || - det_type == defs::MYTHEN3) { + // full speed for jungfrau/moench only works for new boards [hw1.0 and + // chipv1.0 not tested here] + if (fullSpeedSupportedJungfrauBoards || det_type == defs::EIGER || + det_type == defs::MOENCH || det_type == defs::MYTHEN3) { std::ostringstream oss1, oss2, oss3, oss4; caller.call("readoutspeed", {"0"}, -1, PUT, oss1); REQUIRE(oss1.str() == "readoutspeed full_speed\n"); @@ -1693,10 +1696,9 @@ TEST_CASE("filterresistor", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); - // only for chipv1.1 bool hasFeature = false; if (det_type == defs::JUNGFRAU) { - auto chipVersion = det.getChipVersion().squash() * 10; + auto chipVersion = chipVersionToX10(det.getChipVersion().squash()); hasFeature = (chipVersion == 11 || chipVersion == 12); } @@ -1867,9 +1869,8 @@ TEST_CASE("currentsource", "[.detectorintegration]") { else { int chipVersion = 10; if (det_type == defs::JUNGFRAU) { - chipVersion = det.getChipVersion().tsquash( - "inconsistent chip versions to test") * - 10; + chipVersion = chipVersionToX10(det.getChipVersion().tsquash( + "inconsistent chip versions to test")); } if (chipVersion == 10) { REQUIRE_THROWS(caller.call("currentsource", {"1"}, -1, PUT)); @@ -1910,7 +1911,7 @@ TEST_CASE("currentsource", "[.detectorintegration]") { "currentsource [enabled, nofix, 63]\n"); } } - // chipv1.1 abd chip v1.2 + // chipv1.1 and chip v1.2 else { REQUIRE_THROWS(caller.call("currentsource", {"1"}, -1, PUT)); REQUIRE_THROWS( From 0ad71c4a29588ed6d53142233a6dfc69c848b199 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 18 Aug 2026 11:18:44 +0200 Subject: [PATCH 07/21] refactored rx_roi tests a bit (#1530) --- .../tests/Caller/test-Caller-rx.cpp | 706 +++++++++--------- 1 file changed, 354 insertions(+), 352 deletions(-) diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp index 80d7e322d..11635dfc4 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp @@ -469,6 +469,354 @@ TEST_CASE("rx_arping", "[.detectorintegration]") { } } } + +void test_rx_roi_2d_multi_horizontal_ports(Detector &det, Caller &caller) { + auto det_type = det.getDetectorType().squash(); + auto portSize = det.getPortSize()[0]; + int delta = 50; + + std::string stringMin = std::to_string(portSize.x); + std::string stringMax = std::to_string(portSize.x + 1); + + // separated by space is allowed + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, 20, 30]", "[" + stringMin + ", " + stringMax + ", 20, 30]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon with quotes is allowed (skips + // cmdParser) + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, 20, 30];[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [" + stringMin + ", " + + stringMax + ", 20, 30]]\n"); + + // setting to only one port and verify individual roi + { + REQUIRE_NOTHROW(caller.call("rx_roi", {"[5, 10, 20, 30]"}, -1, PUT)); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + // eiger returns 2 values for 2 ports per module + if (det_type == defs::EIGER) { + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); + + } + // others return only 1 roi per module (1 port per module) + else { + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); + } + if (det.size() > 1) { + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); + // eiger returns 2 values for 2 ports per module + if (det_type == defs::EIGER) { + REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); + + } + // others return only 1 roi per module (1 port per + // module) + else { + REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); + } + } + } + // verify individual roi + { + stringMin = std::to_string(portSize.x - delta); + stringMax = std::to_string(portSize.x + delta); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", {"[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == + "rx_roi [[" + stringMin + ", " + stringMax + ", 20, 30]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + // eiger returns 2 values for 2 ports per module + if (det_type == defs::EIGER) { + REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + + std::to_string(portSize.x - 1) + + ", 20, 30], [0, " + + std::to_string(delta) + ", 20, 30]]\n"); + } + // others return only 1 roi per module (1 port per module) + else { + REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + + std::to_string(portSize.x - 1) + + ", 20, 30]]\n"); + } + } +} + +void test_rx_roi_2d_multi_vertical_ports(Detector &det, Caller &caller) { + auto det_type = det.getDetectorType().squash(); + auto portSize = det.getPortSize()[0]; + int delta = 50; + int numinterfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of interfaces"); + + std::string stringMin = std::to_string(portSize.y); + std::string stringMax = std::to_string(portSize.y + 1); + + // separated by space is allowed + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, 20, 30]", "[25, 28, " + stringMin + ", " + stringMax + "]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon is allowed with quotes (skips + // cmdParser) + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, 20, 30];[25, 28, " + stringMin + ", " + stringMax + "]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [25, 28, " + stringMin + + ", " + stringMax + "]]\n"); + + // setting to only one port and verify individual roi + { + REQUIRE_NOTHROW(caller.call("rx_roi", {"[ 5, 10, 20, 30]"}, -1, PUT)); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + + // 2 ports + if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det_type == defs::EIGER)) { + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); + } + // others return only 1 roi per module (1 port per module) + else { + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); + } + if (det.size() > 2) { + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); + // 2 ports + if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det_type == defs::EIGER)) { + REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); + } + // others return only 1 roi per module (1 port per + // module) + else { + REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); + } + } + } + // verify individual roi + { + stringMin = std::to_string(portSize.y - delta); + stringMax = std::to_string(portSize.y + delta); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", {"[ 20, 30, " + stringMin + ", " + stringMax + "]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == + "rx_roi [[20, 30, " + stringMin + ", " + stringMax + "]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + + // non-eiger with 2 interfaces returns 2 values for 2 ports + // per module + if ((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) { + REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "], [20, 30, 0, " + + std::to_string(delta) + "]]\n"); + } + // others return only 1 roi per module (1 port per module) + else { + // (eiger 2 ports) + if (det_type == defs::EIGER) { + REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "], [0, 0, 0, 0]]\n"); + } else { + REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "]]\n"); + } + } + } +} + +void test_rx_roi_1d(Detector &det, Caller &caller) { + defs::xy detsize = det.getDetectorSize(); + + { + std::ostringstream oss; + caller.call("rx_roi", {"5", "10"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); + } + { + std::ostringstream oss; + caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); + } + REQUIRE_THROWS(caller.call("rx_roi", {"0", "0"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_roi", {"-1", "-1"}, -1, PUT)); + // xmin > xmax + REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, -1, -1]"}, -1, PUT)); + // outside detector bounds + REQUIRE_THROWS(caller.call( + "rx_roi", {"[95," + std::to_string(detsize.x + 5) + ", -1, -1]"}, -1, + PUT)); + // module level not allowed + REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, -1, -1]"}, 0, PUT)); + + // vector of rois + // square brackets missing + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, -1, -1]; 25, 30, -1, -1]"}, -1, PUT)); + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, -1, -1]; [25, 30, -1, -1"}, -1, PUT)); + // invalid roi, 4 parts expected + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, -1] [25, 30, -1, -1]"}, -1, PUT)); + // overlapping rois + REQUIRE_THROWS( + caller.call("rx_roi", {"[0, 10,-1, -1] [5, 15, -1, -1]"}, -1, PUT)); + + // multiple modules + if (det.size() == 2) { + auto moduleSize = det.getModuleSize()[0]; + std::string stringMin = std::to_string(moduleSize.x); + std::string stringMax = std::to_string(moduleSize.x + 1); + + // separated by space is allowed + REQUIRE_NOTHROW( + caller.call("rx_roi", + {"[5, 10, -1, -1]", + "[" + stringMin + ", " + stringMax + ", -1, -1]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon with quotes is allowed (skips + // cmdParser) + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, -1, -1];[" + stringMin + ", " + stringMax + ", -1, -1]"}, + -1, PUT, oss)); + REQUIRE(oss.str() == + "rx_roi [[5, 10], [" + stringMin + ", " + stringMax + "]]\n"); + + // setting to only one port and verify individual roi + { + REQUIRE_NOTHROW( + caller.call("rx_roi", {"[5, 10, -1, -1]"}, -1, PUT)); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); + REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); + REQUIRE(oss1.str() == "rx_roi [[0, 0]]\n"); + } + // verify individual roi + { + stringMin = std::to_string(moduleSize.x - 50); + stringMax = std::to_string(moduleSize.x + 50); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", {"[" + stringMin + ", " + stringMax + "]"}, -1, PUT, + oss)); + REQUIRE(oss.str() == + "rx_roi [[" + stringMin + ", " + stringMax + "]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + + std::to_string(moduleSize.x - 1) + + "]]\n"); + } + } + // valid roi before acquiring + else { + std::ostringstream oss; + caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); + } +} + +void test_rx_roi_2d(Detector &det, Caller &caller) { + auto det_type = det.getDetectorType().squash(); + defs::xy detsize = det.getDetectorSize(); + int numinterfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of interfaces"); + + { + std::ostringstream oss; + caller.call("rx_roi", {"10", "15", "1", "5"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[10, 15, 1, 5]]\n"); + } + { + std::ostringstream oss; + caller.call("rx_roi", {"10", "22", "18", "19"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[10, 22, 18, 19]]\n"); + } + { + std::ostringstream oss; + caller.call("rx_roi", + {"1", std::to_string(detsize.x - 5), "1", + std::to_string(detsize.y - 5)}, + -1, PUT, oss); + REQUIRE(oss.str() == + std::string("rx_roi [[1, ") + std::to_string(detsize.x - 5) + + std::string(", 1, ") + std::to_string(detsize.y - 5) + + std::string("]]\n")); + } + REQUIRE_THROWS(caller.call("rx_roi", {"0", "0", "0", "0"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_roi", {"-1", "-1", "-1", "-1"}, -1, PUT)); + // xmin > xmax + REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, 0, 10]"}, -1, PUT)); + // ymin > ymax + REQUIRE_THROWS(caller.call("rx_roi", {"[0, 10, 20, 5]"}, -1, PUT)); + // outside detector bounds + REQUIRE_THROWS(caller.call( + "rx_roi", {"[95," + std::to_string(detsize.x + 5) + ", 0, 10]"}, -1, + PUT)); + REQUIRE_THROWS(caller.call( + "rx_roi", {"[95, 100, 0, " + std::to_string(detsize.y + 5) + "]"}, -1, + PUT)); + // module level not allowed + REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, 20, 30]"}, 0, PUT)); + + // vector of rois + // square brackets missing + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, 20, 30]; 25, 30, 14, 15]"}, -1, PUT)); + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, 20, 30]; [25, 30, 14, 15"}, -1, PUT)); + // invalid roi, 4 parts expected + REQUIRE_THROWS( + caller.call("rx_roi", {"[5, 20, 20] [25, 30, 14, 15]"}, -1, PUT)); + // overlapping rois + REQUIRE_THROWS( + caller.call("rx_roi", {"[0, 10, 0, 10] [5, 15, 0, 10]"}, -1, PUT)); + REQUIRE_THROWS( + caller.call("rx_roi", {"[0, 10, 0, 10] [0, 10, 9, 11]"}, -1, PUT)); + + // multiple ports horizontally + if (det_type == defs::EIGER || + (det.size() == 2 && det.getModuleGeometry().x > 1)) { + test_rx_roi_2d_multi_horizontal_ports(det, caller); + } + // valid roi before acquiring + else { + std::ostringstream oss; + caller.call("rx_roi", + {"1", std::to_string(detsize.x - 5), "1", + std::to_string(detsize.y - 5)}, + -1, PUT, oss); + REQUIRE(oss.str() == + std::string("rx_roi [[1, ") + std::to_string(detsize.x - 5) + + std::string(", 1, ") + std::to_string(detsize.y - 5) + + std::string("]]\n")); + } + + // multiple ports vertically + if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det.size() == 2 && det.getModuleGeometry().y > 1)) { + } +} + TEST_CASE("rx_roi", "[.detectorintegration][.disable_check_data_file]") { Detector det; Caller caller(&det); @@ -478,365 +826,19 @@ TEST_CASE("rx_roi", "[.detectorintegration][.disable_check_data_file]") { REQUIRE_THROWS(caller.call("rx_roi", {"5", "10"}, -1, PUT)); } else { auto prev_val = det.getRxROI(); - defs::xy detsize = det.getDetectorSize(); - auto portSize = det.getPortSize()[0]; - int delta = 50; - int numinterfaces = det.getNumberofUDPInterfaces().tsquash( - "inconsistent number of interfaces"); // 1d - if (det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3) { - { - std::ostringstream oss; - caller.call("rx_roi", {"5", "10"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); - } - { - std::ostringstream oss; - caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); - } - REQUIRE_THROWS(caller.call("rx_roi", {"0", "0"}, -1, PUT)); - REQUIRE_THROWS(caller.call("rx_roi", {"-1", "-1"}, -1, PUT)); - // xmin > xmax - REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, -1, -1]"}, -1, PUT)); - // outside detector bounds - REQUIRE_THROWS(caller.call( - "rx_roi", - {"[95," + std::to_string(detsize.x + 5) + ", -1, -1]"}, -1, - PUT)); - // module level not allowed - REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, -1, -1]"}, 0, PUT)); - - // vector of rois - // square brackets missing - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, -1, -1]; 25, 30, -1, -1]"}, -1, PUT)); - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, -1, -1]; [25, 30, -1, -1"}, -1, PUT)); - // invalid roi, 4 parts expected - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, -1] [25, 30, -1, -1]"}, -1, PUT)); - // overlapping rois - REQUIRE_THROWS(caller.call( - "rx_roi", {"[0, 10,-1, -1] [5, 15, -1, -1]"}, -1, PUT)); - - if (det.size() == 2) { - auto moduleSize = det.getModuleSize()[0]; - std::string stringMin = std::to_string(moduleSize.x); - std::string stringMax = std::to_string(moduleSize.x + 1); - - // separated by space is allowed - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, -1, -1]", - "[" + stringMin + ", " + stringMax + ", -1, -1]"}, - -1, PUT)); - std::ostringstream oss; - // separated by semicolon with quotes is allowed (skips - // cmdParser) - REQUIRE_NOTHROW(caller.call("rx_roi", - {"[5, 10, -1, -1];[" + stringMin + - ", " + stringMax + ", -1, -1]"}, - -1, PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[5, 10], [" + stringMin + ", " + - stringMax + "]]\n"); - - // setting to only one port and verify individual roi - { - REQUIRE_NOTHROW( - caller.call("rx_roi", {"[5, 10, -1, -1]"}, -1, PUT)); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); - REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); - REQUIRE(oss1.str() == "rx_roi [[0, 0]]\n"); - } - // verify individual roi - { - stringMin = std::to_string(moduleSize.x - 50); - stringMax = std::to_string(moduleSize.x + 50); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", {"[" + stringMin + ", " + stringMax + "]"}, - -1, PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[" + stringMin + ", " + - stringMax + "]]\n"); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); - REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + - std::to_string(moduleSize.x - 1) + - "]]\n"); - } - } - // valid roi before acquiring - else { - std::ostringstream oss; - caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); - } - } + if (det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3) + test_rx_roi_1d(det, caller); // 2d eiger, jungfrau, moench - else { - { - std::ostringstream oss; - caller.call("rx_roi", {"10", "15", "1", "5"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[10, 15, 1, 5]]\n"); - } - { - std::ostringstream oss; - caller.call("rx_roi", {"10", "22", "18", "19"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[10, 22, 18, 19]]\n"); - } - { - std::ostringstream oss; - caller.call("rx_roi", - {"1", std::to_string(detsize.x - 5), "1", - std::to_string(detsize.y - 5)}, - -1, PUT, oss); - REQUIRE(oss.str() == std::string("rx_roi [[1, ") + - std::to_string(detsize.x - 5) + - std::string(", 1, ") + - std::to_string(detsize.y - 5) + - std::string("]]\n")); - } - REQUIRE_THROWS( - caller.call("rx_roi", {"0", "0", "0", "0"}, -1, PUT)); - REQUIRE_THROWS( - caller.call("rx_roi", {"-1", "-1", "-1", "-1"}, -1, PUT)); - // xmin > xmax - REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, 0, 10]"}, -1, PUT)); - // ymin > ymax - REQUIRE_THROWS(caller.call("rx_roi", {"[0, 10, 20, 5]"}, -1, PUT)); - // outside detector bounds - REQUIRE_THROWS(caller.call( - "rx_roi", {"[95," + std::to_string(detsize.x + 5) + ", 0, 10]"}, - -1, PUT)); - REQUIRE_THROWS(caller.call( - "rx_roi", - {"[95, 100, 0, " + std::to_string(detsize.y + 5) + "]"}, -1, - PUT)); - // module level not allowed - REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, 20, 30]"}, 0, PUT)); - - // vector of rois - // square brackets missing - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, 20, 30]; 25, 30, 14, 15]"}, -1, PUT)); - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, 20, 30]; [25, 30, 14, 15"}, -1, PUT)); - // invalid roi, 4 parts expected - REQUIRE_THROWS(caller.call( - "rx_roi", {"[5, 20, 20] [25, 30, 14, 15]"}, -1, PUT)); - // overlapping rois - REQUIRE_THROWS(caller.call( - "rx_roi", {"[0, 10, 0, 10] [5, 15, 0, 10]"}, -1, PUT)); - REQUIRE_THROWS(caller.call( - "rx_roi", {"[0, 10, 0, 10] [0, 10, 9, 11]"}, -1, PUT)); - - // multiple ports horizontally - if (det_type == defs::EIGER || - (det.size() == 2 && det.getModuleGeometry().x > 1)) { - std::string stringMin = std::to_string(portSize.x); - std::string stringMax = std::to_string(portSize.x + 1); - - // separated by space is allowed - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, 20, 30]", - "[" + stringMin + ", " + stringMax + ", 20, 30]"}, - -1, PUT)); - std::ostringstream oss; - // separated by semicolon with quotes is allowed (skips - // cmdParser) - REQUIRE_NOTHROW(caller.call("rx_roi", - {"[5, 10, 20, 30];[" + stringMin + - ", " + stringMax + ", 20, 30]"}, - -1, PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [" + stringMin + - ", " + stringMax + ", 20, 30]]\n"); - - // setting to only one port and verify individual roi - { - REQUIRE_NOTHROW( - caller.call("rx_roi", {"[5, 10, 20, 30]"}, -1, PUT)); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss.str() == - "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); - - } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); - } - if (det.size() > 1) { - REQUIRE_NOTHROW( - caller.call("rx_roi", {}, 1, GET, oss1)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == - "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); - - } - // others return only 1 roi per module (1 port per - // module) - else { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); - } - } - } - // verify individual roi - { - stringMin = std::to_string(portSize.x - delta); - stringMax = std::to_string(portSize.x + delta); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[" + stringMin + ", " + - stringMax + ", 20, 30]]\n"); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == - "rx_roi [[" + stringMin + ", " + - std::to_string(portSize.x - 1) + - ", 20, 30], [0, " + std::to_string(delta) + - ", 20, 30]]\n"); - } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss1.str() == - "rx_roi [[" + stringMin + ", " + - std::to_string(portSize.x - 1) + - ", 20, 30]]\n"); - } - } - } - // valid roi before acquiring - else { - std::ostringstream oss; - caller.call("rx_roi", - {"1", std::to_string(detsize.x - 5), "1", - std::to_string(detsize.y - 5)}, - -1, PUT, oss); - REQUIRE(oss.str() == std::string("rx_roi [[1, ") + - std::to_string(detsize.x - 5) + - std::string(", 1, ") + - std::to_string(detsize.y - 5) + - std::string("]]\n")); - } - - // multiple ports vertically - if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det.size() == 2 && det.getModuleGeometry().y > 1)) { - std::string stringMin = std::to_string(portSize.y); - std::string stringMax = std::to_string(portSize.y + 1); - - // separated by space is allowed - REQUIRE_NOTHROW( - caller.call("rx_roi", - {"[5, 10, 20, 30]", "[25, 28, " + stringMin + - ", " + stringMax + "]"}, - -1, PUT)); - std::ostringstream oss; - // separated by semicolon is allowed with quotes (skips - // cmdParser) - REQUIRE_NOTHROW( - caller.call("rx_roi", - {"[5, 10, 20, 30];[25, 28, " + stringMin + - ", " + stringMax + "]"}, - -1, PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [25, 28, " + - stringMin + ", " + stringMax + "]]\n"); - - // setting to only one port and verify individual roi - { - REQUIRE_NOTHROW( - caller.call("rx_roi", {"[ 5, 10, 20, 30]"}, -1, PUT)); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); - - // 2 ports - if (((det_type == defs::JUNGFRAU || - det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det_type == defs::EIGER)) { - REQUIRE(oss.str() == - "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); - } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); - } - if (det.size() > 2) { - REQUIRE_NOTHROW( - caller.call("rx_roi", {}, 1, GET, oss1)); - // 2 ports - if (((det_type == defs::JUNGFRAU || - det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det_type == defs::EIGER)) { - REQUIRE(oss1.str() == - "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); - } - // others return only 1 roi per module (1 port per - // module) - else { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); - } - } - } - // verify individual roi - { - stringMin = std::to_string(portSize.y - delta); - stringMax = std::to_string(portSize.y + delta); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[ 20, 30, " + stringMin + ", " + stringMax + "]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[20, 30, " + stringMin + - ", " + stringMax + "]]\n"); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); - - // non-eiger with 2 interfaces returns 2 values for 2 ports - // per module - if ((det_type == defs::JUNGFRAU || - det_type == defs::MOENCH) && - (numinterfaces == 2)) { - REQUIRE(oss1.str() == - "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "], [20, 30, 0, " + std::to_string(delta) + - "]]\n"); - } - // others return only 1 roi per module (1 port per module) - else { - // (eiger 2 ports) - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == - "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "], [0, 0, 0, 0]]\n"); - } else { - REQUIRE(oss1.str() == - "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "]]\n"); - } - } - } - } - } + else + test_rx_roi_2d(det, caller); // check master file creation // TODO: check roi in master file { + int numinterfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of interfaces"); auto acq_state = acq::default_acquisition_state(); auto file_state = acq::default_file_state(); From 8529c8b2323a5b3188ab056ee1e3ceca25a10730 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 19 Aug 2026 14:38:29 +0200 Subject: [PATCH 08/21] Dev/test rx roi refactor 2 (#1532) * missed the call, typo * wip, phase2 refactor * compiles * fixed tests --- .../tests/Caller/test-Caller-rx.cpp | 413 +++++++++--------- 1 file changed, 200 insertions(+), 213 deletions(-) diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp index 11635dfc4..9aceec20a 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp @@ -474,77 +474,73 @@ void test_rx_roi_2d_multi_horizontal_ports(Detector &det, Caller &caller) { auto det_type = det.getDetectorType().squash(); auto portSize = det.getPortSize()[0]; int delta = 50; + auto two_ports = (det_type == defs::EIGER); - std::string stringMin = std::to_string(portSize.x); - std::string stringMax = std::to_string(portSize.x + 1); - - // separated by space is allowed - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, 20, 30]", "[" + stringMin + ", " + stringMax + ", 20, 30]"}, - -1, PUT)); - std::ostringstream oss; - // separated by semicolon with quotes is allowed (skips - // cmdParser) - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, 20, 30];[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [" + stringMin + ", " + - stringMax + ", 20, 30]]\n"); + // setting roi at boundary of 2nd port + { + std::string min = std::to_string(portSize.x); + std::string max = std::to_string(portSize.x + 1); + std::string arg_port1 = "[5, 10, 20, 30]"; + std::string arg_port2 = "[" + min + ", " + max + ", 20, 30]"; + std::string res = "rx_roi [" + arg_port1 + ", " + arg_port2 + "]\n"; + // separated by space is allowed + REQUIRE_NOTHROW(caller.call("rx_roi", {arg_port1, arg_port2}, -1, PUT)); + // separated by semicolon with quotes is allowed (skips cmdParser) + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("rx_roi", {arg_port1 + ";" + arg_port2}, -1, PUT, oss)); + REQUIRE(oss.str() == res); + } // setting to only one port and verify individual roi { - REQUIRE_NOTHROW(caller.call("rx_roi", {"[5, 10, 20, 30]"}, -1, PUT)); - std::ostringstream oss, oss1; + std::string arg = "[5, 10, 20, 30]"; + std::string no_roi = "[0, 0, 0, 0]"; + std::string res_mod0 = "rx_roi [" + arg + "]\n"; + std::string res_mod1 = "rx_roi [" + no_roi + "]\n"; + if (two_ports) { + res_mod0 = "rx_roi [" + arg + ", " + no_roi + "]\n"; + res_mod1 = "rx_roi [" + no_roi + ", " + no_roi + "]\n"; + } + + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // single or first module + std::ostringstream oss; REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); - - } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); - } + REQUIRE(oss.str() == res_mod0); + // second module if (det.size() > 1) { - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); - - } - // others return only 1 roi per module (1 port per - // module) - else { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); - } + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss)); + REQUIRE(oss.str() == res_mod1); } } - // verify individual roi + // setting multiple port roi and verify individual roi { - stringMin = std::to_string(portSize.x - delta); - stringMax = std::to_string(portSize.x + delta); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", {"[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == - "rx_roi [[" + stringMin + ", " + stringMax + ", 20, 30]]\n"); + std::string min = std::to_string(portSize.x - delta); + std::string max = std::to_string(portSize.x + delta); + std::string arg = "[" + min + ", " + max + ", 20, 30]"; + // for each port + std::string max_port1 = std::to_string(portSize.x - 1); + std::string arg_port1 = "[" + min + ", " + max_port1 + ", 20, 30]"; + std::string max_port2 = std::to_string(delta); + std::string arg_port2 = "[0, " + max_port2 + ", 20, 30]"; + + std::string res_all = "rx_roi [" + arg + "]\n"; + std::string res_mod0 = "rx_roi [" + arg_port1 + "]\n"; + if (two_ports) { + res_mod0 = "rx_roi [" + arg_port1 + ", " + arg_port2 + "]\n"; + } + + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // verify multi roi + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, -1, GET, oss)); + REQUIRE(oss.str() == res_all); + // verify 1st module + std::ostringstream oss1; REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); - // eiger returns 2 values for 2 ports per module - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + - std::to_string(portSize.x - 1) + - ", 20, 30], [0, " + - std::to_string(delta) + ", 20, 30]]\n"); - } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + - std::to_string(portSize.x - 1) + - ", 20, 30]]\n"); - } + REQUIRE(oss1.str() == res_mod0); } } @@ -554,95 +550,83 @@ void test_rx_roi_2d_multi_vertical_ports(Detector &det, Caller &caller) { int delta = 50; int numinterfaces = det.getNumberofUDPInterfaces().tsquash( "inconsistent number of interfaces"); + auto two_ports = + ((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det_type == defs::EIGER); - std::string stringMin = std::to_string(portSize.y); - std::string stringMax = std::to_string(portSize.y + 1); - - // separated by space is allowed - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, 20, 30]", "[25, 28, " + stringMin + ", " + stringMax + "]"}, - -1, PUT)); - std::ostringstream oss; - // separated by semicolon is allowed with quotes (skips - // cmdParser) - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, 20, 30];[25, 28, " + stringMin + ", " + stringMax + "]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [25, 28, " + stringMin + - ", " + stringMax + "]]\n"); - - // setting to only one port and verify individual roi + // setting roi at boundary of 2nd port { - REQUIRE_NOTHROW(caller.call("rx_roi", {"[ 5, 10, 20, 30]"}, -1, PUT)); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + std::string min = std::to_string(portSize.y); + std::string max = std::to_string(portSize.y + 1); + std::string arg_port1 = "[5, 10, 20, 30]"; + std::string arg_port2 = "[25, 28, " + min + ", " + max + "]"; + std::string res = "rx_roi [" + arg_port1 + ", " + arg_port2 + "]\n"; - // 2 ports - if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det_type == defs::EIGER)) { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [0, 0, 0, 0]]\n"); + // separated by space is allowed + REQUIRE_NOTHROW(caller.call("rx_roi", {arg_port1, arg_port2}, -1, PUT)); + // separated by semicolon is allowed with quotes (skips cmdParser) + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("rx_roi", {arg_port1 + ";" + arg_port2}, -1, PUT, oss)); + REQUIRE(oss.str() == res); + } + + // setting to only one port roi and verify individual roi + { + std::string arg = "[5, 10, 20, 30]"; + std::string no_roi = "[0, 0, 0, 0]"; + std::string res_mod0 = "rx_roi [" + arg + "]\n"; + std::string res_mod1 = "rx_roi [" + no_roi + "]\n"; + if (two_ports) { + res_mod0 = "rx_roi [" + arg + ", " + no_roi + "]\n"; + res_mod1 = "rx_roi [" + no_roi + ", " + no_roi + "]\n"; } - // others return only 1 roi per module (1 port per module) - else { - REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30]]\n"); - } - if (det.size() > 2) { - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); - // 2 ports - if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det_type == defs::EIGER)) { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0], [0, 0, 0, 0]]\n"); - } - // others return only 1 roi per module (1 port per - // module) - else { - REQUIRE(oss1.str() == "rx_roi [[0, 0, 0, 0]]\n"); - } + + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // single or first module + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + REQUIRE(oss.str() == res_mod0); + // second module + if (det.size() > 1) { + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss)); + REQUIRE(oss.str() == res_mod1); } } - // verify individual roi + // setting multiple ports and verify individual roi { - stringMin = std::to_string(portSize.y - delta); - stringMax = std::to_string(portSize.y + delta); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", {"[ 20, 30, " + stringMin + ", " + stringMax + "]"}, -1, - PUT, oss)); - REQUIRE(oss.str() == - "rx_roi [[20, 30, " + stringMin + ", " + stringMax + "]]\n"); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + std::string min = std::to_string(portSize.y - delta); + std::string max = std::to_string(portSize.y + delta); + std::string arg = "[20, 30, " + min + ", " + max + "]"; + // for each port + std::string max_port1 = std::to_string(portSize.y - 1); + std::string arg_port1 = "[20, 30, " + min + ", " + max_port1 + "]"; + std::string max_port2 = std::to_string(delta); + std::string arg_port2 = "[20, 30, 0, " + max_port2 + "]"; - // non-eiger with 2 interfaces returns 2 values for 2 ports - // per module - if ((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && - (numinterfaces == 2)) { - REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "], [20, 30, 0, " + - std::to_string(delta) + "]]\n"); - } - // others return only 1 roi per module (1 port per module) - else { - // (eiger 2 ports) - if (det_type == defs::EIGER) { - REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "], [0, 0, 0, 0]]\n"); - } else { - REQUIRE(oss1.str() == "rx_roi [[20, 30, " + stringMin + ", " + - std::to_string(portSize.y - 1) + - "]]\n"); - } + std::string res_all = "rx_roi [" + arg + "]\n"; + std::string res_mod0 = "rx_roi [" + arg_port1 + "]\n"; + if (two_ports) { + res_mod0 = "rx_roi [" + arg_port1 + ", " + arg_port2 + "]\n"; } + + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // verify multi roi + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, -1, GET, oss)); + REQUIRE(oss.str() == res_all); + // verify both ports of 1st module + std::ostringstream oss1; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + REQUIRE(oss1.str() == res_mod0); } } void test_rx_roi_1d(Detector &det, Caller &caller) { defs::xy detsize = det.getDetectorSize(); + int delta = 50; { std::ostringstream oss; @@ -678,59 +662,71 @@ void test_rx_roi_1d(Detector &det, Caller &caller) { REQUIRE_THROWS( caller.call("rx_roi", {"[0, 10,-1, -1] [5, 15, -1, -1]"}, -1, PUT)); - // multiple modules + auto moduleSize = det.getModuleSize()[0]; + + // setting roi at boundary of 2nd module if (det.size() == 2) { - auto moduleSize = det.getModuleSize()[0]; - std::string stringMin = std::to_string(moduleSize.x); - std::string stringMax = std::to_string(moduleSize.x + 1); + std::string min = std::to_string(moduleSize.x); + std::string max = std::to_string(moduleSize.x + 1); + std::string arg_mod1 = "[5, 10]"; + std::string arg_mod2 = "[" + min + ", " + max + "]"; + std::string res = "rx_roi [" + arg_mod1 + ", " + arg_mod2 + "]\n"; // separated by space is allowed - REQUIRE_NOTHROW( - caller.call("rx_roi", - {"[5, 10, -1, -1]", - "[" + stringMin + ", " + stringMax + ", -1, -1]"}, - -1, PUT)); + REQUIRE_NOTHROW(caller.call("rx_roi", {arg_mod1, arg_mod2}, -1, PUT)); std::ostringstream oss; - // separated by semicolon with quotes is allowed (skips - // cmdParser) - REQUIRE_NOTHROW(caller.call( - "rx_roi", - {"[5, 10, -1, -1];[" + stringMin + ", " + stringMax + ", -1, -1]"}, - -1, PUT, oss)); - REQUIRE(oss.str() == - "rx_roi [[5, 10], [" + stringMin + ", " + stringMax + "]]\n"); + // separated by semicolon with quotes is allowed (skips cmdParser) + REQUIRE_NOTHROW( + caller.call("rx_roi", {arg_mod1 + ";" + arg_mod2}, -1, PUT, oss)); + REQUIRE(oss.str() == res); + } + // setting to only one module and verify individual roi + { + std::string arg = "[5, 10]"; + std::string no_roi = "[0, 0]"; + std::string res_mod0 = "rx_roi [" + arg + "]\n"; + std::string res_mod1 = "rx_roi [" + no_roi + "]\n"; - // setting to only one port and verify individual roi - { - REQUIRE_NOTHROW( - caller.call("rx_roi", {"[5, 10, -1, -1]"}, -1, PUT)); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss1)); - REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); - REQUIRE(oss1.str() == "rx_roi [[0, 0]]\n"); - } - // verify individual roi - { - stringMin = std::to_string(moduleSize.x - 50); - stringMax = std::to_string(moduleSize.x + 50); - std::ostringstream oss, oss1; - REQUIRE_NOTHROW(caller.call( - "rx_roi", {"[" + stringMin + ", " + stringMax + "]"}, -1, PUT, - oss)); - REQUIRE(oss.str() == - "rx_roi [[" + stringMin + ", " + stringMax + "]]\n"); - REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); - REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + - std::to_string(moduleSize.x - 1) + - "]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // first module + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss)); + REQUIRE(oss.str() == res_mod0); + // second module + if (det.size() > 1) { + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss)); + REQUIRE(oss.str() == res_mod1); } } - // valid roi before acquiring - else { + // setting multiple module roi and verify individual roi + if (det.size() == 2) { + std::string min = std::to_string(moduleSize.x - delta); + std::string max = std::to_string(moduleSize.x + delta); + std::string arg = "[" + min + ", " + max + "]"; + // for each module + std::string max_mod0 = std::to_string(moduleSize.x - 1); + std::string arg_mod0 = "[" + min + ", " + max_mod0 + "]"; + std::string max_mod1 = std::to_string(delta); + std::string arg_mod1 = "[0, " + max_mod1 + "]"; + + std::string res_all = "rx_roi [" + arg + "]\n"; + std::string res_mod0 = "rx_roi [" + arg_mod0 + "]\n"; + std::string res_mod1 = "rx_roi [" + arg_mod1 + "]\n"; + + REQUIRE_NOTHROW(caller.call("rx_roi", {arg}, -1, PUT)); + // verify multi roi std::ostringstream oss; - caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, -1, GET, oss)); + REQUIRE(oss.str() == res_all); + // verify 1st module + std::ostringstream oss1; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + REQUIRE(oss1.str() == res_mod0); + // verify 1st module + std::ostringstream oss2; + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 1, GET, oss2)); + REQUIRE(oss2.str() == res_mod1); } } @@ -739,6 +735,8 @@ void test_rx_roi_2d(Detector &det, Caller &caller) { defs::xy detsize = det.getDetectorSize(); int numinterfaces = det.getNumberofUDPInterfaces().tsquash( "inconsistent number of interfaces"); + std::string maxx = std::to_string(detsize.x - 5); + std::string maxy = std::to_string(detsize.y - 5); { std::ostringstream oss; @@ -752,14 +750,9 @@ void test_rx_roi_2d(Detector &det, Caller &caller) { } { std::ostringstream oss; - caller.call("rx_roi", - {"1", std::to_string(detsize.x - 5), "1", - std::to_string(detsize.y - 5)}, - -1, PUT, oss); - REQUIRE(oss.str() == - std::string("rx_roi [[1, ") + std::to_string(detsize.x - 5) + - std::string(", 1, ") + std::to_string(detsize.y - 5) + - std::string("]]\n")); + caller.call("rx_roi", {"1", maxx, "1", maxy}, -1, PUT, oss); + auto res = "rx_roi [[1, " + maxx + ", 1, " + maxy + "]]\n"; + REQUIRE(oss.str() == res); } REQUIRE_THROWS(caller.call("rx_roi", {"0", "0", "0", "0"}, -1, PUT)); REQUIRE_THROWS(caller.call("rx_roi", {"-1", "-1", "-1", "-1"}, -1, PUT)); @@ -792,28 +785,22 @@ void test_rx_roi_2d(Detector &det, Caller &caller) { REQUIRE_THROWS( caller.call("rx_roi", {"[0, 10, 0, 10] [0, 10, 9, 11]"}, -1, PUT)); - // multiple ports horizontally - if (det_type == defs::EIGER || - (det.size() == 2 && det.getModuleGeometry().x > 1)) { - test_rx_roi_2d_multi_horizontal_ports(det, caller); - } - // valid roi before acquiring - else { - std::ostringstream oss; - caller.call("rx_roi", - {"1", std::to_string(detsize.x - 5), "1", - std::to_string(detsize.y - 5)}, - -1, PUT, oss); - REQUIRE(oss.str() == - std::string("rx_roi [[1, ") + std::to_string(detsize.x - 5) + - std::string(", 1, ") + std::to_string(detsize.y - 5) + - std::string("]]\n")); - } + bool multiple_ports_horizontally = + (det_type == defs::EIGER || + (det.size() > 1 && det.getModuleGeometry().x > 1)); - // multiple ports vertically - if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && - (numinterfaces == 2)) || - (det.size() == 2 && det.getModuleGeometry().y > 1)) { + bool multiple_ports_vertically = + (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det.size() > 1 && det.getModuleGeometry().y > 1)); + + if (multiple_ports_horizontally) { + test_rx_roi_2d_multi_horizontal_ports(det, caller); + } else if (multiple_ports_vertically) { + test_rx_roi_2d_multi_vertical_ports(det, caller); + } else { + // valid roi before acquiring + REQUIRE_NOTHROW(caller.call("rx_roi", {"1", maxx, "1", maxy}, -1, PUT)); } } @@ -826,11 +813,11 @@ TEST_CASE("rx_roi", "[.detectorintegration][.disable_check_data_file]") { REQUIRE_THROWS(caller.call("rx_roi", {"5", "10"}, -1, PUT)); } else { auto prev_val = det.getRxROI(); + bool oneD = (det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3); + // 2d = Jungfrau, moench, eiger - // 1d - if (det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3) + if (oneD) test_rx_roi_1d(det, caller); - // 2d eiger, jungfrau, moench else test_rx_roi_2d(det, caller); From acd1f53b37bb38e9240d9b6fe3a111df6ed4f235 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 27 Aug 2026 17:19:04 +0200 Subject: [PATCH 09/21] Dev/pr automation part 1 (#1540) * added pr validation * redundnat * validate type and add label * breaking api label also in pr validation * milestone workflow triggered when changing labels and it sets the milestone from the release targets yaml and labels * milestone workflow triggered when changing labels and it sets the milestone from the release targets yaml and labels * workflow changing label cannot trigger another workflow, so directly invoking it or if a user changes label for pr milestone workflow * added trigger workflow for label change by user, added check for infrastructure and breaking api in pr milestone workflow * typo * release targets * milestone workflow should also ensure only 1 primary labels * it doesnt need to be rerun for commits * label and unlabel do the checks as well of primary type and brekaing api, it does not need to be in milestone * pr validation now when primar type and breaking api labels are there and shouldnt be instead of removing them. the the label workflow nowjust ensures labesl and description are the same * node change * complain if labels dont match descriotion and retrigger validation workflow for better errors. If none labels, this is okay.. if not, it will give approperiate errors, mainly checking mismatch of labels and descriotion is labels trigger, logic will have been checked in validation anyway and failed if so * label trigger to run milestone only needs detect-mistmatch and does not need pr validation * getting rid of checkout for just reading a file from the base branch of PR, if main, give success for milestone * issues.update is deprecated for prs * removed label trigger workflow, it will not retrigger itself * made pr validation not a reusable workflow. it treiggers also on labeled and unlabeled, but ignores unrelated labels, too much resource to check if the checkboxes are edited * update from pulls back to issues when updating milestone as its not supported yet for pulls * setting a github rest api version of 2026, else it uses the old one of 2022 * didnt work. removing github api specs for now * more prints for miestone workflow and infrastructure is now bug fix milestone --- .github/release-targets.yaml | 3 + .github/workflows/pr_milestone.yaml | 164 ++++++++++++++++++++ .github/workflows/pr_validation.yaml | 218 +++++++++++++++++++++++++++ 3 files changed, 385 insertions(+) create mode 100644 .github/release-targets.yaml create mode 100644 .github/workflows/pr_milestone.yaml create mode 100644 .github/workflows/pr_validation.yaml diff --git a/.github/release-targets.yaml b/.github/release-targets.yaml new file mode 100644 index 000000000..70878f838 --- /dev/null +++ b/.github/release-targets.yaml @@ -0,0 +1,3 @@ +major: "11.0.0" +minor: "10.2.0" +bug_fix: "10.1.1" \ No newline at end of file diff --git a/.github/workflows/pr_milestone.yaml b/.github/workflows/pr_milestone.yaml new file mode 100644 index 000000000..91a51c405 --- /dev/null +++ b/.github/workflows/pr_milestone.yaml @@ -0,0 +1,164 @@ +# This reusable workflow sets the milestone based on the +# current PR labels. + +name: PR Milestone + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + pull-requests: write + contents: read + +jobs: + set-milestone: + name: Set PR milestone + runs-on: ubuntu-latest + + steps: + - name: Set milestone + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + + /* + * Get the base branch of the PR. + */ + const { data: pullRequest } = + await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + const baseBranch = pullRequest.base.ref; + + /* + * Return early if base is main branch. Milestone is already + * managed and probably done when merging to main. + */ + if (baseBranch === 'main') { + core.info('PR targets main. Milestone is managed separately.'); + return; + } + + /* + * Read release targets through the GitHub API + * from the base branch of PR. + */ + const { data: file } = + await github.rest.repos.getContent({ + owner: context.repo.owner, + repo: context.repo.repo, + path: '.github/release-targets.yaml', + ref: baseBranch + }); + + const releaseTargetsFile = + Buffer.from(file.content, 'base64').toString('utf8'); + + const getTarget = (name) => { + const match = releaseTargetsFile.match( + new RegExp(`^${name}:\\s*["']?([^"'\\s]+)["']?`, 'm') + ); + + if (!match) { + core.setFailed( + `Release target "${name}" was not found.` + ); + return null; + } + + return match[1]; + }; + + const major = getTarget('major'); + const minor = getTarget('minor'); + const bugFix = getTarget('bug_fix'); + + if (!major || !minor || !bugFix) { + return; + } + + /* + * Get current PR labels. + */ + const { data: labels } = + await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + + const labelNames = + labels.map(label => label.name); + + /* + * Determine the milestone. + * + * Breaking API has highest priority. + */ + let targetMilestone; + + if (labelNames.includes('Breaking API')) { + targetMilestone = major; + } else if (labelNames.includes('Feature')) { + targetMilestone = minor; + } else if ( + labelNames.includes('Bug Fix') || + labelNames.includes('Infrastructure') + ) { + targetMilestone = bugFix; + } else { + core.info( + 'No milestone-related labels found.' + ); + return; + } + + core.info( + `Target milestone: ${targetMilestone}` + ); + + /* + * Find the milestone. + */ + const { data: milestones } = + await github.rest.issues.listMilestones({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open' + }); + + const milestone = milestones.find( + milestone => milestone.title === targetMilestone + ); + + if (!milestone) { + core.setFailed( + `Milestone "${targetMilestone}" was not found.` + ); + return; + } else { + core.info( + `Found milestone "${targetMilestone}".` + ); + } + + /* + * Set the milestone. + */ + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + milestone: milestone.number + }); + + core.info( + `Milestone set to "${targetMilestone}".` + ); diff --git a/.github/workflows/pr_validation.yaml b/.github/workflows/pr_validation.yaml new file mode 100644 index 000000000..13382ffad --- /dev/null +++ b/.github/workflows/pr_validation.yaml @@ -0,0 +1,218 @@ +# This workflow is triggered when opening/reopening PR or editing the Pr description or changing labels. It ignores unrelated label changes. It validates the PR type and Breaking API, then sets the labels. It also runs the PR milestone workflow to set the milestone based on the PR type label. +name: PR Validation + +on: + pull_request: + types: + - opened + - reopened + - edited + - labeled + - unlabeled + +permissions: + pull-requests: write + contents: read + +jobs: + validate-pr: + name: Validate PR + runs-on: ubuntu-latest + outputs: + set_milestone: ${{ steps.validate.outputs.set_milestone }} + + steps: + - name: Validate PR type and Breaking API + id: validate + uses: actions/github-script@v8 + with: + script: | + /* + * Set it to run milestone at the end by default + */ + core.setOutput('set_milestone', 'true'); + + /* + * If triggered by label change, ignore unrelated labels. + */ + const action = context.payload.action; + if (action === 'labeled' || action === 'unlabeled') { + const changedLabel = context.payload.label?.name; + + const relevantLabels = [ + 'Feature', + 'Bug Fix', + 'Infrastructure', + 'Breaking API' + ]; + + if (!relevantLabels.includes(changedLabel)) { + core.info( + `Ignoring unrelated label change: ${changedLabel}` + ); + core.setOutput('set_milestone', 'false'); + return; + } + } + + /* + * Read the body contents of PR + */ + const prNumber = context.payload.pull_request?.number; + + if (!prNumber) { + core.setFailed('Unable to determine PR number.'); + return; + } + + const { data: pr } = + await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + const body = pr.body || ''; + + /* + * Check which primary PR type is selected. + */ + const feature = + /-\s*\[[xX]\]\s*Feature\b/.test(body); + + const bugFix = + /-\s*\[[xX]\]\s*Bug Fix\b/.test(body); + + const infrastructure = + /-\s*\[[xX]\]\s*Infrastructure\b/.test(body); + + const primaryTypes = [ + feature && 'Feature', + bugFix && 'Bug Fix', + infrastructure && 'Infrastructure' + ].filter(Boolean); + + /* + * Exactly one primary PR type must be selected. + */ + if (primaryTypes.length !== 1) { + core.setFailed( + 'Exactly one primary PR type must be selected. Select exactly one of: Feature, Bug Fix, Infrastructure in the description.' + ); + return; + } + + const primaryType = primaryTypes[0]; + + /* + * Infrastructure PRs cannot be Breaking API. + */ + const breakingApi = + /-\s*\[[xX]\]\s*This is a Breaking API change\b/.test(body); + + if (infrastructure && breakingApi) { + core.setFailed( + 'Infrastructure PRs cannot be Breaking API changes. Deselect Breaking API or change the PR type to Feature or Bug Fix in the description.' + ); + return; + } + + core.info(`Primary PR type: ${primaryType}`); + core.info( + `Breaking API: ${breakingApi ? 'yes' : 'no'}` + ); + + /* + * Get the labels currently on the PR. + */ + const { data: currentLabels } = + await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + + const currentLabelNames = + currentLabels.map(label => label.name); + + const primaryLabels = [ + 'Feature', + 'Bug Fix', + 'Infrastructure' + ]; + + const selectedPrimary = + primaryLabels.filter(label => + currentLabelNames.includes(label) + ); + + if (selectedPrimary.length > 1) { + core.setFailed( + `Invalid PR label state: multiple primary labels are present: ${selectedPrimary.join(', ')}. Remove these primary type labels 'Feature, Bug Fix, Infrastructure' and let the workflow set the correct label based on the PR description.` + ); + return; + } + + if (selectedPrimary.length === 1 && selectedPrimary[0] !== primaryType) { + core.setFailed( + `Invalid PR label state: the PR body selects ${primaryType}, but the existing label is ${selectedPrimary[0]}. Remove the existing label and let the workflow set the correct label based on the PR description.` + ); + return; + } + + if ( + currentLabelNames.includes('Breaking API') && + infrastructure + ) { + core.setFailed( + 'Infrastructure PRs cannot have the Breaking API label.' + ); + return; + } + + if ( + !breakingApi && + currentLabelNames.includes('Breaking API') + ) { + core.setFailed( + 'Breaking API label is present but the PR body does not mark the checkbox. Remove the label or check the checkbox in the PR body.' + ); + return; + } + + if ( + breakingApi && + !currentLabelNames.includes('Breaking API') + ) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: ['Breaking API'] + }); + + core.info('Added label: Breaking API'); + } + + if (!currentLabelNames.includes(primaryType)) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: [primaryType] + }); + + core.info(`Added label: ${primaryType}`); + } + + core.info('PR validation passed.'); + + milestone: + needs: validate-pr + if: ${{ needs.validate-pr.outputs.set_milestone == 'true' }} + uses: ./.github/workflows/pr_milestone.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + contents: read \ No newline at end of file From 2a5672a138605c1dccb08219f511907f990e3424 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 2 Sep 2026 10:37:04 +0200 Subject: [PATCH 10/21] Dev/pr automation part 2 (#1542) * workflow for detector whole word matching from changes in detectorServer folders, matching in pr title description, linked or references issues and prs, change in code with matching labels, add detector labels * comment * do not look at linked issues or prs * removed warning of deprecated node 20 github maybe? * ignore for infrastructure prs * ignore infrastrucutr prs * makign detector labels a reusable workflow and pr synchronize trigger trigger at synchronize and wait for validation worfklow to be done first * synchronize triger just checks if pr validation is complete and successfull, if not it fails, else it will run detector labesl workflow. it will not wait for pr validation * pr validation should also call detector labels workflow * picked up pr_validation from developer and modified * test sync * removed commit * trigger is just for code sync * look at head branch PRs to find it * ignoring some other workflows for now * no need of if as anything failing before the consequent jobs are skipped anyway * ignore tests fo rnow * make detector labels run all * without pr validate * fix error pr * renaming to make sense * naming * all the triggers are in a different workflow and all the big jobs in separate resuable workflows * validate pr type also separated * validation doesnt have any output anymore because its either setfailed or not, the unrelated labesl output have been moved to edit trigger workflow anyway * minor * combine for loop of changed files --- .github/workflows/build_wheel.yml | 3 + .github/workflows/cmake.yaml | 13 +- .github/workflows/conda_library.yaml | 8 +- .github/workflows/conda_python.yaml | 8 +- .github/workflows/pr_detector_labels.yaml | 260 ++++++++++++++++++ .github/workflows/pr_edit_trigger.yaml | 83 ++++++ .github/workflows/pr_synchronize_trigger.yaml | 21 ++ ...alidation.yaml => pr_type_validation.yaml} | 67 +---- .github/workflows/run_tests.yaml | 5 +- 9 files changed, 406 insertions(+), 62 deletions(-) create mode 100644 .github/workflows/pr_detector_labels.yaml create mode 100644 .github/workflows/pr_edit_trigger.yaml create mode 100644 .github/workflows/pr_synchronize_trigger.yaml rename .github/workflows/{pr_validation.yaml => pr_type_validation.yaml} (73%) diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml index 9e1d2df20..53a7e456c 100644 --- a/.github/workflows/build_wheel.yml +++ b/.github/workflows/build_wheel.yml @@ -3,6 +3,9 @@ name: Build wheel on: workflow_dispatch: pull_request: + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' push: branches: - main diff --git a/.github/workflows/cmake.yaml b/.github/workflows/cmake.yaml index 2b3512644..a49f08140 100644 --- a/.github/workflows/cmake.yaml +++ b/.github/workflows/cmake.yaml @@ -1,7 +1,16 @@ name: Native CMake Build -on: [push, pull_request, workflow_dispatch] - +on: + push: + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' + pull_request: + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' + workflow_dispatch: + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Debug diff --git a/.github/workflows/conda_library.yaml b/.github/workflows/conda_library.yaml index 1086021c7..8d39bfad9 100644 --- a/.github/workflows/conda_library.yaml +++ b/.github/workflows/conda_library.yaml @@ -1,7 +1,11 @@ name: Build slsdetlib -on: [pull_request] - +on: + pull_request: + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' + jobs: build: strategy: diff --git a/.github/workflows/conda_python.yaml b/.github/workflows/conda_python.yaml index 18d18e62e..733cb263d 100644 --- a/.github/workflows/conda_python.yaml +++ b/.github/workflows/conda_python.yaml @@ -1,7 +1,11 @@ name: slsdet -on: [pull_request] - +on: + pull_request: + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' + jobs: build: strategy: diff --git a/.github/workflows/pr_detector_labels.yaml b/.github/workflows/pr_detector_labels.yaml new file mode 100644 index 000000000..06261dffb --- /dev/null +++ b/.github/workflows/pr_detector_labels.yaml @@ -0,0 +1,260 @@ +# This reusable workflow detects detector labels for pull requests. This workflow is ignored for Infrastructure Prs. It checks whole word matching of detector names in server folders, changed code and PR title/description. If a detector is detected, the corresponding label is added to the PR. Existing labels are left untouched. Detector labels are never removed automatically. + +name: PR Detector Labels + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + pull-requests: write + issues: read + +jobs: + detector-labels: + name: Detect detector labels + runs-on: ubuntu-latest + + steps: + - name: Detect detector labels + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + + /* + * Get the current PR labels. + */ + const { data: currentLabels } = + await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + + const currentLabelNames = + currentLabels.map(label => label.name); + + if (currentLabelNames.includes('Infrastructure')) { + core.info( + 'Infrastructure label found. Skipping detector label detection.' + ); + return; + } + + core.info( + `Infrastructure label not found. Proceeding with detector label detection.` + ); + + /* + * Known detector labels. + */ + const detectorLabels = [ + 'Ctb', + 'Eiger', + 'Moench', + 'Mythen3', + 'Jungfrau', + 'Gotthard2', + 'Matterhorn', + 'Xilinx_ctb' + ]; + + + /* + * Check whether a detector name appears as a + * complete word, case-insensitively. + */ + function containsDetector(text, detector) { + const regex = new RegExp( + `\\b${detector}\\b`, + 'i' + ); + + return regex.test(text); + } + + /* + * Detectors detected by any detection method. + */ + const detectedDetectors = new Set(); + + /* + * -------------------------------------------------- + * 1. Get all files changed by the PR + * -------------------------------------------------- + */ + const files = await github.paginate( + github.rest.pulls.listFiles, + { + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + per_page: 100 + } + ); + + core.info( + `Found ${files.length} changed files.` + ); + + /* + * -------------------------------------------------- + * 2. Detect detector from changed files + * -------------------------------------------------- + * + * We inspect each file once and short-circuit as soon + * as a detector-server folder confirms a label. That + * avoids scanning the same detector folder again and + * avoids checking the rest of the file for unrelated + * detector names. + * + * Examples: + * + * slsDetectorServers/eigerDetectorServer/... + * ↓ + * Eiger + * + * slsDetectorServers/xilinx_ctbDetectorServer/... + * ↓ + * Xilinx_ctb + */ + const ignoredDetectorServerFolders = new Set(); + + for (const file of files) { + const serverMatch = file.filename.match( + /^slsDetectorServers\/([^/]+)DetectorServer\// + ); + + if (serverMatch) { + const detectorFolder = serverMatch[0]; + + // Skip all later files under a detected detector folder. + if (ignoredDetectorServerFolders.has(detectorFolder)) { + core.info( + `Skipping file in ignored detector-server folder: ${file.filename}` + ); + continue; + } + + const detectorName = serverMatch[1]; + + /* + * Remove "DetectorServer" and capitalize + * the first character. + */ + const detector = + detectorName.charAt(0).toUpperCase() + + detectorName.slice(1); + + if (detectorLabels.includes(detector)) { + detectedDetectors.add(detector); + + core.info( + `Detected ${detector} from detector-server path: ${file.filename}` + ); + + // Once a detector is confirmed from the server folder, + // do not inspect this file or the rest of that folder. + ignoredDetectorServerFolders.add(detectorFolder); + continue; + } + } + + // Only inspect the PR patch, never the full file. + if (!file.patch) { + continue; + } + + for (const detector of detectorLabels) { + if ( + containsDetector( + file.patch, + detector + ) + ) { + detectedDetectors.add(detector); + + core.info( + `Detected ${detector} in changed code: ${file.filename}` + ); + } + } + } + + /* + * -------------------------------------------------- + * 3. Detect detector from PR title/description + * -------------------------------------------------- + */ + + const { data: pr } = + await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + const prText = [ + pr.title || '', + pr.body || '' + ].join('\n'); + + for (const detector of detectorLabels) { + if ( + containsDetector( + prText, + detector + ) + ) { + detectedDetectors.add(detector); + + core.info( + `Detected ${detector} in PR title or description.` + ); + } + } + + /* + * -------------------------------------------------- + * 5. Add detected detector labels + * -------------------------------------------------- + * + * Existing labels are left untouched. + * + * Detector labels are NEVER removed automatically. + */ + for (const detector of detectedDetectors) { + if (!currentLabelNames.includes(detector)) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: [detector] + }); + + core.info( + `Added detector label: ${detector}` + ); + } else { + core.info( + `Detector label already exists: ${detector}` + ); + } + } + + /* + * -------------------------------------------------- + * 6. Summary + * -------------------------------------------------- + */ + core.info( + `Detected detectors: ${ + detectedDetectors.size > 0 + ? [...detectedDetectors].join(', ') + : 'none' + }` + ); \ No newline at end of file diff --git a/.github/workflows/pr_edit_trigger.yaml b/.github/workflows/pr_edit_trigger.yaml new file mode 100644 index 000000000..e3cf726fa --- /dev/null +++ b/.github/workflows/pr_edit_trigger.yaml @@ -0,0 +1,83 @@ +# This workflow is triggered when opening/reopening PR, editing the PR description or changing labels. It ignores unrelated label changes. It runs PR type validation and if it succeeds, it runs PR milestone and detector labels workflow in parallel. +name: PR Edit Trigger + +on: + pull_request: + types: + - opened + - reopened + - edited + - labeled + - unlabeled + +permissions: + pull-requests: write + contents: read + +jobs: + check-pr-trigger: + name: Check PR Trigger + runs-on: ubuntu-latest + + outputs: + require_validation: ${{ steps.check.outputs.require_validation }} + + steps: + - name: Check whether PR Validation is required + id: check + uses: actions/github-script@v8 + with: + script: | + /* + * If triggered by label change, ignore unrelated labels. + */ + const action = context.payload.action; + if (action === 'labeled' || action === 'unlabeled') { + const changedLabel = context.payload.label?.name; + + const relevantLabels = [ + 'Feature', + 'Bug Fix', + 'Infrastructure', + 'Breaking API' + ]; + + if (!relevantLabels.includes(changedLabel)) { + core.info( + `Ignoring unrelated label change: ${changedLabel}` + ); + core.setOutput('require_validation', 'false'); + return; + } + } + + core.info('PR type validation required.'); + core.setOutput('require_validation', 'true'); + + validate-pr-type: + needs: check-pr-trigger + if: ${{ needs.check-pr-trigger.outputs.require_validation == 'true' }} + uses: ./.github/workflows/pr_type_validation.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + contents: read + + milestone: + needs: validate-pr-type + uses: ./.github/workflows/pr_milestone.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + contents: read + + detector-labels: + needs: validate-pr-type + uses: ./.github/workflows/pr_detector_labels.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + issues: read \ No newline at end of file diff --git a/.github/workflows/pr_synchronize_trigger.yaml b/.github/workflows/pr_synchronize_trigger.yaml new file mode 100644 index 000000000..d455d254c --- /dev/null +++ b/.github/workflows/pr_synchronize_trigger.yaml @@ -0,0 +1,21 @@ +# This workflow is triggered when code is pushed to a pull request. It runs the reusable detector label workflow. + +name: PR Synchronize Trigger + +on: + pull_request: + types: + - synchronize + +permissions: + actions: read + pull-requests: read + +jobs: + detector-labels: + uses: ./.github/workflows/pr_detector_labels.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + issues: read diff --git a/.github/workflows/pr_validation.yaml b/.github/workflows/pr_type_validation.yaml similarity index 73% rename from .github/workflows/pr_validation.yaml rename to .github/workflows/pr_type_validation.yaml index 13382ffad..f9a04bc97 100644 --- a/.github/workflows/pr_validation.yaml +++ b/.github/workflows/pr_type_validation.yaml @@ -1,64 +1,33 @@ -# This workflow is triggered when opening/reopening PR or editing the Pr description or changing labels. It ignores unrelated label changes. It validates the PR type and Breaking API, then sets the labels. It also runs the PR milestone workflow to set the milestone based on the PR type label. -name: PR Validation +# This reusable workflow reads the primary type and breaking api selection from the PR description and validates the PR labels. It ensures that exactly one primary type is selected, and that the Breaking API label is consistent with the checkbox in the PR description. It also adds or removes labels as necessary to match the PR description. + +name: PR Type Validation on: - pull_request: - types: - - opened - - reopened - - edited - - labeled - - unlabeled + workflow_call: + inputs: + pr_number: + required: true + type: number permissions: pull-requests: write contents: read jobs: - validate-pr: - name: Validate PR + validate_pr_type: + name: PR Type Validation runs-on: ubuntu-latest - outputs: - set_milestone: ${{ steps.validate.outputs.set_milestone }} steps: - - name: Validate PR type and Breaking API + - name: PR Type Validation and Breaking API id: validate uses: actions/github-script@v8 with: script: | - /* - * Set it to run milestone at the end by default - */ - core.setOutput('set_milestone', 'true'); - - /* - * If triggered by label change, ignore unrelated labels. - */ - const action = context.payload.action; - if (action === 'labeled' || action === 'unlabeled') { - const changedLabel = context.payload.label?.name; - - const relevantLabels = [ - 'Feature', - 'Bug Fix', - 'Infrastructure', - 'Breaking API' - ]; - - if (!relevantLabels.includes(changedLabel)) { - core.info( - `Ignoring unrelated label change: ${changedLabel}` - ); - core.setOutput('set_milestone', 'false'); - return; - } - } - /* * Read the body contents of PR */ - const prNumber = context.payload.pull_request?.number; + const prNumber = ${{ inputs.pr_number }}; if (!prNumber) { core.setFailed('Unable to determine PR number.'); @@ -205,14 +174,4 @@ jobs: core.info(`Added label: ${primaryType}`); } - core.info('PR validation passed.'); - - milestone: - needs: validate-pr - if: ${{ needs.validate-pr.outputs.set_milestone == 'true' }} - uses: ./.github/workflows/pr_milestone.yaml - with: - pr_number: ${{ github.event.pull_request.number }} - permissions: - pull-requests: write - contents: read \ No newline at end of file + core.info('PR validation passed.'); \ No newline at end of file diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index f5ee18c63..19d7a7f03 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -2,8 +2,9 @@ name: Run Simulator Tests on: push: - - + branches-ignore: + - 'dev/pr_automation*' + - 'dev/test_pr_automation*' env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) From 5c73832345937133b6eb149b3aaeb773423aa943 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 8 Sep 2026 16:10:15 +0200 Subject: [PATCH 11/21] Dev/pr automation 3 (#1546) * workflow for detector whole word matching from changes in detectorServer folders, matching in pr title description, linked or references issues and prs, change in code with matching labels, add detector labels * comment * do not look at linked issues or prs * removed warning of deprecated node 20 github maybe? * ignore for infrastructure prs * ignore infrastrucutr prs * makign detector labels a reusable workflow and pr synchronize trigger trigger at synchronize and wait for validation worfklow to be done first * synchronize triger just checks if pr validation is complete and successfull, if not it fails, else it will run detector labesl workflow. it will not wait for pr validation * pr validation should also call detector labels workflow * picked up pr_validation from developer and modified * test sync * removed commit * trigger is just for code sync * look at head branch PRs to find it * ignoring some other workflows for now * no need of if as anything failing before the consequent jobs are skipped anyway * ignore tests fo rnow * make detector labels run all * without pr validate * fix error pr * renaming to make sense * naming * all the triggers are in a different workflow and all the big jobs in separate resuable workflows * validate pr type also separated * validation doesnt have any output anymore because its either setfailed or not, the unrelated labesl output have been moved to edit trigger workflow anyway * minor * add file major and minor version labels * give permissions * changing file version labels should also trigger the file version workflow * fix code * more explicit print * more print * typo * if file major and no brekaing api label, throw error * trigger file version workflow also if brekaing api label change * print message * if file label change, check file version directly, if pr edited, then wait for pr validation and then check file ersion workflow --- .github/workflows/pr_edit_trigger.yaml | 79 ++++- .github/workflows/pr_file_version.yaml | 295 ++++++++++++++++++ .github/workflows/pr_synchronize_trigger.yaml | 10 +- 3 files changed, 373 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/pr_file_version.yaml diff --git a/.github/workflows/pr_edit_trigger.yaml b/.github/workflows/pr_edit_trigger.yaml index e3cf726fa..b43e7c3e4 100644 --- a/.github/workflows/pr_edit_trigger.yaml +++ b/.github/workflows/pr_edit_trigger.yaml @@ -21,19 +21,29 @@ jobs: outputs: require_validation: ${{ steps.check.outputs.require_validation }} + file_label_change: ${{ steps.check.outputs.file_label_change }} + pr_edited: ${{ steps.check.outputs.pr_edited }} steps: - - name: Check whether PR Validation is required + - name: Check PR Trigger id: check uses: actions/github-script@v8 with: script: | + let requireValidation = true; + let fileLabelChange = false; + /* * If triggered by label change, ignore unrelated labels. */ const action = context.payload.action; + const prEdited = action === 'edited'; + if (action === 'labeled' || action === 'unlabeled') { const changedLabel = context.payload.label?.name; + core.info( + `Changed Label: ${changedLabel}` + ); const relevantLabels = [ 'Feature', @@ -43,16 +53,43 @@ jobs: ]; if (!relevantLabels.includes(changedLabel)) { - core.info( - `Ignoring unrelated label change: ${changedLabel}` - ); - core.setOutput('require_validation', 'false'); - return; + requireValidation = false; } - } - core.info('PR type validation required.'); - core.setOutput('require_validation', 'true'); + // File Major requires Breaking API label + const fileLabels = [ + 'File Major', + 'File Minor', + 'Breaking API' + ]; + if (fileLabels.includes(changedLabel)) { + fileLabelChange = true; + } + } + + core.setOutput( + 'require_validation', + requireValidation.toString() + ); + core.setOutput( + 'file_label_change', + fileLabelChange.toString() + ); + core.setOutput( + 'pr_edited', + prEdited.toString() + ); + + if (requireValidation) { + core.info('PR type validation: Required.'); + } else { + core.info('PR type validation: Not required - Unrelated label.'); + } + if (fileLabelChange) { + core.info('File label or Breaking API: Changed.'); + } else { + core.info('File label or Breaking API: No Change.'); + } validate-pr-type: needs: check-pr-trigger @@ -80,4 +117,26 @@ jobs: pr_number: ${{ github.event.pull_request.number }} permissions: pull-requests: write - issues: read \ No newline at end of file + issues: read + + file-version: + needs: + - check-pr-trigger + - validate-pr-type + if: >- + ${{ + always() && + ( + needs.check-pr-trigger.outputs.file_label_change == 'true' || + ( + needs.check-pr-trigger.outputs.pr_edited == 'true' && + needs.validate-pr-type.result == 'success' + ) + ) + }} + uses: ./.github/workflows/pr_file_version.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + contents: read diff --git a/.github/workflows/pr_file_version.yaml b/.github/workflows/pr_file_version.yaml new file mode 100644 index 000000000..01319b712 --- /dev/null +++ b/.github/workflows/pr_file_version.yaml @@ -0,0 +1,295 @@ +# This reusable workflow checks changes to receiver_defs.h. +# It validates the File Major and File Minor labels based on +# changes to HDF5_WRITER_VERSION or BINARY_WRITER_VERSION. +# +# File Major: +# The value before the decimal point changes. +# +# File Minor: +# Only the value after the decimal point changes. +# +# Existing labels are never silently removed. If the labels do not +# match the detected version change, the workflow fails. + +name: PR File Version + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + pull-requests: write + contents: read + +jobs: + file-version: + name: Check file version + runs-on: ubuntu-latest + + steps: + - name: Check file version + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + + const filePath = + 'slsReceiverSoftware/src/receiver_defs.h'; + + const versionDefinitions = [ + 'HDF5_WRITER_VERSION', + 'BINARY_WRITER_VERSION' + ]; + + /* + * -------------------------------------------------- + * 1. Get current PR labels. + * -------------------------------------------------- + */ + const { data: currentLabels } = + await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + + const currentLabelNames = + currentLabels.map(label => label.name); + + const hasFileMajor = + currentLabelNames.includes('File Major'); + + const hasFileMinor = + currentLabelNames.includes('File Minor'); + + const hasBreakingAPI = + currentLabelNames.includes('Breaking API'); + + /* + * File Major and File Minor are mutually exclusive. + */ + if (hasFileMajor && hasFileMinor) { + core.setFailed( + 'Both "File Major" and "File Minor" labels are present. Remove both labels and let the workflow determine the correct label based on changes to receiver_defs.h.' + ); + return; + } + + /* + * -------------------------------------------------- + * 2. Get all files changed by the PR. + * -------------------------------------------------- + */ + const files = await github.paginate( + github.rest.pulls.listFiles, + { + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + per_page: 100 + } + ); + + /* + * -------------------------------------------------- + * 3. Check whether receiver_defs.h was changed. + * -------------------------------------------------- + */ + const changedFile = files.find( + file => file.filename === filePath + ); + + if (!changedFile) { + if (hasFileMajor || hasFileMinor) { + core.setFailed( + `${filePath} was not changed, but a File Major/File Minor label is present. Remove the label and let the workflow determine the correct label based on changes to receiver_defs.h.` + ); + return; + } + + core.info( + `${filePath} was not changed. No file version label required.` + ); + return; + } + + core.info( + `${filePath} was changed. Checking file version definitions.` + ); + + /* + * -------------------------------------------------- + * 4. Check the changed lines in the patch. + * -------------------------------------------------- + */ + const patch = changedFile.patch || ''; + + const oldVersions = {}; + const newVersions = {}; + + const versionRegex = + /^([+-])\s*#define\s+(HDF5_WRITER_VERSION|BINARY_WRITER_VERSION)\s+\((\d+)\.(\d+)\)/; + + for (const line of patch.split('\n')) { + const match = line.match(versionRegex); + + if (!match) { + continue; + } + + const changeType = match[1]; + const name = match[2]; + const major = Number(match[3]); + const minor = Number(match[4]); + + if (changeType === '-') { + oldVersions[name] = { + major, + minor + }; + } else if (changeType === '+') { + newVersions[name] = { + major, + minor + }; + } + } + + /* + * -------------------------------------------------- + * 5. Determine the file version change. + * -------------------------------------------------- + */ + let versionChanged = false; + let majorChange = false; + + for (const name of versionDefinitions) { + const oldVersion = oldVersions[name]; + const newVersion = newVersions[name]; + + /* + * Both old and new definitions must be present + * in order to identify a version change. + */ + if (!oldVersion || !newVersion) { + continue; + } + + /* + * Ignore the definition if the version did not + * actually change. + */ + if ( + oldVersion.major === newVersion.major && + oldVersion.minor === newVersion.minor + ) { + continue; + } + + versionChanged = true; + + core.info( + `${name}: ` + + `${oldVersion.major}.${oldVersion.minor} -> ` + + `${newVersion.major}.${newVersion.minor}` + ); + + /* + * A change before the decimal point is a + * major version change. + */ + if (oldVersion.major !== newVersion.major) { + majorChange = true; + } + } + + /* + * -------------------------------------------------- + * 6. No relevant version change. + * -------------------------------------------------- + */ + if (!versionChanged) { + if (hasFileMajor || hasFileMinor) { + core.setFailed( + `Neither HDF5_WRITER_VERSION nor BINARY_WRITER_VERSION was changed, but a File Major/File Minor label is present. Remove the labels and let the workflow determine the correct label based on changes to receiver_defs.h.` + ); + return; + } + + core.info( + 'Neither HDF5_WRITER_VERSION nor BINARY_WRITER_VERSION was changed. No file version label required.' + ); + return; + } + + /* + * -------------------------------------------------- + * 7. Major version change. + * -------------------------------------------------- + */ + if (majorChange) { + if (hasFileMinor) { + core.setFailed( + 'A major file version change was detected, but the PR has the "File Minor" label. Remove the "File Minor" label and let the workflow determine the correct label based on changes to receiver_defs.h.' + ); + return; + } + + if (!hasBreakingAPI) { + core.setFailed( + 'A major file version change was detected, and the PR has not recognized "Breaking API". Please check the checkbox "Breaking API" in the PR description so that the appropriate label can be added to the PR and milestone recalculated.' + ); + return; + } + + if (!hasFileMajor) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: ['File Major'] + }); + + core.info( + 'Added label: File Major' + ); + } else { + core.info( + 'File Major label and Breaking API label are correctly present.' + ); + } + + return; + } + + /* + * -------------------------------------------------- + * 8. Minor version change. + * -------------------------------------------------- + */ + if (hasFileMajor) { + core.setFailed( + 'Only a minor file version change was detected, but the PR has the "File Major" label. Remove the "File Major" label and let the workflow determine the correct label based on changes to receiver_defs.h.' + ); + return; + } + + if (!hasFileMinor) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: ['File Minor'] + }); + + core.info( + 'Added label: File Minor' + ); + } else { + core.info( + 'File Minor label is correctly present.' + ); + } \ No newline at end of file diff --git a/.github/workflows/pr_synchronize_trigger.yaml b/.github/workflows/pr_synchronize_trigger.yaml index d455d254c..ce014b5a4 100644 --- a/.github/workflows/pr_synchronize_trigger.yaml +++ b/.github/workflows/pr_synchronize_trigger.yaml @@ -1,4 +1,4 @@ -# This workflow is triggered when code is pushed to a pull request. It runs the reusable detector label workflow. +# This workflow is triggered when code is pushed to a pull request. It runs the reusable detector label workflow and the file version workflow in parallel. name: PR Synchronize Trigger @@ -19,3 +19,11 @@ jobs: permissions: pull-requests: write issues: read + + file-version: + uses: ./.github/workflows/pr_file_version.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: write + contents: read \ No newline at end of file From 0a3475bf85de3d64e212d30e562b21e794bc8b20 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 10 Sep 2026 16:25:00 +0200 Subject: [PATCH 12/21] Any bug fixes now go into release candidate (#1557) --- .github/release-targets.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/release-targets.yaml b/.github/release-targets.yaml index 70878f838..1405a4392 100644 --- a/.github/release-targets.yaml +++ b/.github/release-targets.yaml @@ -1,3 +1,3 @@ major: "11.0.0" minor: "10.2.0" -bug_fix: "10.1.1" \ No newline at end of file +bug_fix: "10.1.0" \ No newline at end of file From 63e2624cf0d69f28f19be6f59750a6420135b4b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Fr=C3=B6jdh?= Date: Fri, 11 Sep 2026 10:41:14 +0200 Subject: [PATCH 13/21] removed psi-pmodules (#1556) --- .../DetectorSoftware/slsDetectorPackage/build | 17 ----------------- .../slsDetectorPackage/files/fname-fix.patch | 13 ------------- .../slsDetectorPackage/files/variants | 17 ----------------- .../slsDetectorPackage/files/variants.yaml | 3 --- .../slsDetectorPackage/modulefile | 9 --------- 5 files changed, 59 deletions(-) delete mode 100755 psi-pmodules/DetectorSoftware/slsDetectorPackage/build delete mode 100644 psi-pmodules/DetectorSoftware/slsDetectorPackage/files/fname-fix.patch delete mode 100644 psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants delete mode 100644 psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants.yaml delete mode 100644 psi-pmodules/DetectorSoftware/slsDetectorPackage/modulefile diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/build b/psi-pmodules/DetectorSoftware/slsDetectorPackage/build deleted file mode 100755 index 3657b1f60..000000000 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/build +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env modbuild - -pbuild::set_download_url "https://github.com/slsdetectorgroup/$P/archive/refs/tags/${V_PKG}.tar.gz" - -pbuild::add_to_group 'DetectorSoftware' -pbuild::add_configure_args '-DSLS_USE_SIMULATOR=ON' -pbuild::add_configure_args '-DSLS_USE_GUI=ON' - -if (( V_MAJOR < 7 )); then - pbuild::add_patch 'files/fname-fix.patch' -fi - -# Local Variables: -# mode: sh -# sh-basic-offset: 8 -# tab-width: 8 -# End: diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/fname-fix.patch b/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/fname-fix.patch deleted file mode 100644 index f773eb937..000000000 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/fname-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/slsSupportLib/CMakeLists.txt b/slsSupportLib/CMakeLists.txt -index efa8010..e842b3d 100755 ---- a/slsSupportLib/CMakeLists.txt -+++ b/slsSupportLib/CMakeLists.txt -@@ -46,7 +46,7 @@ if(SLS_DEVEL_HEADERS) - include/sls/versionAPI.h - include/sls/ZmqSocket.h - include/sls/bit_utils.h -- include/sls/mdf5.h -+ include/sls/md5.h - include/sls/md5_helper.h - ) - endif() diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants b/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants deleted file mode 100644 index f546606f3..000000000 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants +++ /dev/null @@ -1,17 +0,0 @@ -slsDetectorPackage/6.1.1 stable cmake/3.15.5 zeromq/4.3.4 -slsDetectorPackage/7.0.1_rh7 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/7.0.1_rh8 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/7.0.2_rh7 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/7.0.2_rh8 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/7.0.3_rh7 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/7.0.3_rh8 stable cmake/3.15.5 zeromq/4.3.4 Qt/5.12.10 -slsDetectorPackage/8.0.0_rh7 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/8.0.0_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/8.0.1_rh7 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/8.0.1_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/8.0.2_rh7 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/8.0.2_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/9.0.0_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/9.1.0_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/9.1.1_rh8 stable cmake/3.15.5 Qt/5.12.10 -slsDetectorPackage/9.2.0_rh8 stable cmake/3.15.5 Qt/5.12.10 diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants.yaml b/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants.yaml deleted file mode 100644 index 8725ca71b..000000000 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants.yaml +++ /dev/null @@ -1,3 +0,0 @@ -slsDetectorPackage/6.1.1: - - relstage: unstable - build_requires: cmake/3.15.5 zeromq/4.3.4 diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/modulefile b/psi-pmodules/DetectorSoftware/slsDetectorPackage/modulefile deleted file mode 100644 index 0008cc87a..000000000 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/modulefile +++ /dev/null @@ -1,9 +0,0 @@ -#%Module1.0 - -module-whatis "SLS detector package" -module-url "https://www.psi.ch/en/lxn/software-releases" -module-license "GNU LGPL 3.0" -module-maintainer "Lars Erik Froejdh " - -module-help " -" From 75026a0f6bf1b78ed8f8159f872a13783a0c7c02 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 11 Sep 2026 11:20:35 +0200 Subject: [PATCH 14/21] pr automation 4 (#1554) * If it doesnt find the milestone it should fail * separated into 2 steps: 1. figure out the target milestone, 2. to set it. If main branch, do nothing, if rc branch target, then set milestone to that, if developer but with equivalent PRs listed with one in an rc branch, then that is the milstone, else read the yaml file and figure it out * setting milestone only for developer or rc branches --- .github/workflows/pr_milestone.yaml | 118 ++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 17 deletions(-) diff --git a/.github/workflows/pr_milestone.yaml b/.github/workflows/pr_milestone.yaml index 91a51c405..a58d50bd8 100644 --- a/.github/workflows/pr_milestone.yaml +++ b/.github/workflows/pr_milestone.yaml @@ -20,7 +20,8 @@ jobs: runs-on: ubuntu-latest steps: - - name: Set milestone + - name: Determine target milestone + id: determine-milestone uses: actions/github-script@v8 with: script: | @@ -38,16 +39,100 @@ jobs: const baseBranch = pullRequest.base.ref; /* - * Return early if base is main branch. Milestone is already + * 1. Return early if base is main branch. Milestone is already * managed and probably done when merging to main. */ if (baseBranch === 'main') { core.info('PR targets main. Milestone is managed separately.'); + core.setOutput('target_milestone', ''); return; } /* - * Read release targets through the GitHub API + * Helper function to set the target milestone output. + */ + const setTargetMilestoneOutput = (targetMilestone) => { + core.info(`Target milestone: ${targetMilestone}`); + core.setOutput('target_milestone', targetMilestone); + }; + + /* + * 2. If PR targets a release-candidate branch (for example 9.1.0.rc), + * set milestone to the release version prefix (for example 9.1.0) + * and return early. + */ + if (baseBranch.endsWith('.rc')) { + const targetMilestone = baseBranch.replace(/\.rc$/, ''); + + core.info( + `PR targets release-candidate branch "${baseBranch}". ` + + `Using milestone "${targetMilestone}".` + ); + + setTargetMilestoneOutput(targetMilestone); + return; + } + + /** + * 3. If PR targets a branch that is not developer, do nothing. + */ + if (baseBranch !== 'developer') { + core.info('PR does not target developer branch. Skipping milestone management.'); + core.setOutput('target_milestone', ''); + return; + } + + /* + * 4. If PR targets developer, check "Equivalent PRs" in the PR body. + * If an equivalent PR targets an RC branch (for example 9.1.0.rc), + * use the corresponding release milestone (for example 9.1.0). + */ + if (baseBranch === 'developer') { + const equivalentPrSectionMatch = pullRequest.body?.match( + /(^|\n)#{1,6}\s*Equivalent PRs\s*\n([\s\S]*?)(?=\n#{1,6}\s+\S|\s*$)/i + ); + + const equivalentPrNumbers = + equivalentPrSectionMatch?.[2] + ? Array.from( + equivalentPrSectionMatch[2].matchAll(/#(\d+)/g), + match => Number(match[1]) + ) + : []; + + for (const equivalentPrNumber of equivalentPrNumbers) { + if (equivalentPrNumber === prNumber) { + continue; + } + + const { data: equivalentPr } = + await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: equivalentPrNumber + }); + + const equivalentBaseBranch = equivalentPr.base.ref; + + if (!equivalentBaseBranch.endsWith('.rc')) { + continue; + } + + const targetMilestone = + equivalentBaseBranch.replace(/\.rc$/, ''); + + core.info( + `Developer PR references RC PR #${equivalentPrNumber} ` + + `(${equivalentBaseBranch}). Using milestone "${targetMilestone}".` + ); + + setTargetMilestoneOutput(targetMilestone); + return; + } + } + + /* + * 5. Read release targets through the GitHub API * from the base branch of PR. */ const { data: file } = @@ -81,6 +166,9 @@ jobs: const bugFix = getTarget('bug_fix'); if (!major || !minor || !bugFix) { + core.setFailed( + 'Required release targets (major, minor, bug_fix) could not be resolved from yaml file.' + ); return; } @@ -114,19 +202,22 @@ jobs: ) { targetMilestone = bugFix; } else { - core.info( + core.setFailed( 'No milestone-related labels found.' ); return; } - core.info( - `Target milestone: ${targetMilestone}` - ); + setTargetMilestoneOutput(targetMilestone); + + - name: Set milestone + if: steps.determine-milestone.outputs.target_milestone != '' + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + const targetMilestone = '${{ steps.determine-milestone.outputs.target_milestone }}'; - /* - * Find the milestone. - */ const { data: milestones } = await github.rest.issues.listMilestones({ owner: context.repo.owner, @@ -143,15 +234,8 @@ jobs: `Milestone "${targetMilestone}" was not found.` ); return; - } else { - core.info( - `Found milestone "${targetMilestone}".` - ); } - /* - * Set the milestone. - */ await github.rest.issues.update({ owner: context.repo.owner, repo: context.repo.repo, From b93520bba5e1194945f1d2bd9023e165bbc8c981 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 21 Sep 2026 11:26:19 +0200 Subject: [PATCH 15/21] Dev/pr automation 5 (#1564) * check the presence of release notes * release notes found should not include heading * debugging * typo * typo * trim out no release note checkbox as well * refactored to only read current section * minor * release note now triggered after detector labels, removed no relaes note checkbox, also checking if its developing detector label only, then also release note not required, adding a fake ai assisted releae note if found locally, removing adding release notelabel * minor * print * to run everytim * typo * ai assisted * into steps * coimment out release notes workflow * read permissions * copilot * removed ai assisted notes * refactored --- .github/workflows/pr_edit_trigger.yaml | 56 ++++- .github/workflows/pr_release_notes.yaml | 262 ++++++++++++++++++++++++ 2 files changed, 310 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/pr_release_notes.yaml diff --git a/.github/workflows/pr_edit_trigger.yaml b/.github/workflows/pr_edit_trigger.yaml index b43e7c3e4..8ff50c1f0 100644 --- a/.github/workflows/pr_edit_trigger.yaml +++ b/.github/workflows/pr_edit_trigger.yaml @@ -1,4 +1,4 @@ -# This workflow is triggered when opening/reopening PR, editing the PR description or changing labels. It ignores unrelated label changes. It runs PR type validation and if it succeeds, it runs PR milestone and detector labels workflow in parallel. +# This workflow is triggered when opening/reopening PR, editing the PR description or changing labels. It ignores unrelated label changes. It runs PR type validation and if it succeeds, it runs PR milestone, release notes, file version and detector labels workflow in parallel. name: PR Edit Trigger on: @@ -13,6 +13,7 @@ on: permissions: pull-requests: write contents: read + models: read jobs: check-pr-trigger: @@ -102,7 +103,17 @@ jobs: contents: read milestone: - needs: validate-pr-type + needs: + - check-pr-trigger + - validate-pr-type + if: >- + ${{ + always() && + ( + needs.check-pr-trigger.outputs.require_validation == 'false' || + needs.validate-pr-type.result == 'success' + ) + }} uses: ./.github/workflows/pr_milestone.yaml with: pr_number: ${{ github.event.pull_request.number }} @@ -111,7 +122,17 @@ jobs: contents: read detector-labels: - needs: validate-pr-type + needs: + - check-pr-trigger + - validate-pr-type + if: >- + ${{ + always() && + ( + needs.check-pr-trigger.outputs.require_validation == 'false' || + needs.validate-pr-type.result == 'success' + ) + }} uses: ./.github/workflows/pr_detector_labels.yaml with: pr_number: ${{ github.event.pull_request.number }} @@ -119,6 +140,25 @@ jobs: pull-requests: write issues: read + release-notes: + needs: + - check-pr-trigger + - detector-labels + if: >- + ${{ + always() && + ( + needs.check-pr-trigger.outputs.require_validation == 'false' || + needs.detector-labels.result == 'success' + ) + }} + uses: ./.github/workflows/pr_release_notes.yaml + with: + pr_number: ${{ github.event.pull_request.number }} + permissions: + pull-requests: read + contents: read + file-version: needs: - check-pr-trigger @@ -127,11 +167,11 @@ jobs: ${{ always() && ( - needs.check-pr-trigger.outputs.file_label_change == 'true' || - ( - needs.check-pr-trigger.outputs.pr_edited == 'true' && - needs.validate-pr-type.result == 'success' - ) + needs.check-pr-trigger.outputs.file_label_change == 'true' + ) || + ( + needs.check-pr-trigger.outputs.require_validation == 'false' || + needs.validate-pr-type.result == 'success' ) }} uses: ./.github/workflows/pr_file_version.yaml diff --git a/.github/workflows/pr_release_notes.yaml b/.github/workflows/pr_release_notes.yaml new file mode 100644 index 000000000..877835793 --- /dev/null +++ b/.github/workflows/pr_release_notes.yaml @@ -0,0 +1,262 @@ +# This reusable workflow validates the PR release notes. It ignores comments and +#

    blocks, checks for notes under the "## Release notes" section. If +# it is not an Infrastructure PR and release notes are not found, it should find +# them in an equivalent PR or referenced PR, else validation fails. If it is an +# Infrastructure PR and release notes are found, validation fails. + +name: PR Release Notes + +on: + workflow_call: + inputs: + pr_number: + required: true + type: number + +permissions: + pull-requests: read + contents: read + +jobs: + check-release-notes: + name: Check PR release notes + runs-on: ubuntu-latest + + steps: + + - name: Validate with labels + id: validate-labels + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + if (!prNumber) { + core.setFailed('Unable to determine PR number.'); + return; + } + + core.setOutput('is_main_branch', 'false'); + core.setOutput('require_release_notes', 'true'); + + // base branch: main => no validation needed + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + const baseBranch = pr.base.ref; + if (baseBranch === 'main') { + core.info('PR targets main branch. Release notes validation is not required.'); + core.setOutput('is_main_branch', 'true'); + core.setOutput('require_release_notes', 'false'); + return; + } + + // get current PR labels + const { data: labels } = + await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber + }); + const labelNames = labels.map(label => label.name); + + // infrastructure label + const hasInfrastructure = labelNames.includes('Infrastructure'); + core.info('Infrastructure label: ' + hasInfrastructure); + + // developer detector label + const developingDetectorLabels = ['Ctb', 'Xilinx Ctb', 'Matterhorn']; + const otherDetectorLabels = ['Eiger', 'Mythen3', 'Gotthard2', 'Jungfrau', 'Moench']; + const hasDevelopingDetectorLabel = labelNames.some( + label => developingDetectorLabels.includes(label) + ); + const hasOtherDetectorLabel = labelNames.some( + label => otherDetectorLabels.includes(label) + ); + const hasOnlyDevelopingDetectors = + hasDevelopingDetectorLabel && !hasOtherDetectorLabel; + core.info('Only developing detector labels: ' + hasOnlyDevelopingDetectors + '\n'); + + if (hasInfrastructure || hasOnlyDevelopingDetectors) { + core.setOutput('require_release_notes', 'false'); + core.info ('Release notes required: false'); + return; + } + + core.info('Release notes required: true'); + + + - name: Find release notes in current PR + id: find-current + if: steps.validate-labels.outputs.is_main_branch == 'false' + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + core.setOutput('needs_further_action', 'false'); + + // some functions to help find release notes in current PR body + const stripIgnoredContent = (text = '') => { + return (text || '') + .replace(//gs, '\n') + .replace(//gi, '\n') + .trim(); + }; + const findReleaseNotesSection = (body = '') => { + const sanitized = stripIgnoredContent(body || ''); + if (!sanitized) return ''; + + const match = sanitized.match( + /(^|\n)#{1,6}\s*Release notes\s*\n([\s\S]*?)(?=\n#{1,6}\s+\S|\s*$)/i + ); + if (!match) return ''; + + let section = (match[2] || '') + .split('\n') + .filter(line => !/^#{1,6}\s+/.test(line.trim())) + .join('\n') + .trim(); + + return section; + }; + + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + // find release notes in the current PR body + const releaseNotes = findReleaseNotesSection(pr.body || ''); + const hasReleaseNotesCurrent = Boolean(releaseNotes); + core.info('Release notes in current PR: ' + (hasReleaseNotesCurrent ? 'Found\n' : 'Not found\n')); + + // validate release notes requirement + const requireReleaseNotes = '${{ steps.validate-labels.outputs.require_release_notes }}' === 'true'; + if (!requireReleaseNotes) { + if (hasReleaseNotesCurrent) { + core.setFailed('Release notes cannot be included for this PR ' + + '(Infrastructure/developing detector). \n' + + 'To fix this, \n' + + '\t - remove release notes or\n' + + '\t - change PR type or\n' + + '\t - add/remove detector labels.\n'); + return; + } + core.info('No further action required (Infrastructure/developing detector).'); + return; + } + + if (hasReleaseNotesCurrent) { + core.info('No further action required.'); + return; + } + + core.setOutput('needs_further_action', 'true'); + core.info('Further action required.'); + + - name: Find release notes in linked PRs + if: >- + ${{ + steps.validate-labels.outputs.is_main_branch == 'false' && + steps.find-current.outputs.needs_further_action == 'true' + }} + uses: actions/github-script@v8 + with: + script: | + const prNumber = ${{ inputs.pr_number }}; + + // functions to find release notes in linked PRs + const stripIgnoredContent = (text = '') => { + return (text || '') + .replace(//gs, '\n') + .replace(//gi, '\n') + .trim(); + }; + const findReleaseNotesSection = (body = '') => { + const sanitized = stripIgnoredContent(body || ''); + if (!sanitized) return ''; + + const match = sanitized.match( + /(^|\n)#{1,6}\s*Release notes\s*\n([\s\S]*?)(?=\n#{1,6}\s+\S|\s*$)/i + ); + if (!match) return ''; + + return (match[2] || '') + .split('\n') + .filter(line => !/^#{1,6}\s+/.test(line.trim())) + .join('\n') + .trim(); + }; + const parseNumberList = (text) => { + if (!text) { + return []; + } + return Array.from( + new Set( + Array.from(text.matchAll(/#(\d+)/g), match => Number(match[1])) + ) + ); + }; + const findReferencedPrNumbers = (body = '') => { + if (!body) { + return []; + } + const relevantSections = [ + 'Equivalent PRs', + 'Referenced PRs' + ]; + const patterns = relevantSections.map(section => + new RegExp( + `(^|\\n)#{1,6}\\s*${section.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&')}\\s*\\n([\\s\\S]*?)(?=\\n#{1,6}\\s+\\S|\\s*$)`, + 'i' + ) + ); + const numbers = []; + for (const pattern of patterns) { + const match = body.match(pattern); + if (match && match[2]) { + numbers.push(...parseNumberList(match[2])); + } + } + return Array.from(new Set(numbers)); + }; + + // Loop thorough linked PRs to find release notes + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber + }); + + const equivalentAndReferencedPrNumbers = findReferencedPrNumbers(pr.body || ''); + for (const referencedPrNumber of equivalentAndReferencedPrNumbers) { + if (referencedPrNumber === prNumber) { + continue; + } + try { + const { data: referencedPr } = + await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: referencedPrNumber + }); + const referencedNotes = findReleaseNotesSection(referencedPr.body || ''); + if (referencedNotes) { + core.info( + `Release notes found: In equivalent/referenced PR ` + + `#${referencedPrNumber}. Using that as the source for this PR.` + ); + return; + } + } catch (error) { + core.warning( + `Unable to inspect referenced PR #${referencedPrNumber}: ${error.message}` + ); + } + } + + core.setFailed( + 'No release notes were found in the PR body, equivalent PRs, or referenced PRs.' + ); \ No newline at end of file From 01799a8773ce4cff9bfcb1647df92efd23e17767 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 21 Sep 2026 14:56:14 +0200 Subject: [PATCH 16/21] Dev/fix jungfrau pedestal max loops (#1549) * jf firmware already fixed max loops for pedestalmode. allow the max now. should have been in 9.1 firmware * binary in * fixed tests * unnecessary checks * binary in --- .../bin/jungfrauDetectorServer_developer | Bin 320608 -> 320416 bytes .../slsDetectorServer_defs.h | 1 - .../src/slsDetectorServer_funcs.c | 7 ------- .../tests/Caller/test-Caller-jungfrau.cpp | 4 +++- slsSupportLib/include/sls/versionAPI.h | 2 +- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 8c08da57223e9d376b196e916f35307cf6b2264b..362047d6447285a520a576f1dca9b552fc665b1d 100755 GIT binary patch delta 119523 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�<{e=J6aeW03F+_3ltKFIVqvi!E2fcQBL-Q7 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%0Ae+wF>^{+2T^EqE5| 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

    uQsIuz~%*j`X+8Msa7V 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 diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 580e3d295..aaf8fd7fc 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -63,7 +63,6 @@ #define DEFAULT_TIMING_INFO_DECODER (SWISSFEL) #define DEFAULT_ELECTRON_COLLECTION_MODE (0) -#define MAX_PEDESTAL_LOOPS (0xFF) // until fixed in firmware #define HIGHVOLTAGE_MIN (60) #define HIGHVOLTAGE_MAX (200) #define DAC_MIN_MV (0) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 34c7eda6a..1d6b51aef 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -10745,13 +10745,6 @@ int set_pedestal_mode(int file_des) { "be 0. [%hhu, %hu].\n", frames, loops); LOG(logERROR, (mess)); - } else if (loops > MAX_PEDESTAL_LOOPS) { - ret = FAIL; - sprintf(mess, - "Could not set pedestal mode. Loops [%hu] cannot be " - "greater than %d.\n", - loops, MAX_PEDESTAL_LOOPS); - LOG(logERROR, (mess)); } else { setPedestalMode(enable, frames, loops); int retvalEnable = getPedestalMode(); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp index 0d09c1f74..ede7c3671 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp @@ -524,10 +524,12 @@ TEST_CASE("pedestalmode", "[.detectorintegration]") { REQUIRE_THROWS(caller.call("pedestalmode", {"256", "10"}, -1, PUT)); REQUIRE_THROWS(caller.call("pedestalmode", {"-1", "10"}, 0, PUT)); - REQUIRE_THROWS(caller.call("pedestalmode", {"20", "1000"}, 0, PUT)); + REQUIRE_THROWS(caller.call("pedestalmode", {"20", "65536"}, 0, PUT)); REQUIRE_THROWS(caller.call("pedestalmode", {"2000", "100"}, 0, PUT)); REQUIRE_THROWS(caller.call("pedestalmode", {"20", "-1"}, 0, PUT)); + REQUIRE_NOTHROW(caller.call("pedestalmode", {"20", "4000"}, 0, PUT)); + { std::ostringstream oss; caller.call("pedestalmode", {"30", "100"}, -1, PUT, oss); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 489e4b038..73955104c 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -8,6 +8,6 @@ #define APIMOENCH "0.0.0 0x260424" #define APIEIGER "0.0.0 0x260807" #define APIXILINXCTB "0.0.0 0x260813" -#define APIJUNGFRAU "0.0.0 0x260814" +#define APIJUNGFRAU "0.0.0 0x260902" #define APIMYTHEN3 "0.0.0 0x260506" #define APIMATTERHORN "0.0.0 0x260529" From 7a2ff7715f999dca26a30983553855f3a7e8fa30 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 22 Sep 2026 15:34:08 +0200 Subject: [PATCH 17/21] Give a tip when the test fails at num frames caught(pc tuning options) (#1566) --- slsDetectorSoftware/tests/acquire/Acquire.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/slsDetectorSoftware/tests/acquire/Acquire.cpp b/slsDetectorSoftware/tests/acquire/Acquire.cpp index bc738174d..411829b68 100644 --- a/slsDetectorSoftware/tests/acquire/Acquire.cpp +++ b/slsDetectorSoftware/tests/acquire/Acquire.cpp @@ -35,7 +35,8 @@ void run(Detector &det, const AcquisitionState &acq_state, const FileState &file_state) { INFO(ToString(det.getDetectorType().squash(defs::GENERIC)) - << " acquiring with num_frames = " << acq_state.num_frames); + << " acquiring with num_frames = " << acq_state.num_frames + << ". Check PC Tuning Options\n"); FileStateGuard file_guard(det, file_state); AcquisitionStateGuard acq_guard(det, acq_state); From 32437267efd1e53c2c9d3e9128dbeeabafd22411 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 23 Sep 2026 11:47:16 +0200 Subject: [PATCH 18/21] Dev/pr automation 6 (#1575) * user should be allowed to manually remove detector label * automation script fix --- .github/workflows/pr_edit_trigger.yaml | 38 ++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr_edit_trigger.yaml b/.github/workflows/pr_edit_trigger.yaml index 8ff50c1f0..9a344cf35 100644 --- a/.github/workflows/pr_edit_trigger.yaml +++ b/.github/workflows/pr_edit_trigger.yaml @@ -23,6 +23,7 @@ jobs: outputs: require_validation: ${{ steps.check.outputs.require_validation }} file_label_change: ${{ steps.check.outputs.file_label_change }} + detector_label_change: ${{ steps.check.outputs.detector_label_change }} pr_edited: ${{ steps.check.outputs.pr_edited }} steps: @@ -33,6 +34,7 @@ jobs: script: | let requireValidation = true; let fileLabelChange = false; + let detectorLabelChange = false; /* * If triggered by label change, ignore unrelated labels. @@ -65,8 +67,22 @@ jobs: ]; if (fileLabels.includes(changedLabel)) { fileLabelChange = true; - } - } + } + + const detectorLabels = [ + 'Ctb', + 'Eiger', + 'Moench', + 'Mythen3', + 'Jungfrau', + 'Gotthard2', + 'Matterhorn', + 'Xilinx_ctb' + ]; + if (detectorLabels.includes(changedLabel)) { + detectorLabelChange = true; + } + } core.setOutput( 'require_validation', @@ -76,6 +92,10 @@ jobs: 'file_label_change', fileLabelChange.toString() ); + core.setOutput( + 'detector_label_change', + detectorLabelChange.toString() + ); core.setOutput( 'pr_edited', prEdited.toString() @@ -90,7 +110,12 @@ jobs: core.info('File label or Breaking API: Changed.'); } else { core.info('File label or Breaking API: No Change.'); - } + } + if (detectorLabelChange) { + core.info('Detector label: Changed.'); + } else { + core.info('Detector label: No Change.'); + } validate-pr-type: needs: check-pr-trigger @@ -129,8 +154,11 @@ jobs: ${{ always() && ( - needs.check-pr-trigger.outputs.require_validation == 'false' || - needs.validate-pr-type.result == 'success' + needs.check-pr-trigger.outputs.detector_label_change == 'false' && + ( + needs.check-pr-trigger.outputs.require_validation == 'false' || + needs.validate-pr-type.result == 'success' + ) ) }} uses: ./.github/workflows/pr_detector_labels.yaml From ea0fa0d992b468ce82ae82999b1cad638f046d4a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 23 Sep 2026 11:57:22 +0200 Subject: [PATCH 19/21] dev/ removed obsolete branch conditions on workflow (#1572) * removed obsolete branch conditions on workflow * workflow dispatch added --- .github/workflows/build_wheel.yml | 3 --- .github/workflows/cmake.yaml | 11 +---------- .github/workflows/conda_library.yaml | 6 +----- .github/workflows/conda_python.yaml | 6 +----- .github/workflows/run_tests.yaml | 4 +--- 5 files changed, 4 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml index 53a7e456c..9e1d2df20 100644 --- a/.github/workflows/build_wheel.yml +++ b/.github/workflows/build_wheel.yml @@ -3,9 +3,6 @@ name: Build wheel on: workflow_dispatch: pull_request: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' push: branches: - main diff --git a/.github/workflows/cmake.yaml b/.github/workflows/cmake.yaml index a49f08140..c6903502b 100644 --- a/.github/workflows/cmake.yaml +++ b/.github/workflows/cmake.yaml @@ -1,15 +1,6 @@ name: Native CMake Build -on: - push: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' - pull_request: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' - workflow_dispatch: +on: [push, pull_request, workflow_dispatch] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) diff --git a/.github/workflows/conda_library.yaml b/.github/workflows/conda_library.yaml index 8d39bfad9..58a504bd6 100644 --- a/.github/workflows/conda_library.yaml +++ b/.github/workflows/conda_library.yaml @@ -1,10 +1,6 @@ name: Build slsdetlib -on: - pull_request: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' +on: [pull_request] jobs: build: diff --git a/.github/workflows/conda_python.yaml b/.github/workflows/conda_python.yaml index 733cb263d..d95d430b8 100644 --- a/.github/workflows/conda_python.yaml +++ b/.github/workflows/conda_python.yaml @@ -1,10 +1,6 @@ name: slsdet -on: - pull_request: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' +on: [pull_request] jobs: build: diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index 19d7a7f03..90bf980be 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -2,9 +2,7 @@ name: Run Simulator Tests on: push: - branches-ignore: - - 'dev/pr_automation*' - - 'dev/test_pr_automation*' + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) From fa10e465cbffe8b2a8bc7c4a9a9380f55510f113 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 23 Sep 2026 11:58:32 +0200 Subject: [PATCH 20/21] dev/fix receiver num 2 interfaces fwrite (#1567) * when changing num interfaces, also setting up file writer if file write was enabled. added tests inside numinterface (from 2 to 1) to take an acquisition and check if the file exists * separate the tests that need files for github --- .../tests/Caller/test-Caller.cpp | 48 ++++++++++++++++++- slsReceiverSoftware/src/Implementation.cpp | 7 +++ 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index fa7c55d50..4c677c0a3 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -2620,7 +2620,7 @@ TEST_CASE("numinterfaces", "[.detectorintegration]") { "inconsistent numinterfaces to test"); Result prev_udp_dest; IpAddr prev_src_ip2{}; - if (prev_val == 2 && det_type != defs::EIGER) { + if (prev_val == 2) { prev_udp_dest = det.getDestinationUDPList(0); prev_src_ip2 = det.getSourceUDPIP2()[0]; } @@ -2639,7 +2639,7 @@ TEST_CASE("numinterfaces", "[.detectorintegration]") { caller.call("numinterfaces", {}, -1, GET, oss); REQUIRE(oss.str() == "numinterfaces 1\n"); } - if (prev_val == 2 && det_type != defs::EIGER) { + if (prev_val == 2) { for (int i = 0; i != det.size(); ++i) { det.setDestinationUDPList({prev_udp_dest[i]}, {i}); } @@ -2663,6 +2663,50 @@ TEST_CASE("numinterfaces", "[.detectorintegration]") { REQUIRE_THROWS(caller.call("numinterfaces", {"0"}, -1, PUT)); } +TEST_CASE("numinterfaces_with_fwrite", + "[.detectorintegration][.disable_check_data_file]") { + Detector det; + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { + + // previous state + auto prev_val = det.getNumberofUDPInterfaces().tsquash( + "inconsistent numinterfaces to test"); + Result prev_udp_dest; + IpAddr prev_src_ip2{}; + if (prev_val == 2) { + prev_udp_dest = det.getDestinationUDPList(0); + prev_src_ip2 = det.getSourceUDPIP2()[0]; + } + auto prev_fwrite = + det.getFileWrite().tsquash("inconsistent file write state"); + + // testing file write before and after num interface change + det.setNumberofUDPInterfaces(2); + det.setFileWrite(true); + det.setNumberofUDPInterfaces(1); + REQUIRE(det.getFileWrite().tsquash("inconsistent file write state") == + true); + // check if file write actually works + auto acq_state = acq::default_acquisition_state(); + auto file_state = acq::default_file_state(); + file_state.file_format = defs::BINARY; + acq::run(det, acq_state, file_state); + std::string fname = acq::get_master_file_name(file_state); + REQUIRE(std::filesystem::exists(fname)); + + // restore previous state + det.setFileWrite(prev_fwrite); + if (prev_val == 2) { + for (int i = 0; i != det.size(); ++i) { + det.setDestinationUDPList({prev_udp_dest[i]}, {i}); + } + det.setSourceUDPIP2({prev_src_ip2}); + } + det.setNumberofUDPInterfaces(prev_val); + } +} + TEST_CASE("udp_srcip", "[.detectorintegration]") { Detector det; Caller caller(&det); diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 6a78b764e..60c704578 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -1164,6 +1164,13 @@ void Implementation::setNumberofUDPInterfaces(const int n) { // test socket buffer size with current set up setUDPSocketBufferSize(0); + + // set up file write if enabled + if (fileWriteEnable) { + for (const auto &it : dataProcessor) + it->SetupFileWriter(fileWriteEnable, fileFormatType, + &hdf5LibMutex); + } } LOG(logINFO) << "Number of Interfaces: " << generalData->numUDPInterfaces; From 68628d975c6502721d670cded0135165019dd6ab Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 24 Sep 2026 12:12:33 +0200 Subject: [PATCH 21/21] dev/ refactored test_dac_caller (#1577) * refactored test_dac_caller * fix for the changes so that dacname works --- .../Caller/test-Caller-chiptestboard.cpp | 16 +++--- .../tests/Caller/test-Caller-eiger.cpp | 43 ++++++-------- .../tests/Caller/test-Caller-global.cpp | 42 ++++++++++---- .../tests/Caller/test-Caller-global.h | 8 ++- .../tests/Caller/test-Caller-gotthard2.cpp | 57 +++++-------------- .../tests/Caller/test-Caller-jungfrau.cpp | 27 +++------ .../tests/Caller/test-Caller-moench.cpp | 27 +++------ .../tests/Caller/test-Caller-mythen3.cpp | 45 ++++++--------- 8 files changed, 111 insertions(+), 154 deletions(-) diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp index 214c2ffa8..0808d1099 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp @@ -574,17 +574,15 @@ TEST_CASE("dac", "[.detectorintegration][dacs]") { for (int idac = 0; idac < 18; ++idac) { SECTION("dac " + std::to_string(idac)) { - test_dac_caller(static_cast(idac), "dac", 0); - test_dac_caller(static_cast(idac), "dac", 1200); - test_dac_caller(static_cast(idac), "dac", 1200, - true); - test_dac_caller(static_cast(idac), "dac", -100); + test_dac_caller(static_cast(idac), 0); + test_dac_caller(static_cast(idac), 1200); + test_dac_caller(static_cast(idac), 1200, true); + test_dac_caller(static_cast(idac), -100); // dac name - det.setDacName(static_cast(idac), - "dacname" + std::to_string(idac)); - test_dac_caller(defs::DAC_0, "dacname" + std::to_string(idac), - -100); + std::string dacname_str = "dacname" + std::to_string(idac); + det.setDacName(static_cast(idac), dacname_str); + test_dacname_caller(dacname_str, -100); } REQUIRE_THROWS( caller.call("dac", {std::to_string(idac), "-2"}, -1, PUT)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp index f325d0edd..536cc2cda 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp @@ -126,37 +126,30 @@ TEST_CASE("temp_fpgafr", "[.detectorintegration]") { /* dacs */ -TEST_CASE("Setting and reading back EIGER dacs", - "[.detectorintegration][dacs]") { +TEST_CASE("eiger dac", "[.detectorintegration][dacs]") { // vsvp, vtr, vrf, vrs, vsvn, vtgstv, vcmp_ll, vcmp_lr, vcal, vcmp_rl, // rxb_rb, rxb_lb, vcmp_rr, vcp, vcn, vis, vthreshold Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::EIGER) { - SECTION("vsvp") { test_dac_caller(defs::VSVP, "vsvp", 5); } - SECTION("vtrim") { test_dac_caller(defs::VTRIM, "vtrim", 1200); } - SECTION("vrpreamp") { - test_dac_caller(defs::VRPREAMP, "vrpreamp", 1500); - } - SECTION("vrshaper") { - test_dac_caller(defs::VRSHAPER, "vrshaper", 1510); - } - SECTION("vsvn") { test_dac_caller(defs::VSVN, "vsvn", 3800); } - SECTION("vtgstv") { test_dac_caller(defs::VTGSTV, "vtgstv", 2550); } - SECTION("vcmp_ll") { test_dac_caller(defs::VCMP_LL, "vcmp_ll", 1400); } - SECTION("vcmp_lr") { test_dac_caller(defs::VCMP_LR, "vcmp_lr", 1400); } - SECTION("vcal") { test_dac_caller(defs::VCAL, "vcal", 1400); } - SECTION("vcmp_rl") { test_dac_caller(defs::VCMP_RL, "vcmp_rl", 1400); } - SECTION("rxb_rb") { test_dac_caller(defs::RXB_RB, "rxb_rb", 1400); } - SECTION("rxb_lb") { test_dac_caller(defs::RXB_LB, "rxb_lb", 1400); } - SECTION("vcmp_rr") { test_dac_caller(defs::VCMP_RR, "vcmp_rr", 1400); } - SECTION("vcp") { test_dac_caller(defs::VCP, "vcp", 1400); } - SECTION("vcn") { test_dac_caller(defs::VCN, "vcn", 1400); } - SECTION("vishaper") { - test_dac_caller(defs::VISHAPER, "vishaper", 1400); - } - SECTION("iodelay") { test_dac_caller(defs::IO_DELAY, "iodelay", 1400); } + SECTION("vsvp") { test_dac_caller(defs::VSVP, 5); } + SECTION("vtrim") { test_dac_caller(defs::VTRIM, 1200); } + SECTION("vrpreamp") { test_dac_caller(defs::VRPREAMP, 1500); } + SECTION("vrshaper") { test_dac_caller(defs::VRSHAPER, 1510); } + SECTION("vsvn") { test_dac_caller(defs::VSVN, 3800); } + SECTION("vtgstv") { test_dac_caller(defs::VTGSTV, 2550); } + SECTION("vcmp_ll") { test_dac_caller(defs::VCMP_LL, 1400); } + SECTION("vcmp_lr") { test_dac_caller(defs::VCMP_LR, 1400); } + SECTION("vcal") { test_dac_caller(defs::VCAL, 1400); } + SECTION("vcmp_rl") { test_dac_caller(defs::VCMP_RL, 1400); } + SECTION("rxb_rb") { test_dac_caller(defs::RXB_RB, 1400); } + SECTION("rxb_lb") { test_dac_caller(defs::RXB_LB, 1400); } + SECTION("vcmp_rr") { test_dac_caller(defs::VCMP_RR, 1400); } + SECTION("vcp") { test_dac_caller(defs::VCP, 1400); } + SECTION("vcn") { test_dac_caller(defs::VCN, 1400); } + SECTION("vishaper") { test_dac_caller(defs::VISHAPER, 1400); } + SECTION("iodelay") { test_dac_caller(defs::IO_DELAY, 1400); } SECTION("vthreshold") { // Read out individual vcmp to be able to reset after // the test is done diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp index 3ce1ec92a..84ab79e3e 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp @@ -45,35 +45,34 @@ void test_valid_port_caller(const std::string &command, } } -void test_dac_caller(defs::dacIndex index, const std::string &dacname, - int dacvalue, bool mV) { +void test_dac(defs::dacIndex index, std::string dacname, int dacvalue, + bool mV) { Detector det; Caller caller(&det); - std::string dac = dacname; auto value = std::to_string(dacvalue); auto previous = det.getDAC(index, false); - // chip test board - if (dacname == "dac") { - dac = std::to_string(static_cast(index)); - } { std::ostringstream oss; - std::vector args = {dac, value}; + std::vector args = {dacname, value}; if (mV) args.push_back("mV"); std::cout << "args:" << ToString(args) << std::endl; caller.call("dac", args, -1, PUT, oss); - REQUIRE(oss.str() == std::string("dac ") + dac + " " + value + + REQUIRE(oss.str() == std::string("dac ") + dacname + " " + value + (mV ? " mV\n" : "\n")); } { std::ostringstream oss; - std::vector args = {dac}; + std::vector args = {dacname}; if (mV) args.push_back("mV"); caller.call("dac", args, -1, GET, oss); - REQUIRE(oss.str() == - "dac " + dac + " " + value + (mV ? " mV\n" : "\n")); + { + std::ostringstream oss_expected; + oss_expected << "dac " << dacname << " " << value + << (mV ? " mV" : "") << '\n'; + REQUIRE(oss.str() == oss_expected.str()); + } } // Reset all dacs to previous value for (int i = 0; i != det.size(); ++i) { @@ -81,6 +80,25 @@ void test_dac_caller(defs::dacIndex index, const std::string &dacname, } } +void test_dac_caller(defs::dacIndex index, int dacvalue, bool mV) { + std::string dacname = sls::ToString(index); + // ctb: use only the index for dacname + // so that cli output is not 'dac dac 0' + if (index <= defs::DAC_17) { + dacname = std::to_string(static_cast(index)); + } + test_dac(index, dacname, dacvalue, mV); +} + +void test_dacname_caller(std::string dacname, int dacvalue, bool mV) { + Detector det; + auto detType = det.getDetectorType().squash(defs::GENERIC); + REQUIRE((detType == defs::CHIPTESTBOARD || + detType == defs::XILINX_CHIPTESTBOARD)); + auto index = det.getDacIndex(dacname); + test_dac(index, dacname, dacvalue, mV); +} + void test_onchip_dac_caller(defs::dacIndex index, const std::string &dacname, int dacvalue) { Detector det; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.h b/slsDetectorSoftware/tests/Caller/test-Caller-global.h index eabedbf7e..03df70ac5 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.h +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.h @@ -23,8 +23,12 @@ void test_valid_port_caller(const std::string &command, const std::vector &arguments, int detector_id, int action); -void test_dac_caller(slsDetectorDefs::dacIndex index, - const std::string &dacname, int dacvalue, bool mV = false); +void test_dac(defs::dacIndex index, std::string dacname, int dacvalue, + bool mV = false); +void test_dac_caller(slsDetectorDefs::dacIndex index, int dacvalue, + bool mV = false); +void test_dacname_caller(std::string dacname, int dacvalue, bool mV = false); + void test_onchip_dac_caller(slsDetectorDefs::dacIndex index, const std::string &dacname, int dacvalue); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-gotthard2.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-gotthard2.cpp index f70332e40..8271ef449 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-gotthard2.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-gotthard2.cpp @@ -106,8 +106,7 @@ TEST_CASE("timegotthard2", "[.detectorintegration]") { } /* dacs */ -TEST_CASE("Setting and reading back GOTTHARD2 dacs", - "[.detectorintegration][dacs]") { +TEST_CASE("gotthard2 dac", "[.detectorintegration][dacs]") { // vref_h_adc, vb_comp_fe, vb_comp_adc, vcom_cds, // vref_restore, vb_opa_1st, vref_comp_fe, vcom_adc1, // vref_prech, vref_l_adc, vref_cds, vb_cs, @@ -117,46 +116,20 @@ TEST_CASE("Setting and reading back GOTTHARD2 dacs", Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::GOTTHARD2) { - SECTION("vref_h_adc") { - test_dac_caller(defs::VREF_H_ADC, "vref_h_adc", 2099); - } - SECTION("vb_comp_fe") { - test_dac_caller(defs::VB_COMP_FE, "vb_comp_fe", 0); - } - SECTION("vb_comp_adc") { - test_dac_caller(defs::VB_COMP_ADC, "vb_comp_adc", 0); - } - SECTION("vcom_cds") { - test_dac_caller(defs::VCOM_CDS, "vcom_cds", 1400); - } - SECTION("vref_rstore") { - test_dac_caller(defs::VREF_RSTORE, "vref_rstore", 640); - } - SECTION("vb_opa_1st") { - test_dac_caller(defs::VB_OPA_1ST, "vb_opa_1st", 0); - } - SECTION("vref_comp_fe") { - test_dac_caller(defs::VREF_COMP_FE, "vref_comp_fe", 0); - } - SECTION("vcom_adc1") { - test_dac_caller(defs::VCOM_ADC1, "vcom_adc1", 1400); - } - SECTION("vref_prech") { - test_dac_caller(defs::VREF_PRECH, "vref_prech", 1720); - } - SECTION("vref_l_adc") { - test_dac_caller(defs::VREF_L_ADC, "vref_l_adc", 700); - } - SECTION("vref_cds") { - test_dac_caller(defs::VREF_CDS, "vref_cds", 1200); - } - SECTION("vb_cs") { test_dac_caller(defs::VB_CS, "vb_cs", 2799); } - SECTION("vb_opa_fd") { - test_dac_caller(defs::VB_OPA_FD, "vb_opa_fd", 0); - } - SECTION("vcom_adc2") { - test_dac_caller(defs::VCOM_ADC2, "vcom_adc2", 1400); - } + SECTION("vref_h_adc") { test_dac_caller(defs::VREF_H_ADC, 2099); } + SECTION("vb_comp_fe") { test_dac_caller(defs::VB_COMP_FE, 0); } + SECTION("vb_comp_adc") { test_dac_caller(defs::VB_COMP_ADC, 0); } + SECTION("vcom_cds") { test_dac_caller(defs::VCOM_CDS, 1400); } + SECTION("vref_rstore") { test_dac_caller(defs::VREF_RSTORE, 640); } + SECTION("vb_opa_1st") { test_dac_caller(defs::VB_OPA_1ST, 0); } + SECTION("vref_comp_fe") { test_dac_caller(defs::VREF_COMP_FE, 0); } + SECTION("vcom_adc1") { test_dac_caller(defs::VCOM_ADC1, 1400); } + SECTION("vref_prech") { test_dac_caller(defs::VREF_PRECH, 1720); } + SECTION("vref_l_adc") { test_dac_caller(defs::VREF_L_ADC, 700); } + SECTION("vref_cds") { test_dac_caller(defs::VREF_CDS, 1200); } + SECTION("vb_cs") { test_dac_caller(defs::VB_CS, 2799); } + SECTION("vb_opa_fd") { test_dac_caller(defs::VB_OPA_FD, 0); } + SECTION("vcom_adc2") { test_dac_caller(defs::VCOM_ADC2, 1400); } // eiger REQUIRE_THROWS(caller.call("dac", {"vthreshold"}, -1, GET)); REQUIRE_THROWS(caller.call("dac", {"vsvp"}, -1, GET)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp index ede7c3671..08bb564b0 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp @@ -17,30 +17,21 @@ using test::PUT; /* dacs */ -TEST_CASE("Setting and reading back Jungfrau dacs", - "[.detectorintegration][dacs]") { +TEST_CASE("jungfrau dac", "[.detectorintegration][dacs]") { // vb_comp, vdd_prot, vin_com, vref_prech, vb_pixbuf, vb_ds, vref_ds, // vref_comp Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU) { - SECTION("vb_comp") { test_dac_caller(defs::VB_COMP, "vb_comp", 1220); } - SECTION("vdd_prot") { - test_dac_caller(defs::VDD_PROT, "vdd_prot", 3000); - } - SECTION("vin_com") { test_dac_caller(defs::VIN_COM, "vin_com", 1053); } - SECTION("vref_prech") { - test_dac_caller(defs::VREF_PRECH, "vref_prech", 1450); - } - SECTION("vb_pixbuf") { - test_dac_caller(defs::VB_PIXBUF, "vb_pixbuf", 750); - } - SECTION("vb_ds") { test_dac_caller(defs::VB_DS, "vb_ds", 1000); } - SECTION("vref_ds") { test_dac_caller(defs::VREF_DS, "vref_ds", 480); } - SECTION("vref_comp") { - test_dac_caller(defs::VREF_COMP, "vref_comp", 420); - } + SECTION("vb_comp") { test_dac_caller(defs::VB_COMP, 1220); } + SECTION("vdd_prot") { test_dac_caller(defs::VDD_PROT, 3000); } + SECTION("vin_com") { test_dac_caller(defs::VIN_COM, 1053); } + SECTION("vref_prech") { test_dac_caller(defs::VREF_PRECH, 1450); } + SECTION("vb_pixbuf") { test_dac_caller(defs::VB_PIXBUF, 750); } + SECTION("vb_ds") { test_dac_caller(defs::VB_DS, 1000); } + SECTION("vref_ds") { test_dac_caller(defs::VREF_DS, 480); } + SECTION("vref_comp") { test_dac_caller(defs::VREF_COMP, 420); } // eiger REQUIRE_THROWS(caller.call("vthreshold", {}, -1, GET)); REQUIRE_THROWS(caller.call("vsvp", {}, -1, GET)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp index 4a4a93e3f..ac8bd0bbc 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp @@ -17,30 +17,21 @@ using test::PUT; /* dacs */ -TEST_CASE("Setting and reading back moench dacs", - "[.detectorintegration][dacs]") { +TEST_CASE("moench dac", "[.detectorintegration][dacs]") { // vbp_colbuf, vipre, vin_cm, vb_sda, vcasc_sfp, vout_cm, vipre_cds, // ibias_sfp Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::MOENCH) { - SECTION("vbp_colbuf") { - test_dac_caller(defs::VBP_COLBUF, "vbp_colbuf", 1300); - } - SECTION("vipre") { test_dac_caller(defs::VIPRE, "vipre", 1000); } - SECTION("vin_cm") { test_dac_caller(defs::VIN_CM, "vin_cm", 1400); } - SECTION("vb_sda") { test_dac_caller(defs::VB_SDA, "vb_sda", 680); } - SECTION("vcasc_sfp") { - test_dac_caller(defs::VCASC_SFP, "vcasc_sfp", 1428); - } - SECTION("vout_cm") { test_dac_caller(defs::VOUT_CM, "vout_cm", 1200); } - SECTION("vipre_cds") { - test_dac_caller(defs::VIPRE_CDS, "vipre_cds", 800); - } - SECTION("ibias_sfp") { - test_dac_caller(defs::IBIAS_SFP, "ibias_sfp", 900); - } + SECTION("vbp_colbuf") { test_dac_caller(defs::VBP_COLBUF, 1300); } + SECTION("vipre") { test_dac_caller(defs::VIPRE, 1000); } + SECTION("vin_cm") { test_dac_caller(defs::VIN_CM, 1400); } + SECTION("vb_sda") { test_dac_caller(defs::VB_SDA, 680); } + SECTION("vcasc_sfp") { test_dac_caller(defs::VCASC_SFP, 1428); } + SECTION("vout_cm") { test_dac_caller(defs::VOUT_CM, 1200); } + SECTION("vipre_cds") { test_dac_caller(defs::VIPRE_CDS, 800); } + SECTION("ibias_sfp") { test_dac_caller(defs::IBIAS_SFP, 900); } // eiger REQUIRE_THROWS(caller.call("vthreshold", {}, -1, GET)); REQUIRE_THROWS(caller.call("vsvp", {}, -1, GET)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-mythen3.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-mythen3.cpp index 35345699f..3cd6e8432 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-mythen3.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-mythen3.cpp @@ -19,8 +19,7 @@ using test::PUT; /* dacs */ -TEST_CASE("Setting and reading back MYTHEN3 dacs", - "[.detectorintegration][dacs]") { +TEST_CASE("mythen3 dac", "[.detectorintegration][dacs]") { // vcassh, vth2, vshaper, vshaperneg, vipre_out, vth3, vth1, // vicin, vcas, vpreamp, vpl, vipre, viinsh, vph, vtrim, vdcsh, @@ -28,32 +27,22 @@ TEST_CASE("Setting and reading back MYTHEN3 dacs", Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::MYTHEN3) { - SECTION("vcassh") { test_dac_caller(defs::VCASSH, "vcassh", 1200); } - SECTION("vth2") { test_dac_caller(defs::VTH2, "vth2", 2800); } - SECTION("vrshaper") { - test_dac_caller(defs::VRSHAPER, "vrshaper", 1280); - } - SECTION("vrshaper_n") { - test_dac_caller(defs::VRSHAPER_N, "vrshaper_n", 2800); - } - SECTION("vipre_out") { - test_dac_caller(defs::VIPRE_OUT, "vipre_out", 1220); - } - SECTION("vth3") { test_dac_caller(defs::VTH3, "vth3", 2800); } - SECTION("vth1") { test_dac_caller(defs::VTH1, "vth1", 2880); } - SECTION("vicin") { test_dac_caller(defs::VICIN, "vicin", 1708); } - SECTION("vcas") { test_dac_caller(defs::VCAS, "vcas", 1800); } - SECTION("vrpreamp") { - test_dac_caller(defs::VRPREAMP, "vrpreamp", 1100); - } - SECTION("vcal_n") { test_dac_caller(defs::VCAL_N, "vcal_n", 1100); } - SECTION("vipre") { test_dac_caller(defs::VIPRE, "vipre", 2624); } - SECTION("vishaper") { - test_dac_caller(defs::VISHAPER, "vishaper", 1708); - } - SECTION("vcal_p") { test_dac_caller(defs::VCAL_P, "vcal_p", 1712); } - SECTION("vtrim") { test_dac_caller(defs::VTRIM, "vtrim", 2800); } - SECTION("vdcsh") { test_dac_caller(defs::VDCSH, "vdcsh", 800); } + SECTION("vcassh") { test_dac_caller(defs::VCASSH, 1200); } + SECTION("vth2") { test_dac_caller(defs::VTH2, 2800); } + SECTION("vrshaper") { test_dac_caller(defs::VRSHAPER, 1280); } + SECTION("vrshaper_n") { test_dac_caller(defs::VRSHAPER_N, 2800); } + SECTION("vipre_out") { test_dac_caller(defs::VIPRE_OUT, 1220); } + SECTION("vth3") { test_dac_caller(defs::VTH3, 2800); } + SECTION("vth1") { test_dac_caller(defs::VTH1, 2880); } + SECTION("vicin") { test_dac_caller(defs::VICIN, 1708); } + SECTION("vcas") { test_dac_caller(defs::VCAS, 1800); } + SECTION("vrpreamp") { test_dac_caller(defs::VRPREAMP, 1100); } + SECTION("vcal_n") { test_dac_caller(defs::VCAL_N, 1100); } + SECTION("vipre") { test_dac_caller(defs::VIPRE, 2624); } + SECTION("vishaper") { test_dac_caller(defs::VISHAPER, 1708); } + SECTION("vcal_p") { test_dac_caller(defs::VCAL_P, 1712); } + SECTION("vtrim") { test_dac_caller(defs::VTRIM, 2800); } + SECTION("vdcsh") { test_dac_caller(defs::VDCSH, 800); } SECTION("vthreshold") { // Read out individual vcmp to be able to reset after // the test is done