/root/bitcoin/src/util/strencodings.h
| Line | Count | Source | 
| 1 |  | // Copyright (c) 2009-2010 Satoshi Nakamoto | 
| 2 |  | // Copyright (c) 2009-present The Bitcoin Core developers | 
| 3 |  | // Distributed under the MIT software license, see the accompanying | 
| 4 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 5 |  |  | 
| 6 |  | /** | 
| 7 |  |  * Utilities for converting data from/to strings. | 
| 8 |  |  */ | 
| 9 |  | #ifndef BITCOIN_UTIL_STRENCODINGS_H | 
| 10 |  | #define BITCOIN_UTIL_STRENCODINGS_H | 
| 11 |  |  | 
| 12 |  | #include <crypto/hex_base.h> // IWYU pragma: export | 
| 13 |  | #include <span.h> | 
| 14 |  | #include <util/string.h> | 
| 15 |  |  | 
| 16 |  | #include <array> | 
| 17 |  | #include <bit> | 
| 18 |  | #include <charconv> | 
| 19 |  | #include <cstddef> | 
| 20 |  | #include <cstdint> | 
| 21 |  | #include <limits> | 
| 22 |  | #include <optional> | 
| 23 |  | #include <string>      // IWYU pragma: export | 
| 24 |  | #include <string_view> // IWYU pragma: export | 
| 25 |  | #include <system_error> | 
| 26 |  | #include <type_traits> | 
| 27 |  | #include <vector> | 
| 28 |  |  | 
| 29 |  | /** Used by SanitizeString() */ | 
| 30 |  | enum SafeChars | 
| 31 |  | { | 
| 32 |  |     SAFE_CHARS_DEFAULT, //!< The full set of allowed chars | 
| 33 |  |     SAFE_CHARS_UA_COMMENT, //!< BIP-0014 subset | 
| 34 |  |     SAFE_CHARS_FILENAME, //!< Chars allowed in filenames | 
| 35 |  |     SAFE_CHARS_URI, //!< Chars allowed in URIs (RFC 3986) | 
| 36 |  | }; | 
| 37 |  |  | 
| 38 |  | /** | 
| 39 |  |  * Used by ParseByteUnits() | 
| 40 |  |  * Lowercase base 1000 | 
| 41 |  |  * Uppercase base 1024 | 
| 42 |  | */ | 
| 43 |  | enum class ByteUnit : uint64_t { | 
| 44 |  |     NOOP = 1ULL, | 
| 45 |  |     k = 1000ULL, | 
| 46 |  |     K = 1024ULL, | 
| 47 |  |     m = 1'000'000ULL, | 
| 48 |  |     M = 1ULL << 20, | 
| 49 |  |     g = 1'000'000'000ULL, | 
| 50 |  |     G = 1ULL << 30, | 
| 51 |  |     t = 1'000'000'000'000ULL, | 
| 52 |  |     T = 1ULL << 40, | 
| 53 |  | }; | 
| 54 |  |  | 
| 55 |  | /** | 
| 56 |  | * Remove unsafe chars. Safe chars chosen to allow simple messages/URLs/email | 
| 57 |  | * addresses, but avoid anything even possibly remotely dangerous like & or > | 
| 58 |  | * @param[in] str    The string to sanitize | 
| 59 |  | * @param[in] rule   The set of safe chars to choose (default: least restrictive) | 
| 60 |  | * @return           A new string without unsafe chars | 
| 61 |  | */ | 
| 62 |  | std::string SanitizeString(std::string_view str, int rule = SAFE_CHARS_DEFAULT); | 
| 63 |  | /** Parse the hex string into bytes (uint8_t or std::byte). Ignores whitespace. Returns nullopt on invalid input. */ | 
| 64 |  | template <typename Byte = std::byte> | 
| 65 |  | std::optional<std::vector<Byte>> TryParseHex(std::string_view str); | 
| 66 |  | /** Like TryParseHex, but returns an empty vector on invalid input. */ | 
| 67 |  | template <typename Byte = uint8_t> | 
| 68 |  | std::vector<Byte> ParseHex(std::string_view hex_str) | 
| 69 | 0 | { | 
| 70 | 0 |     return TryParseHex<Byte>(hex_str).value_or(std::vector<Byte>{}); | 
| 71 | 0 | } Unexecuted instantiation: _Z8ParseHexIhESt6vectorIT_SaIS1_EESt17basic_string_viewIcSt11char_traitsIcEEUnexecuted instantiation: _Z8ParseHexISt4byteESt6vectorIT_SaIS2_EESt17basic_string_viewIcSt11char_traitsIcEE | 
| 72 |  | /* Returns true if each character in str is a hex character, and has an even | 
| 73 |  |  * number of hex digits.*/ | 
| 74 |  | bool IsHex(std::string_view str); | 
| 75 |  | std::optional<std::vector<unsigned char>> DecodeBase64(std::string_view str); | 
| 76 |  | std::string EncodeBase64(std::span<const unsigned char> input); | 
| 77 | 0 | inline std::string EncodeBase64(std::span<const std::byte> input) { return EncodeBase64(MakeUCharSpan(input)); } | 
| 78 | 0 | inline std::string EncodeBase64(std::string_view str) { return EncodeBase64(MakeUCharSpan(str)); } | 
| 79 |  | std::optional<std::vector<unsigned char>> DecodeBase32(std::string_view str); | 
| 80 |  |  | 
| 81 |  | /** | 
| 82 |  |  * Base32 encode. | 
| 83 |  |  * If `pad` is true, then the output will be padded with '=' so that its length | 
| 84 |  |  * is a multiple of 8. | 
| 85 |  |  */ | 
| 86 |  | std::string EncodeBase32(std::span<const unsigned char> input, bool pad = true); | 
| 87 |  |  | 
| 88 |  | /** | 
| 89 |  |  * Base32 encode. | 
| 90 |  |  * If `pad` is true, then the output will be padded with '=' so that its length | 
| 91 |  |  * is a multiple of 8. | 
| 92 |  |  */ | 
| 93 |  | std::string EncodeBase32(std::string_view str, bool pad = true); | 
| 94 |  |  | 
| 95 |  | /** | 
| 96 |  |  * Splits socket address string into host string and port value. | 
| 97 |  |  * Validates port value. | 
| 98 |  |  * | 
| 99 |  |  * @param[in] in        The socket address string to split. | 
| 100 |  |  * @param[out] portOut  Port-portion of the input, if found and parsable. | 
| 101 |  |  * @param[out] hostOut  Host-portion of the input, if found. | 
| 102 |  |  * @return              true if port-portion is absent or within its allowed range, otherwise false | 
| 103 |  |  */ | 
| 104 |  | bool SplitHostPort(std::string_view in, uint16_t& portOut, std::string& hostOut); | 
| 105 |  |  | 
| 106 |  | // LocaleIndependentAtoi is provided for backwards compatibility reasons. | 
| 107 |  | // | 
| 108 |  | // New code should use ToIntegral. | 
| 109 |  | // | 
| 110 |  | // The goal of LocaleIndependentAtoi is to replicate the defined behaviour of | 
| 111 |  | // std::atoi as it behaves under the "C" locale, and remove some undefined | 
| 112 |  | // behavior. If the parsed value is bigger than the integer type's maximum | 
| 113 |  | // value, or smaller than the integer type's minimum value, std::atoi has | 
| 114 |  | // undefined behavior, while this function returns the maximum or minimum | 
| 115 |  | // values, respectively. | 
| 116 |  | template <typename T> | 
| 117 |  | T LocaleIndependentAtoi(std::string_view str) | 
| 118 | 0 | { | 
| 119 | 0 |     static_assert(std::is_integral_v<T>); | 
| 120 | 0 |     T result; | 
| 121 |  |     // Emulate atoi(...) handling of white space and leading +/-. | 
| 122 | 0 |     std::string_view s = util::TrimStringView(str); | 
| 123 | 0 |     if (!s.empty() && s[0] == '+') { | 
| 124 | 0 |         if (s.length() >= 2 && s[1] == '-') { | 
| 125 | 0 |             return 0; | 
| 126 | 0 |         } | 
| 127 | 0 |         s = s.substr(1); | 
| 128 | 0 |     } | 
| 129 | 0 |     auto [_, error_condition] = std::from_chars(s.data(), s.data() + s.size(), result); | 
| 130 | 0 |     if (error_condition == std::errc::result_out_of_range) { | 
| 131 | 0 |         if (s.length() >= 1 && s[0] == '-') { | 
| 132 |  |             // Saturate underflow, per strtoll's behavior. | 
| 133 | 0 |             return std::numeric_limits<T>::min(); | 
| 134 | 0 |         } else { | 
| 135 |  |             // Saturate overflow, per strtoll's behavior. | 
| 136 | 0 |             return std::numeric_limits<T>::max(); | 
| 137 | 0 |         } | 
| 138 | 0 |     } else if (error_condition != std::errc{}) { | 
| 139 | 0 |         return 0; | 
| 140 | 0 |     } | 
| 141 | 0 |     return result; | 
| 142 | 0 | } Unexecuted instantiation: _Z21LocaleIndependentAtoiIiET_St17basic_string_viewIcSt11char_traitsIcEEUnexecuted instantiation: _Z21LocaleIndependentAtoiIlET_St17basic_string_viewIcSt11char_traitsIcEE | 
| 143 |  |  | 
| 144 |  | /** | 
| 145 |  |  * Tests if the given character is a decimal digit. | 
| 146 |  |  * @param[in] c     character to test | 
| 147 |  |  * @return          true if the argument is a decimal digit; otherwise false. | 
| 148 |  |  */ | 
| 149 |  | constexpr bool IsDigit(char c) | 
| 150 | 0 | { | 
| 151 | 0 |     return c >= '0' && c <= '9'; | 
| 152 | 0 | } | 
| 153 |  |  | 
| 154 |  | /** | 
| 155 |  |  * Tests if the given character is a whitespace character. The whitespace characters | 
| 156 |  |  * are: space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal | 
| 157 |  |  * tab ('\t'), and vertical tab ('\v'). | 
| 158 |  |  * | 
| 159 |  |  * This function is locale independent. Under the C locale this function gives the | 
| 160 |  |  * same result as std::isspace. | 
| 161 |  |  * | 
| 162 |  |  * @param[in] c     character to test | 
| 163 |  |  * @return          true if the argument is a whitespace character; otherwise false | 
| 164 |  |  */ | 
| 165 | 0 | constexpr inline bool IsSpace(char c) noexcept { | 
| 166 | 0 |     return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v'; | 
| 167 | 0 | } | 
| 168 |  |  | 
| 169 |  | /** | 
| 170 |  |  * Convert string to integral type T. Leading whitespace, a leading +, or any | 
| 171 |  |  * trailing character fail the parsing. The required format expressed as regex | 
| 172 |  |  * is `-?[0-9]+`. The minus sign is only permitted for signed integer types. | 
| 173 |  |  * | 
| 174 |  |  * @returns std::nullopt if the entire string could not be parsed, or if the | 
| 175 |  |  *   parsed value is not in the range representable by the type T. | 
| 176 |  |  */ | 
| 177 |  | template <typename T> | 
| 178 |  | std::optional<T> ToIntegral(std::string_view str) | 
| 179 | 12 | { | 
| 180 | 12 |     static_assert(std::is_integral_v<T>); | 
| 181 | 12 |     T result; | 
| 182 | 12 |     const auto [first_nonmatching, error_condition] = std::from_chars(str.data(), str.data() + str.size(), result); | 
| 183 | 12 |     if (first_nonmatching != str.data() + str.size() || error_condition != std::errc{}) { | 
| 184 | 0 |         return std::nullopt; | 
| 185 | 0 |     } | 
| 186 | 12 |     return result; | 
| 187 | 12 | } Unexecuted instantiation: _Z10ToIntegralIlESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEEUnexecuted instantiation: _Z10ToIntegralIaESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEE_Z10ToIntegralIhESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEE| Line | Count | Source |  | 179 | 10 | { |  | 180 | 10 |     static_assert(std::is_integral_v<T>); |  | 181 | 10 |     T result; |  | 182 | 10 |     const auto [first_nonmatching, error_condition] = std::from_chars(str.data(), str.data() + str.size(), result); |  | 183 | 10 |     if (first_nonmatching != str.data() + str.size() || error_condition != std::errc{}) { |  | 184 | 0 |         return std::nullopt; |  | 185 | 0 |     } |  | 186 | 10 |     return result; |  | 187 | 10 | } | 
Unexecuted instantiation: _Z10ToIntegralIsESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEE_Z10ToIntegralItESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEE| Line | Count | Source |  | 179 | 2 | { |  | 180 | 2 |     static_assert(std::is_integral_v<T>); |  | 181 | 2 |     T result; |  | 182 | 2 |     const auto [first_nonmatching, error_condition] = std::from_chars(str.data(), str.data() + str.size(), result); |  | 183 | 2 |     if (first_nonmatching != str.data() + str.size() || error_condition != std::errc{}) { |  | 184 | 0 |         return std::nullopt; |  | 185 | 0 |     } |  | 186 | 2 |     return result; |  | 187 | 2 | } | 
Unexecuted instantiation: _Z10ToIntegralIiESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEEUnexecuted instantiation: _Z10ToIntegralIjESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEEUnexecuted instantiation: _Z10ToIntegralImESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEE | 
| 188 |  |  | 
| 189 |  | /** | 
| 190 |  |  * Format a paragraph of text to a fixed width, adding spaces for | 
| 191 |  |  * indentation to any added line. | 
| 192 |  |  */ | 
| 193 |  | std::string FormatParagraph(std::string_view in, size_t width = 79, size_t indent = 0); | 
| 194 |  |  | 
| 195 |  | /** | 
| 196 |  |  * Timing-attack-resistant comparison. | 
| 197 |  |  * Takes time proportional to length | 
| 198 |  |  * of first argument. | 
| 199 |  |  */ | 
| 200 |  | template <typename T> | 
| 201 |  | bool TimingResistantEqual(const T& a, const T& b) | 
| 202 | 0 | { | 
| 203 | 0 |     if (b.size() == 0) return a.size() == 0; | 
| 204 | 0 |     size_t accumulator = a.size() ^ b.size(); | 
| 205 | 0 |     for (size_t i = 0; i < a.size(); i++) | 
| 206 | 0 |         accumulator |= size_t(a[i] ^ b[i%b.size()]); | 
| 207 | 0 |     return accumulator == 0; | 
| 208 | 0 | } Unexecuted instantiation: _Z20TimingResistantEqualINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKT_S8_Unexecuted instantiation: _Z20TimingResistantEqualISt17basic_string_viewIcSt11char_traitsIcEEEbRKT_S6_ | 
| 209 |  |  | 
| 210 |  | /** Parse number as fixed point according to JSON number syntax. | 
| 211 |  |  * @returns true on success, false on error. | 
| 212 |  |  * @note The result must be in the range (-10^18,10^18), otherwise an overflow error will trigger. | 
| 213 |  |  */ | 
| 214 |  | [[nodiscard]] bool ParseFixedPoint(std::string_view, int decimals, int64_t *amount_out); | 
| 215 |  |  | 
| 216 |  | namespace { | 
| 217 |  | /** Helper class for the default infn argument to ConvertBits (just returns the input). */ | 
| 218 |  | struct IntIdentity | 
| 219 |  | { | 
| 220 | 0 |     [[maybe_unused]] int operator()(int x) const { return x; }Unexecuted instantiation: addition_overflow.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: addrman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: asmap.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: asmap_direct.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: autofile.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: banman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: base_encode_decode.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bech32.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bip324.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bitdeque.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bitset.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: block.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: block_header.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: block_index.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockfilter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bloom_filter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: buffered_file.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: chain.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: checkqueue.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: cluster_linearize.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coins_view.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coinscache_sim.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: connman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_aes256.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_aes256cbc.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_chacha20.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_chacha20poly1305.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_common.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_diff_fuzz_chacha20.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_hkdf_hmac_sha256_l32.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypto_poly1305.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: cuckoocache.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: decode_tx.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: descriptor_parse.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: deserialize.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: eval_script.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: feefrac.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: fee_rate.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: feeratediagram.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: fees.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: flatfile.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: float.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: golomb_rice.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: headerssync.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: hex.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: http_request.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: i2p.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: integer.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: key.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: key_io.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: kitchen_sink.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: load_external_block_file.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: locale.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: merkle.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: merkleblock.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: message.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: miniscript.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: minisketch.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mini_miner.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: muhash.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: multiplication_overflow.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: net.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: net_permissions.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: netaddress.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: netbase_dns_lookup.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: node_eviction.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: p2p_handshake.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: p2p_headers_presync.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: p2p_transport_serialization.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: pcp.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: package_eval.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: parse_hd_keypath.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: parse_numbers.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: parse_script.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: parse_univalue.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: partially_downloaded_block.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: policy_estimator.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: policy_estimator_io.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: poolresource.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: pow.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: prevector.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: primitives_transaction.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: process_message.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: process_messages.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: protocol.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: psbt.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: random.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rbf.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rolling_bloom_filter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rpc.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_assets_test_minimizer.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_descriptor_cache.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_flags.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_format.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_interpreter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_ops.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_sigcache.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: script_sign.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: scriptnum_ops.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: secp256k1_ec_seckey_import_export_der.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: secp256k1_ecdsa_signature_parse_der_lax.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: signature_checker.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: signet.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: socks5.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: span.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: string.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: strprintf.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: system.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: timeoffsets.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: torcontrol.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: transaction.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txdownloadman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: tx_in.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: tx_out.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: tx_pool.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txgraph.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txorphan.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txrequest.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: utxo_snapshot.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: utxo_total_supply.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: validation_load_mempool.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: vecdeque.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: versionbits.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coincontrol.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coinselection.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: crypter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: scriptpubkeyman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: spend.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: wallet_bdb_parser.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: descriptor.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mempool.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: fuzz.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: util.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: check_globals.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: addresstype.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: base58.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: chainparams.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coins.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bloom.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: messages.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: signmessage.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: compressor.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: core_read.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: core_write.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: deploymentinfo.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: netbase.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: outputtype.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: policy.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: request.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: sign.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: signingprovider.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: solver.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: config.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: musig.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bip32.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: bytevectorhash.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: fs_helpers.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: hasher.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: moneystr.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: sock.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: strencodings.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: time.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: logging.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: streams.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: dump.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: migrate.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: wallet.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: walletdb.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: walletutil.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: db.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: external_signer_scriptpubkeyman.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: interfaces.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: load.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: receive.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: sqlite.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: feebumper.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: addresses.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: backup.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: encrypt.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: transactions.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mining.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: setup_common.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: transaction_utils.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txmempool.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: validation.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: addrdb.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockencodings.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: tx_verify.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: dbwrapper.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: httpserver.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: init.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: checks.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coinstats.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: context.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mapport.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: net_processing.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: netgroup.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockmanager_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockstorage.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: caches.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: chainstate.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: chainstatemanager_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coins_view_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: database_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: eviction.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: kernel_notifications.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mempool_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mempool_persist.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: mempool_persist_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: miner.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: peerman_args.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txdownloadman_impl.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txorphanage.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txreconciliation.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: noui.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: packages.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: settings.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rest.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockchain.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: node.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: output_script.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rawtransaction.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: server.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: server_util.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txoutproof.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: sigcache.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txdb.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: validationinterface.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: httprpc.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: base.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: blockfilterindex.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coinstatsindex.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: txindex.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: disconnected_transactions.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: abort.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: coin.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: ephemeral_policy.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: truc_policy.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: netif.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: external_signer.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: common.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: net_types.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: rawtransaction_util.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: batchpriority.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: thread.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: exception.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: arith_uint256.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: tx_check.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: hash.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: pubkey.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: interpreter.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: uint256.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEiUnexecuted instantiation: siphash.cpp:_ZNK12_GLOBAL__N_111IntIdentityclEi | 
| 221 |  | }; | 
| 222 |  |  | 
| 223 |  | } // namespace | 
| 224 |  |  | 
| 225 |  | /** Convert from one power-of-2 number base to another. */ | 
| 226 |  | template<int frombits, int tobits, bool pad, typename O, typename It, typename I = IntIdentity> | 
| 227 | 0 | bool ConvertBits(O outfn, It it, It end, I infn = {}) { | 
| 228 | 0 |     size_t acc = 0; | 
| 229 | 0 |     size_t bits = 0; | 
| 230 | 0 |     constexpr size_t maxv = (1 << tobits) - 1; | 
| 231 | 0 |     constexpr size_t max_acc = (1 << (frombits + tobits - 1)) - 1; | 
| 232 | 0 |     while (it != end) { | 
| 233 | 0 |         int v = infn(*it); | 
| 234 | 0 |         if (v < 0) return false; | 
| 235 | 0 |         acc = ((acc << frombits) | v) & max_acc; | 
| 236 | 0 |         bits += frombits; | 
| 237 | 0 |         while (bits >= tobits) { | 
| 238 | 0 |             bits -= tobits; | 
| 239 | 0 |             outfn((acc >> bits) & maxv); | 
| 240 | 0 |         } | 
| 241 | 0 |         ++it; | 
| 242 | 0 |     } | 
| 243 | 0 |     if (pad) { | 
| 244 | 0 |         if (bits) outfn((acc << (tobits - bits)) & maxv); | 
| 245 | 0 |     } else if (bits >= frombits || ((acc << (tobits - bits)) & maxv)) { | 
| 246 | 0 |         return false; | 
| 247 | 0 |     } | 
| 248 | 0 |     return true; | 
| 249 | 0 | } Unexecuted instantiation: bech32.cpp:_Z11ConvertBitsILi8ELi5ELb1EZ28bech32_roundtrip_fuzz_targetSt4spanIKhLm18446744073709551615EEE3$_0N9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEN12_GLOBAL__N_111IntIdentityEEbT2_T3_SE_T4_Unexecuted instantiation: key_io.cpp:_Z11ConvertBitsILi8ELi5ELb1EZNK12_GLOBAL__N_118DestinationEncoderclB5cxx11ERK19WitnessV0ScriptHashEUlhE_PKhNS0_11IntIdentityEEbT2_T3_SA_T4_Unexecuted instantiation: key_io.cpp:_Z11ConvertBitsILi8ELi5ELb1EZNK12_GLOBAL__N_118DestinationEncoderclB5cxx11ERK16WitnessV0KeyHashEUlhE_PKhNS0_11IntIdentityEEbT2_T3_SA_T4_Unexecuted instantiation: key_io.cpp:_Z11ConvertBitsILi8ELi5ELb1EZNK12_GLOBAL__N_118DestinationEncoderclB5cxx11ERK16WitnessV1TaprootEUlhE_PKhNS0_11IntIdentityEEbT2_T3_SA_T4_Unexecuted instantiation: key_io.cpp:_Z11ConvertBitsILi8ELi5ELb1EZNK12_GLOBAL__N_118DestinationEncoderclB5cxx11ERK14WitnessUnknownEUlhE_N9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEENS0_11IntIdentityEEbT2_T3_SG_T4_Unexecuted instantiation: key_io.cpp:_Z11ConvertBitsILi5ELi8ELb0EZN12_GLOBAL__N_117DecodeDestinationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK12CChainParamsRS6_PSt6vectorIiSaIiEEE3$_0N9__gnu_cxx17__normal_iteratorIPKhSD_IhSaIhEEEENS0_11IntIdentityEEbT2_T3_SR_T4_Unexecuted instantiation: strencodings.cpp:_Z11ConvertBitsILi8ELi6ELb1EZ12EncodeBase64B5cxx11St4spanIKhLm18446744073709551615EEE3$_0N9__gnu_cxx17__normal_iteratorIPS1_S2_EEN12_GLOBAL__N_111IntIdentityEEbT2_T3_SB_T4_Unexecuted instantiation: strencodings.cpp:_Z11ConvertBitsILi6ELi8ELb0EZ12DecodeBase64St17basic_string_viewIcSt11char_traitsIcEEE3$_0PKcZ12DecodeBase64S3_E3$_1EbT2_T3_S9_T4_Unexecuted instantiation: strencodings.cpp:_Z11ConvertBitsILi8ELi5ELb1EZ12EncodeBase32B5cxx11St4spanIKhLm18446744073709551615EEbE3$_0N9__gnu_cxx17__normal_iteratorIPS1_S2_EEN12_GLOBAL__N_111IntIdentityEEbT2_T3_SB_T4_Unexecuted instantiation: strencodings.cpp:_Z11ConvertBitsILi5ELi8ELb0EZ12DecodeBase32St17basic_string_viewIcSt11char_traitsIcEEE3$_0PKcZ12DecodeBase32S3_E3$_1EbT2_T3_S9_T4_ | 
| 250 |  |  | 
| 251 |  | /** | 
| 252 |  |  * Converts the given character to its lowercase equivalent. | 
| 253 |  |  * This function is locale independent. It only converts uppercase | 
| 254 |  |  * characters in the standard 7-bit ASCII range. | 
| 255 |  |  * This is a feature, not a limitation. | 
| 256 |  |  * | 
| 257 |  |  * @param[in] c     the character to convert to lowercase. | 
| 258 |  |  * @return          the lowercase equivalent of c; or the argument | 
| 259 |  |  *                  if no conversion is possible. | 
| 260 |  |  */ | 
| 261 |  | constexpr char ToLower(char c) | 
| 262 | 0 | { | 
| 263 | 0 |     return (c >= 'A' && c <= 'Z' ? (c - 'A') + 'a' : c); | 
| 264 | 0 | } | 
| 265 |  |  | 
| 266 |  | /** | 
| 267 |  |  * Returns the lowercase equivalent of the given string. | 
| 268 |  |  * This function is locale independent. It only converts uppercase | 
| 269 |  |  * characters in the standard 7-bit ASCII range. | 
| 270 |  |  * This is a feature, not a limitation. | 
| 271 |  |  * | 
| 272 |  |  * @param[in] str   the string to convert to lowercase. | 
| 273 |  |  * @returns         lowercased equivalent of str | 
| 274 |  |  */ | 
| 275 |  | std::string ToLower(std::string_view str); | 
| 276 |  |  | 
| 277 |  | /** | 
| 278 |  |  * Converts the given character to its uppercase equivalent. | 
| 279 |  |  * This function is locale independent. It only converts lowercase | 
| 280 |  |  * characters in the standard 7-bit ASCII range. | 
| 281 |  |  * This is a feature, not a limitation. | 
| 282 |  |  * | 
| 283 |  |  * @param[in] c     the character to convert to uppercase. | 
| 284 |  |  * @return          the uppercase equivalent of c; or the argument | 
| 285 |  |  *                  if no conversion is possible. | 
| 286 |  |  */ | 
| 287 |  | constexpr char ToUpper(char c) | 
| 288 | 0 | { | 
| 289 | 0 |     return (c >= 'a' && c <= 'z' ? (c - 'a') + 'A' : c); | 
| 290 | 0 | } | 
| 291 |  |  | 
| 292 |  | /** | 
| 293 |  |  * Returns the uppercase equivalent of the given string. | 
| 294 |  |  * This function is locale independent. It only converts lowercase | 
| 295 |  |  * characters in the standard 7-bit ASCII range. | 
| 296 |  |  * This is a feature, not a limitation. | 
| 297 |  |  * | 
| 298 |  |  * @param[in] str   the string to convert to uppercase. | 
| 299 |  |  * @returns         UPPERCASED EQUIVALENT OF str | 
| 300 |  |  */ | 
| 301 |  | std::string ToUpper(std::string_view str); | 
| 302 |  |  | 
| 303 |  | /** | 
| 304 |  |  * Capitalizes the first character of the given string. | 
| 305 |  |  * This function is locale independent. It only converts lowercase | 
| 306 |  |  * characters in the standard 7-bit ASCII range. | 
| 307 |  |  * This is a feature, not a limitation. | 
| 308 |  |  * | 
| 309 |  |  * @param[in] str   the string to capitalize. | 
| 310 |  |  * @returns         string with the first letter capitalized. | 
| 311 |  |  */ | 
| 312 |  | std::string Capitalize(std::string str); | 
| 313 |  |  | 
| 314 |  | /** | 
| 315 |  |  * Parse a string with suffix unit [k|K|m|M|g|G|t|T]. | 
| 316 |  |  * Must be a whole integer, fractions not allowed (0.5t), no whitespace or +- | 
| 317 |  |  * Lowercase units are 1000 base. Uppercase units are 1024 base. | 
| 318 |  |  * Examples: 2m,27M,19g,41T | 
| 319 |  |  * | 
| 320 |  |  * @param[in] str                  the string to convert into bytes | 
| 321 |  |  * @param[in] default_multiplier   if no unit is found in str use this unit | 
| 322 |  |  * @returns                        optional uint64_t bytes from str or nullopt | 
| 323 |  |  *                                 if ToIntegral is false, str is empty, trailing whitespace or overflow | 
| 324 |  |  */ | 
| 325 |  | std::optional<uint64_t> ParseByteUnits(std::string_view str, ByteUnit default_multiplier); | 
| 326 |  |  | 
| 327 |  | namespace util { | 
| 328 |  | /** consteval version of HexDigit() without the lookup table. */ | 
| 329 |  | consteval uint8_t ConstevalHexDigit(const char c) | 
| 330 |  | { | 
| 331 |  |     if (c >= '0' && c <= '9') return c - '0'; | 
| 332 |  |     if (c >= 'a' && c <= 'f') return c - 'a' + 0xa; | 
| 333 |  |  | 
| 334 |  |     throw "Only lowercase hex digits are allowed, for consistency"; | 
| 335 |  | } | 
| 336 |  |  | 
| 337 |  | namespace detail { | 
| 338 |  | template <size_t N> | 
| 339 |  | struct Hex { | 
| 340 |  |     std::array<std::byte, N / 2> bytes{}; | 
| 341 |  |     consteval Hex(const char (&hex_str)[N]) | 
| 342 |  |         // 2 hex digits required per byte + implicit null terminator | 
| 343 |  |         requires(N % 2 == 1) | 
| 344 |  |     { | 
| 345 |  |         if (hex_str[N - 1]) throw "null terminator required"; | 
| 346 |  |         for (std::size_t i = 0; i < bytes.size(); ++i) { | 
| 347 |  |             bytes[i] = static_cast<std::byte>( | 
| 348 |  |                 (ConstevalHexDigit(hex_str[2 * i]) << 4) | | 
| 349 |  |                  ConstevalHexDigit(hex_str[2 * i + 1])); | 
| 350 |  |         } | 
| 351 |  |     } | 
| 352 |  | }; | 
| 353 |  | } // namespace detail | 
| 354 |  |  | 
| 355 |  | /** | 
| 356 |  |  * ""_hex is a compile-time user-defined literal returning a | 
| 357 |  |  * `std::array<std::byte>`, equivalent to ParseHex(). Variants provided: | 
| 358 |  |  * | 
| 359 |  |  * - ""_hex_v: Returns `std::vector<std::byte>`, useful for heap allocation or | 
| 360 |  |  *   variable-length serialization. | 
| 361 |  |  * | 
| 362 |  |  * - ""_hex_u8: Returns `std::array<uint8_t>`, for cases where `std::byte` is | 
| 363 |  |  *   incompatible. | 
| 364 |  |  * | 
| 365 |  |  * - ""_hex_v_u8: Returns `std::vector<uint8_t>`, combining heap allocation with | 
| 366 |  |  *   `uint8_t`. | 
| 367 |  |  * | 
| 368 |  |  * @warning It could be necessary to use vector instead of array variants when | 
| 369 |  |  *   serializing, or vice versa, because vectors are assumed to be variable- | 
| 370 |  |  *   length and serialized with a size prefix, while arrays are considered fixed | 
| 371 |  |  *   length and serialized with no prefix. | 
| 372 |  |  * | 
| 373 |  |  * @warning It may be preferable to use vector variants to save stack space when | 
| 374 |  |  *   declaring local variables if hex strings are large. Alternatively variables | 
| 375 |  |  *   could be declared constexpr to avoid using stack space. | 
| 376 |  |  * | 
| 377 |  |  * @warning Avoid `uint8_t` variants when not necessary, as the codebase | 
| 378 |  |  *   migrates to use `std::byte` instead of `unsigned char` and `uint8_t`. | 
| 379 |  |  * | 
| 380 |  |  * @note One reason ""_hex uses `std::array` instead of `std::vector` like | 
| 381 |  |  *   ParseHex() does is because heap-based containers cannot cross the compile- | 
| 382 |  |  *   time/runtime barrier. | 
| 383 |  |  */ | 
| 384 |  | inline namespace hex_literals { | 
| 385 |  |  | 
| 386 |  | template <util::detail::Hex str> | 
| 387 | 0 | constexpr auto operator""_hex() { return str.bytes; }Unexecuted instantiation: _ZN4util12hex_literalsli4_hexITnNS_6detail3HexEXtlNS3_ILm131EEEtlSt5arrayISt4byteLm65EEtlA65_S6_LS6_4ELS6_103ELS6_138ELS6_253ELS6_176ELS6_254ELS6_85ELS6_72ELS6_39ELS6_25ELS6_103ELS6_241ELS6_166ELS6_113ELS6_48ELS6_183ELS6_16ELS6_92ELS6_214ELS6_168ELS6_40ELS6_224ELS6_57ELS6_9ELS6_166ELS6_121ELS6_98ELS6_224ELS6_234ELS6_31ELS6_97ELS6_222ELS6_182ELS6_73ELS6_246ELS6_188ELS6_63ELS6_76ELS6_239ELS6_56ELS6_196ELS6_243ELS6_85ELS6_4ELS6_229ELS6_30ELS6_193ELS6_18ELS6_222ELS6_92ELS6_56ELS6_77ELS6_247ELS6_186ELS6_11ELS6_141ELS6_87ELS6_138ELS6_76ELS6_112ELS6_43ELS6_107ELS6_241ELS6_29ELS6_95EEEEEEEDavUnexecuted instantiation: _ZN4util12hex_literalsli4_hexITnNS_6detail3HexEXtlNS3_ILm67EEEEEEEDavUnexecuted instantiation: _ZN4util12hex_literalsli4_hexITnNS_6detail3HexEXtlNS3_ILm6109EEEtlSt5arrayISt4byteLm3054EEtlA3054_S6_LS6_1ELS6_0ELS6_0ELS6_0ELS6_144ELS6_240ELS6_169ELS6_241ELS6_16ELS6_112ELS6_47ELS6_128ELS6_130ELS6_25ELS6_235ELS6_234ELS6_17ELS6_115ELS6_5ELS6_96ELS6_66ELS6_167ELS6_20ELS6_186ELS6_213ELS6_27ELS6_145ELS6_108ELS6_182ELS6_128ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_82ELS6_117ELS6_40ELS6_149ELS6_88ELS6_245ELS6_28ELS6_153ELS6_102ELS6_105ELS6_148ELS6_4ELS6_174ELS6_34ELS6_148ELS6_115ELS6_12ELS6_60ELS6_159ELS6_155ELS6_218ELS6_83ELS6_82ELS6_60ELS6_229ELS6_14ELS6_155ELS6_149ELS6_229ELS6_88ELS6_218ELS6_47ELS6_219ELS6_38ELS6_27ELS6_77ELS6_76ELS6_134ELS6_4ELS6_27ELS6_26ELS6_177ELS6_191ELS6_147ELS6_9ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_255ELS6_255ELS6_255ELS6_255ELS6_7ELS6_4ELS6_76ELS6_134ELS6_4ELS6_27ELS6_1ELS6_70ELS6_255ELS6_255ELS6_255ELS6_255ELS6_1ELS6_0ELS6_242ELS6_5ELS6_42ELS6_1ELS6_0ELS6_0ELS6_0ELS6_67ELS6_65ELS6_4ELS6_225ELS6_143ELS6_122ELS6_251ELS6_228ELS6_114ELS6_21ELS6_128ELS6_232ELS6_30ELS6_132ELS6_20ELS6_252ELS6_140ELS6_36ELS6_215ELS6_207ELS6_172ELS6_242ELS6_84ELS6_187ELS6_92ELS6_123ELS6_148ELS6_148ELS6_80ELS6_195ELS6_233ELS6_151ELS6_194ELS6_220ELS6_18ELS6_66ELS6_72ELS6_122ELS6_129ELS6_105ELS6_80ELS6_123ELS6_99ELS6_30ELS6_179ELS6_119ELS6_31ELS6_43ELS6_66ELS6_84ELS6_131ELS6_251ELS6_19ELS6_16ELS6_44ELS6_78ELS6_181ELS6_216ELS6_88ELS6_238ELS6_242ELS6_96ELS6_254ELS6_112ELS6_251ELS6_250ELS6_224ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_150ELS6_96ELS6_140ELS6_203ELS6_175ELS6_161ELS6_106ELS6_186ELS6_218ELS6_144ELS6_39ELS6_128ELS6_218ELS6_77ELS6_195ELS6_93ELS6_175ELS6_215ELS6_175ELS6_5ELS6_250ELS6_13ELS6_160ELS6_140ELS6_248ELS6_51ELS6_87ELS6_95ELS6_140ELS6_249ELS6_232ELS6_54ELS6_0ELS6_0ELS6_0ELS6_0ELS6_74ELS6_73ELS6_48ELS6_70ELS6_2ELS6_33ELS6_0ELS6_218ELS6_178ELS6_72ELS6_137ELS6_33ELS6_60ELS6_175ELS6_67ELS6_174ELS6_106ELS6_220ELS6_65ELS6_207ELS6_28ELS6_147ELS6_150ELS6_192ELS6_130ELS6_64ELS6_193ELS6_153ELS6_245ELS6_34ELS6_90ELS6_207ELS6_69ELS6_65ELS6_99ELS6_48ELS6_253ELS6_125ELS6_189ELS6_2ELS6_33ELS6_0ELS6_254ELS6_55ELS6_144ELS6_14ELS6_6ELS6_68ELS6_191ELS6_87ELS6_68ELS6_147ELS6_160ELS6_127ELS6_197ELS6_237ELS6_186ELS6_6ELS6_219ELS6_192ELS6_124ELS6_49ELS6_27ELS6_148ELS6_117ELS6_32ELS6_194ELS6_213ELS6_20ELS6_188ELS6_87ELS6_37ELS6_220ELS6_180ELS6_1ELS6_255ELS6_255ELS6_255ELS6_255ELS6_1ELS6_0ELS6_242ELS6_5ELS6_42ELS6_1ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_241ELS6_93ELS6_25ELS6_33ELS6_245ELS6_46ELS6_64ELS6_7ELS6_177ELS6_70ELS6_223ELS6_166ELS6_15ELS6_54ELS6_158ELS6_210ELS6_252ELS6_57ELS6_60ELS6_226ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_251ELS6_118ELS6_108ELS6_18ELS6_136ELS6_69ELS6_140ELS6_43ELS6_175ELS6_207ELS6_236ELS6_129ELS6_228ELS6_139ELS6_36ELS6_217ELS6_142ELS6_199ELS6_6ELS6_222ELS6_107ELS6_138ELS6_247ELS6_196ELS6_227ELS6_194ELS6_148ELS6_25ELS6_191ELS6_172ELS6_181ELS6_109ELS6_0ELS6_0ELS6_0ELS6_0ELS6_140ELS6_73ELS6_48ELS6_70ELS6_2ELS6_33ELS6_0ELS6_242ELS6_104ELS6_186ELS6_22ELS6_92ELS6_224ELS6_173ELS6_46ELS6_109ELS6_147ELS6_240ELS6_137ELS6_207ELS6_205ELS6_55ELS6_133ELS6_222ELS6_92ELS6_150ELS6_59ELS6_181ELS6_234ELS6_107ELS6_140ELS6_27ELS6_35ELS6_241ELS6_206ELS6_62ELS6_81ELS6_123ELS6_159ELS6_2ELS6_33ELS6_0ELS6_218ELS6_124ELS6_15ELS6_33ELS6_173ELS6_198ELS6_196ELS6_1ELS6_136ELS6_127ELS6_43ELS6_253ELS6_25ELS6_34ELS6_241ELS6_29ELS6_118ELS6_21ELS6_156ELS6_188ELS6_89ELS6_127ELS6_189ELS6_117ELS6_106ELS6_35ELS6_220ELS6_187ELS6_0ELS6_244ELS6_215ELS6_41ELS6_1ELS6_65ELS6_4ELS6_43ELS6_78ELS6_134ELS6_37ELS6_169ELS6_97ELS6_39ELS6_130ELS6_105ELS6_21ELS6_165ELS6_177ELS6_9ELS6_133ELS6_38ELS6_54ELS6_173ELS6_13ELS6_167ELS6_83ELS6_201ELS6_225ELS6_213ELS6_96ELS6_106ELS6_80ELS6_72ELS6_12ELS6_208ELS6_196ELS6_15ELS6_31ELS6_139ELS6_141ELS6_137ELS6_130ELS6_53ELS6_229ELS6_113ELS6_254ELS6_147ELS6_87ELS6_217ELS6_236ELS6_132ELS6_43ELS6_196ELS6_187ELS6_161ELS6_130ELS6_125ELS6_170ELS6_244ELS6_222ELS6_6ELS6_215ELS6_24ELS6_68ELS6_208ELS6_5ELS6_119ELS6_7ELS6_150ELS6_106ELS6_255ELS6_255ELS6_255ELS6_255ELS6_2ELS6_128ELS6_150ELS6_152ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_105ELS6_99ELS6_144ELS6_117ELS6_49ELS6_219ELS6_114ELS6_208ELS6_237ELS6_26ELS6_12ELS6_251ELS6_71ELS6_28ELS6_203ELS6_99ELS6_146ELS6_52ELS6_70ELS6_243ELS6_136ELS6_172ELS6_128ELS6_214ELS6_227ELS6_76ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_240ELS6_104ELS6_139ELS6_161ELS6_192ELS6_209ELS6_206ELS6_24ELS6_44ELS6_122ELS6_246ELS6_116ELS6_30ELS6_2ELS6_101ELS6_140ELS6_125ELS6_77ELS6_252ELS6_211ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_2ELS6_196ELS6_2ELS6_151ELS6_247ELS6_48ELS6_221ELS6_123ELS6_90ELS6_153ELS6_86ELS6_126ELS6_184ELS6_210ELS6_123ELS6_120ELS6_117ELS6_143ELS6_96ELS6_117ELS6_7ELS6_197ELS6_34ELS6_146ELS6_208ELS6_45ELS6_64ELS6_49ELS6_137ELS6_91ELS6_82ELS6_242ELS6_255ELS6_1ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_33ELS6_0ELS6_247ELS6_237ELS6_253ELS6_75ELS6_10ELS6_172ELS6_64ELS6_78ELS6_91ELS6_171ELS6_79ELS6_211ELS6_136ELS6_158ELS6_12ELS6_108ELS6_65ELS6_170ELS6_141ELS6_14ELS6_111ELS6_161ELS6_34ELS6_49ELS6_111ELS6_104ELS6_237ELS6_221ELS6_10ELS6_101ELS6_1ELS6_57ELS6_2ELS6_32ELS6_91ELS6_9ELS6_204ELS6_139ELS6_45ELS6_86ELS6_225ELS6_205ELS6_31ELS6_127ELS6_47ELS6_175ELS6_214ELS6_10ELS6_18ELS6_158ELS6_217ELS6_69ELS6_4ELS6_196ELS6_172ELS6_123ELS6_220ELS6_103ELS6_181ELS6_111ELS6_230ELS6_117ELS6_18ELS6_101ELS6_139ELS6_62ELS6_1ELS6_65ELS6_4ELS6_115ELS6_32ELS6_18ELS6_203ELS6_150ELS6_42ELS6_250ELS6_144ELS6_211ELS6_27ELS6_37ELS6_216ELS6_251ELS6_14ELS6_50ELS6_201ELS6_78ELS6_81ELS6_58ELS6_183ELS6_161ELS6_120ELS6_5ELS6_193ELS6_76ELS6_164ELS6_195ELS6_66ELS6_62ELS6_24ELS6_180ELS6_251ELS6_93ELS6_14ELS6_103ELS6_104ELS6_65ELS6_115ELS6_60ELS6_184ELS6_58ELS6_186ELS6_249ELS6_117ELS6_132ELS6_92ELS6_159ELS6_111ELS6_42ELS6_128ELS6_151ELS6_183ELS6_208ELS6_79ELS6_73ELS6_8ELS6_177ELS6_131ELS6_104ELS6_214ELS6_252ELS6_45ELS6_104ELS6_236ELS6_255ELS6_255ELS6_255ELS6_255ELS6_202ELS6_80ELS6_101ELS6_255ELS6_150ELS6_23ELS6_203ELS6_203ELS6_164ELS6_94ELS6_178ELS6_55ELS6_38ELS6_223ELS6_100ELS6_152ELS6_169ELS6_185ELS6_202ELS6_254ELS6_212ELS6_245ELS6_76ELS6_186ELS6_185ELS6_210ELS6_39ELS6_176ELS6_3ELS6_93ELS6_222ELS6_251ELS6_0ELS6_0ELS6_0ELS6_0ELS6_138ELS6_71ELS6_48ELS6_68ELS6_2ELS6_32ELS6_104ELS6_1ELS6_3ELS6_98ELS6_161ELS6_60ELS6_127ELS6_153ELS6_25ELS6_250ELS6_131ELS6_43ELS6_45ELS6_238ELS6_78ELS6_120ELS6_143ELS6_97ELS6_246ELS6_245ELS6_211ELS6_68ELS6_167ELS6_194ELS6_160ELS6_218ELS6_106ELS6_231ELS6_64ELS6_96ELS6_86ELS6_88ELS6_2ELS6_32ELS6_6ELS6_209ELS6_175ELS6_82ELS6_91ELS6_154ELS6_20ELS6_163ELS6_92ELS6_0ELS6_59ELS6_120ELS6_183ELS6_43ELS6_213ELS6_151ELS6_56ELS6_205ELS6_103ELS6_111ELS6_132ELS6_93ELS6_31ELS6_243ELS6_252ELS6_37ELS6_4ELS6_158ELS6_1ELS6_0ELS6_54ELS6_20ELS6_1ELS6_65ELS6_4ELS6_115ELS6_32ELS6_18ELS6_203ELS6_150ELS6_42ELS6_250ELS6_144ELS6_211ELS6_27ELS6_37ELS6_216ELS6_251ELS6_14ELS6_50ELS6_201ELS6_78ELS6_81ELS6_58ELS6_183ELS6_161ELS6_120ELS6_5ELS6_193ELS6_76ELS6_164ELS6_195ELS6_66ELS6_62ELS6_24ELS6_180ELS6_251ELS6_93ELS6_14ELS6_103ELS6_104ELS6_65ELS6_115ELS6_60ELS6_184ELS6_58ELS6_186ELS6_249ELS6_117ELS6_132ELS6_92ELS6_159ELS6_111ELS6_42ELS6_128ELS6_151ELS6_183ELS6_208ELS6_79ELS6_73ELS6_8ELS6_177ELS6_131ELS6_104ELS6_214ELS6_252ELS6_45ELS6_104ELS6_236ELS6_255ELS6_255ELS6_255ELS6_255ELS6_1ELS6_0ELS6_30ELS6_196ELS6_17ELS6_2ELS6_0ELS6_0ELS6_0ELS6_67ELS6_65ELS6_4ELS6_105ELS6_171ELS6_65ELS6_129ELS6_236ELS6_235ELS6_40ELS6_152ELS6_91ELS6_155ELS6_78ELS6_137ELS6_92ELS6_19ELS6_250ELS6_94ELS6_104ELS6_216ELS6_87ELS6_97ELS6_183ELS6_238ELS6_227ELS6_17ELS6_219ELS6_90ELS6_221ELS6_239ELS6_118ELS6_250ELS6_134ELS6_33ELS6_134ELS6_81ELS6_52ELS6_162ELS6_33ELS6_189ELS6_1ELS6_242ELS6_142ELS6_201ELS6_153ELS6_158ELS6_227ELS6_224ELS6_33ELS6_230ELS6_7ELS6_102ELS6_233ELS6_209ELS6_243ELS6_69ELS6_140ELS6_17ELS6_95ELS6_178ELS6_134ELS6_80ELS6_96ELS6_95ELS6_17ELS6_201ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_205ELS6_175ELS6_47ELS6_117ELS6_142ELS6_145ELS6_197ELS6_20ELS6_101ELS6_94ELS6_45ELS6_197ELS6_6ELS6_51ELS6_209ELS6_228ELS6_200ELS6_73ELS6_137ELS6_248ELS6_170ELS6_144ELS6_160ELS6_219ELS6_200ELS6_131ELS6_240ELS6_210ELS6_62ELS6_213ELS6_194ELS6_250ELS6_1ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_32ELS6_122ELS6_181ELS6_27ELS6_230ELS6_241ELS6_42ELS6_25ELS6_98ELS6_186ELS6_10ELS6_170ELS6_242ELS6_74ELS6_32ELS6_224ELS6_182ELS6_155ELS6_39ELS6_169ELS6_79ELS6_172ELS6_90ELS6_223ELS6_69ELS6_170ELS6_125ELS6_45ELS6_24ELS6_255ELS6_217ELS6_35ELS6_97ELS6_2ELS6_33ELS6_0ELS6_134ELS6_174ELS6_114ELS6_139ELS6_55ELS6_14ELS6_83ELS6_41ELS6_238ELS6_173ELS6_154ELS6_204ELS6_216ELS6_128ELS6_208ELS6_203ELS6_7ELS6_10ELS6_234ELS6_12ELS6_150ELS6_37ELS6_95ELS6_174ELS6_108ELS6_79ELS6_29ELS6_220ELS6_206ELS6_31ELS6_213ELS6_110ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_2ELS6_64ELS6_75ELS6_76ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_43ELS6_107ELS6_167ELS6_201ELS6_215ELS6_150ELS6_183ELS6_94ELS6_239ELS6_121ELS6_66ELS6_252ELS6_146ELS6_136ELS6_237ELS6_211ELS6_124ELS6_50ELS6_245ELS6_195ELS6_136ELS6_172ELS6_0ELS6_45ELS6_49ELS6_1ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_27ELS6_239ELS6_186ELS6_12ELS6_220ELS6_26ELS6_213ELS6_101ELS6_41ELS6_55ELS6_24ELS6_100ELS6_217ELS6_246ELS6_203ELS6_4ELS6_47ELS6_170ELS6_6ELS6_181ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_180ELS6_164ELS6_118ELS6_3ELS6_231ELS6_27ELS6_97ELS6_188ELS6_51ELS6_38ELS6_239ELS6_217ELS6_1ELS6_17ELS6_191ELS6_2ELS6_210ELS6_245ELS6_73ELS6_176ELS6_103ELS6_244ELS6_196ELS6_168ELS6_250ELS6_24ELS6_59ELS6_87ELS6_160ELS6_248ELS6_0ELS6_203ELS6_1ELS6_0ELS6_0ELS6_0ELS6_138ELS6_71ELS6_48ELS6_68ELS6_2ELS6_32ELS6_23ELS6_124ELS6_55ELS6_249ELS6_165ELS6_5ELS6_195ELS6_241ELS6_161ELS6_240ELS6_206ELS6_45ELS6_167ELS6_119ELS6_195ELS6_57ELS6_189ELS6_131ELS6_57ELS6_255ELS6_160ELS6_44ELS6_124ELS6_180ELS6_31ELS6_10ELS6_88ELS6_4ELS6_244ELS6_115ELS6_201ELS6_35ELS6_2ELS6_32ELS6_88ELS6_91ELS6_37ELS6_162ELS6_238ELS6_128ELS6_235ELS6_89ELS6_41ELS6_46ELS6_82ELS6_185ELS6_135ELS6_218ELS6_217ELS6_42ELS6_203ELS6_12ELS6_100ELS6_236ELS6_237ELS6_146ELS6_237ELS6_158ELS6_225ELS6_5ELS6_173ELS6_21ELS6_60ELS6_219ELS6_18ELS6_208ELS6_1ELS6_65ELS6_4ELS6_67ELS6_189ELS6_68ELS6_246ELS6_131ELS6_70ELS6_126ELS6_84ELS6_157ELS6_174ELS6_125ELS6_32ELS6_209ELS6_215ELS6_156ELS6_189ELS6_182ELS6_223ELS6_152ELS6_92ELS6_110ELS6_156ELS6_2ELS6_156ELS6_141ELS6_12ELS6_108ELS6_180ELS6_108ELS6_193ELS6_164ELS6_211ELS6_207ELS6_121ELS6_35ELS6_197ELS6_2ELS6_27ELS6_39ELS6_247ELS6_160ELS6_181ELS6_98ELS6_173ELS6_161ELS6_19ELS6_188ELS6_133ELS6_213ELS6_253ELS6_165ELS6_161ELS6_180ELS6_30ELS6_135ELS6_254ELS6_110ELS6_136ELS6_2ELS6_129ELS6_124ELS6_246ELS6_153ELS6_150ELS6_255ELS6_255ELS6_255ELS6_255ELS6_2ELS6_128ELS6_101ELS6_20ELS6_6ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_85ELS6_5ELS6_97ELS6_72ELS6_89ELS6_100ELS6_58ELS6_183ELS6_181ELS6_71ELS6_205ELS6_127ELS6_31ELS6_94ELS6_126ELS6_42ELS6_18ELS6_50ELS6_45ELS6_55ELS6_136ELS6_172ELS6_0ELS6_170ELS6_2ELS6_113ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_234ELS6_71ELS6_32ELS6_167ELS6_165ELS6_47ELS6_193ELS6_102ELS6_197ELS6_95ELS6_242ELS6_41ELS6_142ELS6_7ELS6_186ELS6_247ELS6_10ELS6_230ELS6_126ELS6_27ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_5ELS6_134ELS6_198ELS6_44ELS6_214ELS6_2ELS6_210ELS6_25ELS6_187ELS6_96ELS6_237ELS6_177ELS6_74ELS6_62ELS6_32ELS6_77ELS6_224ELS6_112ELS6_81ELS6_118ELS6_249ELS6_2ELS6_47ELS6_228ELS6_154ELS6_83ELS6_128ELS6_84ELS6_251ELS6_20ELS6_171ELS6_180ELS6_158ELS6_1ELS6_0ELS6_0ELS6_0ELS6_140ELS6_73ELS6_48ELS6_70ELS6_2ELS6_33ELS6_0ELS6_242ELS6_188ELS6_42ELS6_186ELS6_37ELS6_52ELS6_190ELS6_203ELS6_223ELS6_6ELS6_46ELS6_185ELS6_147ELS6_133ELS6_58ELS6_66ELS6_187ELS6_188ELS6_40ELS6_32ELS6_131ELS6_208ELS6_218ELS6_249ELS6_180ELS6_181ELS6_133ELS6_189ELS6_64ELS6_26ELS6_168ELS6_201ELS6_2ELS6_33ELS6_0ELS6_177ELS6_215ELS6_253ELS6_126ELS6_224ELS6_185ELS6_86ELS6_0ELS6_219ELS6_133ELS6_53ELS6_187ELS6_243ELS6_49ELS6_177ELS6_158ELS6_237ELS6_141ELS6_150ELS6_31ELS6_122ELS6_142ELS6_84ELS6_21ELS6_156ELS6_83ELS6_103ELS6_93ELS6_95ELS6_105ELS6_223ELS6_140ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_3ELS6_173ELS6_14ELS6_88ELS6_204ELS6_218ELS6_195ELS6_223ELS6_157ELS6_194ELS6_138ELS6_33ELS6_139ELS6_207ELS6_111ELS6_25ELS6_151ELS6_176ELS6_169ELS6_51ELS6_6ELS6_250ELS6_170ELS6_75ELS6_58ELS6_40ELS6_174ELS6_131ELS6_68ELS6_123ELS6_33ELS6_121ELS6_1ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_33ELS6_0ELS6_190ELS6_18ELS6_178ELS6_147ELS6_113ELS6_121ELS6_218ELS6_136ELS6_89ELS6_158ELS6_39ELS6_187ELS6_49ELS6_195ELS6_82ELS6_80ELS6_151ELS6_160ELS6_124ELS6_219ELS6_82ELS6_66ELS6_45ELS6_22ELS6_91ELS6_60ELS6_162ELS6_242ELS6_2ELS6_15ELS6_252ELS6_247ELS6_2ELS6_32ELS6_9ELS6_113ELS6_181ELS6_31ELS6_133ELS6_58ELS6_83ELS6_214ELS6_68ELS6_235ELS6_174ELS6_158ELS6_200ELS6_243ELS6_81ELS6_46ELS6_68ELS6_43ELS6_27ELS6_203ELS6_108ELS6_49ELS6_90ELS6_91ELS6_73ELS6_29ELS6_17ELS6_157ELS6_16ELS6_98ELS6_76ELS6_131ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_42ELS6_207ELS6_202ELS6_182ELS6_41ELS6_187ELS6_200ELS6_104ELS6_87ELS6_146ELS6_96ELS6_55ELS6_98ELS6_201ELS6_33ELS6_88ELS6_0ELS6_48ELS6_186ELS6_20ELS6_74ELS6_245ELS6_83ELS6_210ELS6_113ELS6_113ELS6_106ELS6_149ELS6_8ELS6_158ELS6_16ELS6_123ELS6_1ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_33ELS6_0ELS6_250ELS6_87ELS6_154ELS6_132ELS6_10ELS6_194ELS6_88ELS6_135ELS6_19ELS6_101ELS6_221ELS6_72ELS6_205ELS6_117ELS6_82ELS6_249ELS6_108ELS6_142ELS6_234ELS6_105ELS6_189ELS6_0ELS6_216ELS6_79ELS6_5ELS6_178ELS6_131ELS6_160ELS6_218ELS6_179ELS6_17ELS6_225ELS6_2ELS6_32ELS6_126ELS6_60ELS6_14ELS6_233ELS6_35ELS6_72ELS6_20ELS6_207ELS6_187ELS6_27ELS6_101ELS6_155ELS6_131ELS6_103ELS6_22ELS6_24ELS6_244ELS6_90ELS6_188ELS6_19ELS6_38ELS6_185ELS6_237ELS6_204ELS6_119ELS6_213ELS6_82ELS6_164ELS6_242ELS6_168ELS6_5ELS6_192ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_220ELS6_220ELS6_96ELS6_35ELS6_187ELS6_201ELS6_148ELS6_74ELS6_101ELS6_141ELS6_220ELS6_88ELS6_142ELS6_97ELS6_234ELS6_203ELS6_115ELS6_125ELS6_223ELS6_10ELS6_60ELS6_210ELS6_79ELS6_17ELS6_59ELS6_90ELS6_134ELS6_52ELS6_197ELS6_23ELS6_252ELS6_210ELS6_0ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_33ELS6_0ELS6_141ELS6_109ELS6_247ELS6_49ELS6_223ELS6_93ELS6_50ELS6_38ELS6_121ELS6_84ELS6_189ELS6_125ELS6_45ELS6_218ELS6_35ELS6_2ELS6_183ELS6_76ELS6_108ELS6_42ELS6_106ELS6_165ELS6_192ELS6_202ELS6_100ELS6_236ELS6_186ELS6_188ELS6_26ELS6_240ELS6_60ELS6_117ELS6_2ELS6_32ELS6_16ELS6_229ELS6_92ELS6_87ELS6_29ELS6_101ELS6_218ELS6_119ELS6_1ELS6_174ELS6_45ELS6_161ELS6_149ELS6_108ELS6_68ELS6_45ELS6_248ELS6_27ELS6_191ELS6_7ELS6_108ELS6_219ELS6_172ELS6_37ELS6_19ELS6_63ELS6_153ELS6_217ELS6_138ELS6_158ELS6_211ELS6_76ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_225ELS6_85ELS6_87ELS6_205ELS6_92ELS6_226ELS6_88ELS6_244ELS6_121ELS6_223ELS6_214ELS6_220ELS6_101ELS6_20ELS6_237ELS6_246ELS6_215ELS6_237ELS6_91ELS6_33ELS6_252ELS6_250ELS6_74ELS6_3ELS6_143ELS6_214ELS6_159ELS6_6ELS6_184ELS6_58ELS6_199ELS6_110ELS6_1ELS6_0ELS6_0ELS6_0ELS6_139ELS6_72ELS6_48ELS6_69ELS6_2ELS6_32ELS6_35ELS6_179ELS6_224ELS6_171ELS6_7ELS6_30ELS6_177ELS6_29ELS6_226ELS6_235ELS6_28ELS6_195ELS6_166ELS6_114ELS6_97ELS6_184ELS6_102ELS6_248ELS6_107ELS6_246ELS6_134ELS6_125ELS6_69ELS6_88ELS6_22ELS6_95ELS6_124ELS6_140ELS6_138ELS6_202ELS6_45ELS6_134ELS6_2ELS6_33ELS6_0ELS6_220ELS6_110ELS6_31ELS6_83ELS6_169ELS6_29ELS6_227ELS6_239ELS6_232ELS6_246ELS6_53ELS6_18ELS6_133ELS6_8ELS6_17ELS6_242ELS6_98ELS6_132ELS6_182ELS6_47ELS6_133ELS6_12ELS6_112ELS6_202ELS6_115ELS6_237ELS6_93ELS6_232ELS6_119ELS6_31ELS6_180ELS6_81ELS6_1ELS6_65ELS6_4ELS6_70ELS6_46ELS6_118ELS6_253ELS6_64ELS6_103ELS6_179ELS6_160ELS6_170ELS6_66ELS6_7ELS6_0ELS6_130ELS6_220ELS6_176ELS6_191ELS6_47ELS6_56ELS6_139ELS6_100ELS6_149ELS6_207ELS6_51ELS6_215ELS6_137ELS6_144ELS6_79ELS6_7ELS6_208ELS6_245ELS6_92ELS6_64ELS6_251ELS6_212ELS6_184ELS6_41ELS6_99ELS6_198ELS6_155ELS6_61ELS6_195ELS6_24ELS6_149ELS6_208ELS6_199ELS6_114ELS6_200ELS6_18ELS6_177ELS6_213ELS6_251ELS6_202ELS6_222ELS6_21ELS6_49ELS6_46ELS6_241ELS6_192ELS6_232ELS6_235ELS6_187ELS6_18ELS6_220ELS6_212ELS6_255ELS6_255ELS6_255ELS6_255ELS6_1ELS6_64ELS6_75ELS6_76ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_43ELS6_107ELS6_167ELS6_201ELS6_215ELS6_150ELS6_183ELS6_94ELS6_239ELS6_121ELS6_66ELS6_252ELS6_146ELS6_136ELS6_237ELS6_211ELS6_124ELS6_50ELS6_245ELS6_195ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_102ELS6_215ELS6_87ELS6_113ELS6_99ELS6_201ELS6_50ELS6_180ELS6_249ELS6_105ELS6_12ELS6_166ELS6_168ELS6_11ELS6_110ELS6_78ELS6_176ELS6_1ELS6_240ELS6_162ELS6_250ELS6_144ELS6_35ELS6_223ELS6_85ELS6_149ELS6_96ELS6_42ELS6_174ELS6_150ELS6_237ELS6_141ELS6_0ELS6_0ELS6_0ELS6_0ELS6_138ELS6_71ELS6_48ELS6_68ELS6_2ELS6_32ELS6_38ELS6_43ELS6_66ELS6_84ELS6_99ELS6_2ELS6_223ELS6_182ELS6_84ELS6_162ELS6_41ELS6_206ELS6_252ELS6_134ELS6_67ELS6_43ELS6_137ELS6_98ELS6_143ELS6_242ELS6_89ELS6_220ELS6_135ELS6_237ELS6_209ELS6_21ELS6_69ELS6_53ELS6_177ELS6_106ELS6_103ELS6_225ELS6_2ELS6_32ELS6_123ELS6_70ELS6_52ELS6_192ELS6_32ELS6_169ELS6_124ELS6_62ELS6_123ELS6_189ELS6_13ELS6_77ELS6_25ELS6_218ELS6_106ELS6_162ELS6_38ELS6_154ELS6_217ELS6_221ELS6_237ELS6_64ELS6_38ELS6_232ELS6_150ELS6_178ELS6_19ELS6_215ELS6_60ELS6_164ELS6_182ELS6_63ELS6_1ELS6_65ELS6_4ELS6_151ELS6_155ELS6_130ELS6_208ELS6_34ELS6_38ELS6_179ELS6_164ELS6_89ELS6_117ELS6_35ELS6_132ELS6_87ELS6_84ELS6_212ELS6_79ELS6_19ELS6_99ELS6_158ELS6_59ELS6_242ELS6_223ELS6_94ELS6_130ELS6_198ELS6_170ELS6_178ELS6_189ELS6_199ELS6_150ELS6_135ELS6_54ELS6_139ELS6_1ELS6_177ELS6_171ELS6_139ELS6_25ELS6_135ELS6_90ELS6_227ELS6_201ELS6_13ELS6_102ELS6_26ELS6_61ELS6_10ELS6_51ELS6_22ELS6_29ELS6_171ELS6_41ELS6_147ELS6_78ELS6_222ELS6_179ELS6_106ELS6_160ELS6_25ELS6_118ELS6_190ELS6_59ELS6_175ELS6_138ELS6_255ELS6_255ELS6_255ELS6_255ELS6_2ELS6_64ELS6_75ELS6_76ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_72ELS6_84ELS6_230ELS6_149ELS6_160ELS6_42ELS6_240ELS6_174ELS6_172ELS6_184ELS6_35ELS6_204ELS6_188ELS6_39ELS6_33ELS6_52ELS6_86ELS6_30ELS6_10ELS6_22ELS6_136ELS6_172ELS6_64ELS6_66ELS6_15ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_171ELS6_238ELS6_147ELS6_55ELS6_109ELS6_107ELS6_55ELS6_181ELS6_194ELS6_148ELS6_6ELS6_85ELS6_166ELS6_252ELS6_175ELS6_28ELS6_142ELS6_116ELS6_35ELS6_121ELS6_136ELS6_172ELS6_0ELS6_0ELS6_0ELS6_0ELS6_1ELS6_0ELS6_0ELS6_0ELS6_1ELS6_78ELS6_63ELS6_142ELS6_242ELS6_233ELS6_19ELS6_73ELS6_169ELS6_5ELS6_156ELS6_180ELS6_240ELS6_30ELS6_84ELS6_171ELS6_37ELS6_151ELS6_193ELS6_56ELS6_113ELS6_97ELS6_211ELS6_218ELS6_137ELS6_145ELS6_159ELS6_126ELS6_166ELS6_172ELS6_219ELS6_179ELS6_113ELS6_1ELS6_0ELS6_0ELS6_0ELS6_140ELS6_73ELS6_48ELS6_70ELS6_2ELS6_33ELS6_0ELS6_129ELS6_243ELS6_24ELS6_52ELS6_113ELS6_165ELS6_202ELS6_34ELS6_48ELS6_124ELS6_8ELS6_0ELS6_34ELS6_111ELS6_62ELS6_249ELS6_195ELS6_83ELS6_6ELS6_158ELS6_7ELS6_115ELS6_172ELS6_118ELS6_187ELS6_88ELS6_6ELS6_84ELS6_213ELS6_106ELS6_165ELS6_35ELS6_2ELS6_33ELS6_0ELS6_212ELS6_197ELS6_100ELS6_101ELS6_189ELS6_192ELS6_105ELS6_6ELS6_8ELS6_70ELS6_244ELS6_251ELS6_242ELS6_246ELS6_178ELS6_5ELS6_32ELS6_178ELS6_168ELS6_11ELS6_8ELS6_177ELS6_104ELS6_179ELS6_30ELS6_102ELS6_221ELS6_185ELS6_198ELS6_148ELS6_226ELS6_64ELS6_1ELS6_65ELS6_4ELS6_151ELS6_108ELS6_121ELS6_132ELS6_142ELS6_24ELS6_37ELS6_22ELS6_18ELS6_248ELS6_148ELS6_8ELS6_117ELS6_178ELS6_176ELS6_141ELS6_6ELS6_230ELS6_220ELS6_115ELS6_185ELS6_132ELS6_14ELS6_136ELS6_96ELS6_192ELS6_102ELS6_183ELS6_232ELS6_116ELS6_50ELS6_196ELS6_119ELS6_233ELS6_165ELS6_154ELS6_69ELS6_62ELS6_113ELS6_230ELS6_215ELS6_109ELS6_95ELS6_227ELS6_64ELS6_88ELS6_184ELS6_0ELS6_160ELS6_152ELS6_252ELS6_23ELS6_64ELS6_206ELS6_48ELS6_18ELS6_232ELS6_252ELS6_138ELS6_0ELS6_201ELS6_106ELS6_249ELS6_102ELS6_255ELS6_255ELS6_255ELS6_255ELS6_2ELS6_192ELS6_225ELS6_228ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_65ELS6_52ELS6_231ELS6_90ELS6_111ELS6_203ELS6_96ELS6_66ELS6_3ELS6_74ELS6_171ELS6_94ELS6_24ELS6_87ELS6_12ELS6_241ELS6_248ELS6_68ELS6_245ELS6_71ELS6_136ELS6_172ELS6_64ELS6_75ELS6_76ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_25ELS6_118ELS6_169ELS6_20ELS6_43ELS6_107ELS6_167ELS6_201ELS6_215ELS6_150ELS6_183ELS6_94ELS6_239ELS6_121ELS6_66ELS6_252ELS6_146ELS6_136ELS6_237ELS6_211ELS6_124ELS6_50ELS6_245ELS6_195ELS6_136ELS6_172EEEEEEEDavUnexecuted instantiation: _ZN4util12hex_literalsli4_hexITnNS_6detail3HexEXtlNS3_ILm337EEEtlSt5arrayISt4byteLm168EEtlA168_S6_LS6_96ELS6_1ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_0ELS6_255ELS6_255ELS6_255ELS6_127ELS6_0ELS6_0ELS6_0ELS6_0ELS6_255ELS6_255ELS6_255ELS6_127ELS6_254ELS6_255ELS6_255ELS6_127ELS6_1ELS6_255ELS6_255ELS6_255ELS6_127ELS6_0ELS6_0ELS6_0ELS6_0ELS6_255ELS6_255ELS6_255ELS6_127ELS6_0ELS6_255ELS6_255ELS6_255ELS6_127ELS6_0ELS6_47ELS6_85ELS6_82ELS6_71ELS6_69ELS6_78ELS6_84ELS6_58ELS6_32ELS6_65ELS6_108ELS6_101ELS6_114ELS6_116ELS6_32ELS6_107ELS6_101ELS6_121ELS6_32ELS6_99ELS6_111ELS6_109ELS6_112ELS6_114ELS6_111ELS6_109ELS6_105ELS6_115ELS6_101ELS6_100ELS6_44ELS6_32ELS6_117ELS6_112ELS6_103ELS6_114ELS6_97ELS6_100ELS6_101ELS6_32ELS6_114ELS6_101ELS6_113ELS6_117ELS6_105ELS6_114ELS6_101ELS6_100ELS6_0ELS6_70ELS6_48ELS6_68ELS6_2ELS6_32ELS6_101ELS6_63ELS6_235ELS6_214ELS6_65ELS6_15ELS6_71ELS6_15ELS6_107ELS6_174ELS6_17ELS6_202ELS6_209ELS6_156ELS6_72ELS6_65ELS6_59ELS6_236ELS6_177ELS6_172ELS6_44ELS6_23ELS6_249ELS6_8ELS6_253ELS6_15ELS6_213ELS6_59ELS6_220ELS6_58ELS6_189ELS6_82ELS6_2ELS6_32ELS6_109ELS6_14ELS6_156ELS6_150ELS6_254ELS6_136ELS6_212ELS6_160ELS6_240ELS6_30ELS6_217ELS6_222ELS6_218ELS6_226ELS6_182ELS6_249ELS6_224ELS6_13ELS6_169ELS6_76ELS6_173ELS6_15ELS6_236ELS6_170ELS6_230ELS6_110ELS6_207ELS6_104ELS6_155ELS6_247ELS6_27ELS6_80EEEEEEEDav | 
| 388 |  |  | 
| 389 |  | template <util::detail::Hex str> | 
| 390 | 0 | constexpr auto operator""_hex_u8() { return std::bit_cast<std::array<uint8_t, str.bytes.size()>>(str.bytes); }Unexecuted instantiation: _ZN4util12hex_literalsli7_hex_u8ITnNS_6detail3HexEXtlNS3_ILm65EEEtlSt5arrayISt4byteLm32EEtlA32_S6_LS6_134ELS6_128ELS6_135ELS6_202ELS6_2ELS6_166ELS6_249ELS6_116ELS6_196ELS6_89ELS6_137ELS6_36ELS6_195ELS6_107ELS6_87ELS6_118ELS6_45ELS6_50ELS6_203ELS6_69ELS6_113ELS6_113ELS6_103ELS6_227ELS6_0ELS6_98ELS6_44ELS6_113ELS6_103ELS6_227ELS6_137ELS6_101EEEEEEEDavUnexecuted instantiation: _ZN4util12hex_literalsli7_hex_u8ITnNS_6detail3HexEXtlNS3_ILm65EEEtlSt5arrayISt4byteLm32EEtlA32_S6_LS6_80ELS6_146ELS6_155ELS6_116ELS6_193ELS6_160ELS6_73ELS6_84ELS6_183ELS6_139ELS6_75ELS6_96ELS6_53ELS6_233ELS6_122ELS6_94ELS6_7ELS6_138ELS6_90ELS6_15ELS6_40ELS6_236ELS6_150ELS6_213ELS6_71ELS6_191ELS6_238ELS6_154ELS6_206ELS6_128ELS6_58ELS6_192EEEEEEEDav | 
| 391 |  |  | 
| 392 |  | template <util::detail::Hex str> | 
| 393 |  | constexpr auto operator""_hex_v() { return std::vector<std::byte>{str.bytes.begin(), str.bytes.end()}; } | 
| 394 |  |  | 
| 395 |  | template <util::detail::Hex str> | 
| 396 | 0 | inline auto operator""_hex_v_u8() { return std::vector<uint8_t>{UCharCast(str.bytes.data()), UCharCast(str.bytes.data() + str.bytes.size())}; } | 
| 397 |  |  | 
| 398 |  | } // inline namespace hex_literals | 
| 399 |  | } // namespace util | 
| 400 |  |  | 
| 401 |  | #endif // BITCOIN_UTIL_STRENCODINGS_H |