From a28dbbf733e264fe214ac6167dd7c33d296e6474 Mon Sep 17 00:00:00 2001 From: Simone <91993281+SimoneN64@users.noreply.github.com> Date: Tue, 7 Jan 2025 15:12:10 +0000 Subject: [PATCH] Squashed 'external/json/' changes from 9cca280a4..60c48755e 60c48755e Add missing macros in README and link to docs for more info (#4582) a6255cc41 add a ci step for Json_Diagnostic_Positions (#4579) f038ac4c9 Enable modernize-use-integer-sign-comparison check (#4581) 4f64d8d0b Modernize integer comparison (#4577) 2134cb947 Fix NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT with an empty JSON instance (#4508) 6057b31df Overwork astyle call (#4573) 0fa326a8e Use Clang image to run iwyu (#4574) 8314ac2f7 Use ubuntu-latest image to run Valgrind (#4575) 69c8758d5 fix the abi tests for diagnostics positions feature (#4572) 5ff90d9e0 fix diagnostic positions related compilation errors (#4570) 6be4e8560 Bump cppcheck from 1.4.6 to 1.4.7 in /cmake/requirements (#4567) 663058e7d Fix typo in nlohmann_define_derived_type.md (#4565) af4ad7915 Add ONLY_SERIALIZE for NLOHMANN_DEFINE_DERIVED_TYPE_* macros (#4562) 58f5f2596 json start/end position implementation (#4517) 733c59588 Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#4557) 6cb099e30 Suppress modernize-use-integer-sign-comparison (#4558) 094bd2651 Set parents after insert call (#4537) 30cd44df9 Clean up CI (#4553) 5362012fd [StepSecurity] ci: Harden GitHub Actions (#4551) 861ec9c3c Fix token permissions warnings (#4550) f4910b20c Bump mkdocs-material from 9.5.48 to 9.5.49 in /docs/mkdocs (#4548) f2a4ac067 Add step to build the documentation (#4549) 8e1b80001 Move reuse dependency to requirements.txt file (#4547) 677e19e39 Clean up (#4546) 9e23b5d61 :arrow_up: Bump watchdog from 2.1.7 to 6.0.0 in /tools/serve_header (#4542) eb142e33c :arrow_up: Bump ossf/scorecard-action from 2.3.3 to 2.4.0 (#4545) 1c8e26dcb :arrow_up: Bump lukka/get-cmake from 3.31.0 to 3.31.2 (#4544) b6b8378c8 :arrow_up: Bump github/codeql-action from 2.27.9 to 3.27.9 (#4543) 58949c0ad :arrow_up: Bump actions/github-script from 6.4.0 to 7.0.1 (#4540) 7cfbe321b :arrow_up: Bump pyyaml from 6.0 to 6.0.2 in /tools/serve_header (#4541) 4003f8da0 [StepSecurity] Apply security best practices (#4539) 6a2ae22a5 :memo: add OpenSSF Scorecard badge 620034ece :recycle: allow patch and diff to be used with arbitrary string types (#4536) e6cafa573 :memo: fix CPM.cmake example e0a17f847 :memo: add more package managers (#4533) 20ae363a7 Replace EOF with char_traits (#4532) 589641b17 Add support of multi-dim C-style array member of struct. (#4262) f385fe28f :money_with_wings: update sponsors 981a4c39f :memo: trigger documentation build dd81f878f :rocket: fix permissions 549c79ba7 Overwork documentation (#4516) 9f60e8555 Fix return value of get_ptr for unsigned integers (#4525) a006a7a48 Add more GCC warning flags (#4524) 1b9a9d1f2 Update licenses (#4521) 935c6eeb5 Optimize binary `get_number` implementation by reading multiple bytes at once (#4391) e41905fcb :money_with_wings: thanks @phrrngtn d333f0895 CMake: generate a pkg-config file that follow pkg-config conventions (#4456) 3d6c664de Allow comparing default initialized iterators (#4512) ee32bfc1c Make SAX output locale-independent (#4505) a97041a98 Skip enum tests when JSON_DisableEnumSerialization=ON (#4504) f9f8c0779 fix: integer parsed as float when EINTR set in errno (#4506) 378e09179 Fix weak-vtables warning (#4500) 1f218e107 Possible fix for #4485 (#4487) 64f68dc56 Suppress warnings in NLOHMANN_JSON_SERIALIZE_ENUM (#4497) 1c5923e5d Add comment for #4494 (#4496) e3ac5a64b Add test for libstdc++ (#4495) e509007df Remove alwayslink=True Bazel flag (#4396) 060414037 feat: Rebase `feature/optional` to `develop` (#4036) fd20975a9 Add CPack support (#4459) fde9a86c5 Make iterator_proxy_value a forward_iterator (#4371) (#4372) 1825117e6 Another desperate try to fix the CI (#4489) 4a602df34 Add lgtm explanation (#4362) 18ff442e6 Allow overriding the CMake target name (#4483) aff5a31d3 Add NLOHMANN_DEFINE_DERIVED_TYPE_* macros (#4033) ac8b22180 Update CONTRIBUTING.md (#4486) 632583977 Update is_structured.md (#4472) b36f4c477 Update natvis to reflect 3.11.3 and the current structure of basic_json (#4451) 960b763ec Docs: fix typos of 'whether' in `operator_{gt,le,lt}.md` (#4412) 8c391e04f Docs: Fix wrong code usage in the Value access section of `json_pointer.md` (#4255) 01da82eae Fix gdb pretty printer (#4343) 97f0bdaf9 chore: fix some typos in comments (#4345) c883fb0f1 Fix for incorrect function name in documentation example (#4342) 377c767aa Updated exception handling to catch const reference in out_of_range (#4331) 16b3d841d Fixed an error in the `Custom data source` example. (#4335) 199dea11b #4307 Updated docx to 3.10.5 from 3.10.4 (#4310) 0457de21c Align astyle flags in Makefile with CI (#4277) c35d260c2 Suppress Clang-Tidy warnings (#4276) 6a064e026 Remove broken link from CONTRIBUTING.md (#4274) 7efe87549 Update json_has_static_rtti.md (#4269) a259ecc51 Fix `to_json` for enums when the enum has an unsigned underlying type. (#4237) 3780b41dd :moneybag: update sponsors git-subtree-dir: external/json git-subtree-split: 60c48755e3f717eace7830d7bbc0d8f1a5e0cc8a --- .clang-format | 84 - .clang-tidy | 11 + .github/CONTRIBUTING.md | 4 +- .github/dependabot.yml | 26 + .github/workflows/check_amalgamation.yml | 32 +- .github/workflows/cifuzz.yml | 11 +- .github/workflows/codeql-analysis.yml | 19 +- .../workflows/comment_check_amalgamation.yml | 12 +- .github/workflows/dependency-review.yml | 27 + .github/workflows/labeler.yml | 10 +- .github/workflows/macos.yml | 77 +- .github/workflows/publish_documentation.yml | 19 +- .github/workflows/scorecards.yml | 81 + .github/workflows/ubuntu.yml | 161 +- .github/workflows/windows.yml | 16 +- .gitignore | 4 +- .pre-commit-config.yaml | 18 + .reuse/dep5 | 8 +- BUILD.bazel | 1 - CMakeLists.txt | 28 +- LICENSE.MIT | 2 +- Makefile | 35 +- README.md | 121 +- cmake/ci.cmake | 146 +- cmake/pkg-config.pc.in | 9 +- cmake/requirements/requirements-cppcheck.txt | 1 + cmake/requirements/requirements-cpplint.txt | 1 + cmake/requirements/requirements-reuse.txt | 1 + docs/examples/at__keytype_const.c++17.cpp | 2 +- docs/examples/diagnostic_positions.cpp | 51 + docs/examples/diagnostic_positions.output | 50 + docs/examples/json_base_class_t.cpp | 4 +- docs/mkdocs/Makefile | 8 + docs/mkdocs/docs/api/basic_json/accept.md | 16 +- docs/mkdocs/docs/api/basic_json/emplace.md | 5 + .../docs/api/basic_json/emplace_back.md | 11 + docs/mkdocs/docs/api/basic_json/exception.md | 42 +- docs/mkdocs/docs/api/basic_json/get_ptr.md | 36 +- docs/mkdocs/docs/api/basic_json/get_ref.md | 6 +- docs/mkdocs/docs/api/basic_json/index.md | 10 +- docs/mkdocs/docs/api/basic_json/insert.md | 11 + .../docs/api/basic_json/invalid_iterator.md | 42 +- .../docs/api/basic_json/is_structured.md | 2 +- docs/mkdocs/docs/api/basic_json/items.md | 2 +- docs/mkdocs/docs/api/basic_json/operator+=.md | 14 + docs/mkdocs/docs/api/basic_json/operator[].md | 9 + .../mkdocs/docs/api/basic_json/operator_gt.md | 2 +- .../mkdocs/docs/api/basic_json/operator_le.md | 2 +- .../mkdocs/docs/api/basic_json/operator_lt.md | 2 +- .../mkdocs/docs/api/basic_json/other_error.md | 42 +- .../docs/api/basic_json/out_of_range.md | 42 +- docs/mkdocs/docs/api/basic_json/parse.md | 19 +- .../mkdocs/docs/api/basic_json/parse_error.md | 42 +- docs/mkdocs/docs/api/basic_json/push_back.md | 14 + docs/mkdocs/docs/api/basic_json/type_error.md | 42 +- docs/mkdocs/docs/api/basic_json/update.md | 7 +- docs/mkdocs/docs/api/macros/index.md | 15 +- .../api/macros/json_diagnostic_positions.md | 61 + .../docs/api/macros/json_has_static_rtti.md | 2 +- .../macros/json_use_implicit_conversions.md | 2 +- ...n_use_legacy_discarded_value_comparison.md | 2 +- .../macros/nlohmann_define_derived_type.md | 137 + docs/mkdocs/docs/api/operator_literal_json.md | 2 +- .../docs/api/operator_literal_json_pointer.md | 2 +- docs/mkdocs/docs/api/ordered_json.md | 7 + docs/mkdocs/docs/api/ordered_map.md | 5 + docs/mkdocs/docs/features/arbitrary_types.md | 4 +- docs/mkdocs/docs/features/assertions.md | 23 +- docs/mkdocs/docs/features/binary_values.md | 12 +- docs/mkdocs/docs/features/comments.md | 4 +- docs/mkdocs/docs/features/iterators.md | 2 +- docs/mkdocs/docs/features/json_pointer.md | 6 +- docs/mkdocs/docs/features/macros.md | 7 + docs/mkdocs/docs/features/namespace.md | 19 +- .../docs/features/parsing/sax_interface.md | 43 +- docs/mkdocs/docs/features/types/index.md | 30 +- docs/mkdocs/docs/home/customers.md | 159 ++ docs/mkdocs/docs/home/design_goals.md | 2 +- docs/mkdocs/docs/home/exceptions.md | 39 +- docs/mkdocs/docs/home/license.md | 4 +- docs/mkdocs/docs/home/sponsors.md | 6 + docs/mkdocs/docs/images/customers.png | Bin 0 -> 1184114 bytes docs/mkdocs/docs/integration/bazel/BUILD | 5 + docs/mkdocs/docs/integration/bazel/WORKSPACE | 7 + .../mkdocs/docs/integration/bazel/example.cpp | 10 + .../docs/integration/cget/CMakeLists.txt | 7 + docs/mkdocs/docs/integration/cget/example.cpp | 10 + docs/mkdocs/docs/integration/cmake.md | 7 +- .../docs/integration/conan/CMakeLists.txt | 8 +- .../docs/integration/conan/Conanfile.txt | 5 +- .../mkdocs/docs/integration/conan/example.cpp | 3 +- .../docs/integration/cpm/CMakeLists.txt | 9 + docs/mkdocs/docs/integration/cpm/example.cpp | 10 + .../docs/integration/homebrew/CMakeLists.txt | 7 + .../docs/integration/homebrew/example.cpp | 10 + .../docs/integration/hunter/CMakeLists.txt | 15 + .../docs/integration/hunter/example.cpp | 10 + .../docs/integration/macports/CMakeLists.txt | 7 + .../docs/integration/macports/example.cpp | 10 + .../mkdocs/docs/integration/meson/example.cpp | 10 + .../mkdocs/docs/integration/meson/meson.build | 12 + .../nuget/nuget-package-content.png | Bin 0 -> 19422 bytes .../nuget/nuget-project-changes.png | Bin 0 -> 30826 bytes .../nuget/nuget-project-makefile.png | Bin 0 -> 55236 bytes .../nuget/nuget-search-package.png | Bin 0 -> 96734 bytes .../nuget/nuget-select-package.png | Bin 0 -> 157311 bytes .../docs/integration/package_managers.md | 586 +++- .../docs/integration/spack/CMakeLists.txt | 7 + .../mkdocs/docs/integration/spack/example.cpp | 10 + .../docs/integration/vcpkg/CMakeLists.txt | 2 +- .../mkdocs/docs/integration/vcpkg/example.cpp | 3 +- docs/mkdocs/mkdocs.yml | 52 +- docs/mkdocs/requirements.txt | 55 +- include/nlohmann/adl_serializer.hpp | 2 +- .../nlohmann/byte_container_with_subtype.hpp | 2 +- include/nlohmann/detail/abi_macros.hpp | 21 +- .../nlohmann/detail/conversions/from_json.hpp | 73 +- .../nlohmann/detail/conversions/to_chars.hpp | 16 +- .../nlohmann/detail/conversions/to_json.hpp | 27 +- include/nlohmann/detail/exceptions.hpp | 18 +- include/nlohmann/detail/hash.hpp | 2 +- .../nlohmann/detail/input/binary_reader.hpp | 103 +- .../nlohmann/detail/input/input_adapters.hpp | 61 +- include/nlohmann/detail/input/json_sax.hpp | 303 +- include/nlohmann/detail/input/lexer.hpp | 18 +- include/nlohmann/detail/input/parser.hpp | 14 +- include/nlohmann/detail/input/position_t.hpp | 2 +- .../detail/iterators/internal_iterator.hpp | 2 +- .../nlohmann/detail/iterators/iter_impl.hpp | 27 +- .../detail/iterators/iteration_proxy.hpp | 17 +- .../detail/iterators/iterator_traits.hpp | 4 +- .../iterators/json_reverse_iterator.hpp | 2 +- .../detail/iterators/primitive_iterator.hpp | 2 +- .../detail/json_custom_base_class.hpp | 2 +- include/nlohmann/detail/json_pointer.hpp | 2 +- include/nlohmann/detail/json_ref.hpp | 2 +- include/nlohmann/detail/macro_scope.hpp | 66 +- include/nlohmann/detail/macro_unscope.hpp | 2 +- .../nlohmann/detail/meta/call_std/begin.hpp | 2 +- include/nlohmann/detail/meta/call_std/end.hpp | 2 +- include/nlohmann/detail/meta/cpp_future.hpp | 4 +- include/nlohmann/detail/meta/detected.hpp | 2 +- include/nlohmann/detail/meta/identity_tag.hpp | 2 +- include/nlohmann/detail/meta/is_sax.hpp | 2 +- include/nlohmann/detail/meta/std_fs.hpp | 4 +- include/nlohmann/detail/meta/type_traits.hpp | 40 +- include/nlohmann/detail/meta/void_t.hpp | 2 +- .../nlohmann/detail/output/binary_writer.hpp | 4 +- .../detail/output/output_adapters.hpp | 2 +- include/nlohmann/detail/output/serializer.hpp | 10 +- include/nlohmann/detail/string_concat.hpp | 2 +- include/nlohmann/detail/string_escape.hpp | 2 +- include/nlohmann/detail/string_utils.hpp | 37 + include/nlohmann/detail/value_t.hpp | 2 +- include/nlohmann/json.hpp | 189 +- include/nlohmann/json_fwd.hpp | 2 +- include/nlohmann/ordered_map.hpp | 6 +- include/nlohmann/thirdparty/hedley/hedley.hpp | 4 +- .../thirdparty/hedley/hedley_undef.hpp | 2 +- nlohmann_json.natvis | 258 +- single_include/nlohmann/json.hpp | 2515 ++++++++++------- single_include/nlohmann/json_fwd.hpp | 23 +- tests/abi/config/config.hpp | 2 +- tests/abi/config/custom.cpp | 2 +- tests/abi/config/default.cpp | 6 +- tests/abi/config/noversion.cpp | 6 +- tests/abi/diag/diag.cpp | 2 +- tests/abi/diag/diag.hpp | 2 +- tests/abi/diag/diag_off.cpp | 2 +- tests/abi/diag/diag_on.cpp | 2 +- tests/abi/inline_ns/use_current.cpp | 2 +- tests/abi/inline_ns/use_v3_10_5.cpp | 2 +- tests/abi/main.cpp | 3 +- tests/benchmarks/src/benchmarks.cpp | 42 +- tests/cmake_add_subdirectory/project/main.cpp | 2 +- tests/cmake_fetch_content/project/main.cpp | 2 +- tests/cmake_fetch_content2/project/main.cpp | 2 +- tests/cmake_import/project/main.cpp | 2 +- tests/cmake_import_minver/project/main.cpp | 2 +- .../project/Bar.cpp | 2 +- .../project/Bar.hpp | 2 +- .../project/Foo.cpp | 2 +- .../project/Foo.hpp | 2 +- .../project/main.cpp | 2 +- tests/cuda_example/json_cuda.cu | 2 +- tests/src/fuzzer-driver_afl.cpp | 2 +- tests/src/fuzzer-parse_bjdata.cpp | 2 +- tests/src/fuzzer-parse_bson.cpp | 2 +- tests/src/fuzzer-parse_cbor.cpp | 2 +- tests/src/fuzzer-parse_json.cpp | 2 +- tests/src/fuzzer-parse_msgpack.cpp | 2 +- tests/src/fuzzer-parse_ubjson.cpp | 2 +- tests/src/make_test_data_available.hpp | 2 +- tests/src/test_utils.hpp | 2 +- tests/src/unit-32bit.cpp | 4 +- tests/src/unit-algorithms.cpp | 2 +- tests/src/unit-allocator.cpp | 2 +- tests/src/unit-alt-string.cpp | 56 +- tests/src/unit-assert_macro.cpp | 2 +- tests/src/unit-binary_formats.cpp | 2 +- tests/src/unit-bjdata.cpp | 26 +- tests/src/unit-bson.cpp | 4 +- .../src/unit-byte_container_with_subtype.cpp | 3 +- tests/src/unit-capacity.cpp | 3 +- tests/src/unit-cbor.cpp | 29 +- tests/src/unit-class_const_iterator.cpp | 2 +- tests/src/unit-class_iterator.cpp | 2 +- tests/src/unit-class_lexer.cpp | 4 +- tests/src/unit-class_parser.cpp | 12 +- ...unit-class_parser_diagnostic_positions.cpp | 1957 +++++++++++++ tests/src/unit-comparison.cpp | 2 +- tests/src/unit-concepts.cpp | 3 +- tests/src/unit-constructor1.cpp | 2 +- tests/src/unit-constructor2.cpp | 2 +- tests/src/unit-convenience.cpp | 6 +- tests/src/unit-conversions.cpp | 164 +- tests/src/unit-custom-base-class.cpp | 9 +- tests/src/unit-deserialization.cpp | 44 +- tests/src/unit-diagnostics.cpp | 23 +- tests/src/unit-disabled_exceptions.cpp | 7 +- tests/src/unit-element_access1.cpp | 31 +- tests/src/unit-element_access2.cpp | 23 +- tests/src/unit-hash.cpp | 2 +- tests/src/unit-inspection.cpp | 2 +- tests/src/unit-items.cpp | 2 +- tests/src/unit-iterators1.cpp | 2 +- tests/src/unit-iterators2.cpp | 2 +- tests/src/unit-iterators3.cpp | 35 + tests/src/unit-json_patch.cpp | 4 +- tests/src/unit-json_pointer.cpp | 2 +- tests/src/unit-large_json.cpp | 2 +- tests/src/unit-locale-cpp.cpp | 161 ++ tests/src/unit-merge_patch.cpp | 2 +- tests/src/unit-meta.cpp | 2 +- tests/src/unit-modifiers.cpp | 3 +- tests/src/unit-msgpack.cpp | 34 +- .../src/unit-no-mem-leak-on-adl-serialize.cpp | 2 +- tests/src/unit-noexcept.cpp | 19 +- tests/src/unit-ordered_json.cpp | 2 +- tests/src/unit-ordered_map.cpp | 2 +- tests/src/unit-pointer_access.cpp | 6 +- tests/src/unit-readme.cpp | 12 +- tests/src/unit-reference_access.cpp | 6 +- tests/src/unit-regression1.cpp | 25 +- tests/src/unit-regression2.cpp | 91 +- tests/src/unit-serialization.cpp | 4 +- tests/src/unit-testsuites.cpp | 6 +- tests/src/unit-to_chars.cpp | 2 +- tests/src/unit-type_traits.cpp | 2 +- tests/src/unit-ubjson.cpp | 10 +- tests/src/unit-udl.cpp | 2 +- tests/src/unit-udt.cpp | 72 +- tests/src/unit-udt_macro.cpp | 260 +- tests/src/unit-unicode1.cpp | 4 +- tests/src/unit-unicode2.cpp | 2 +- tests/src/unit-unicode3.cpp | 2 +- tests/src/unit-unicode4.cpp | 2 +- tests/src/unit-unicode5.cpp | 2 +- tests/src/unit-user_defined_input.cpp | 2 +- tests/src/unit-windows_h.cpp | 2 +- tests/src/unit-wstring.cpp | 2 +- tests/src/unit.cpp | 2 +- tools/astyle/.astylerc | 80 + tools/astyle/requirements.txt | 1 + tools/gdb_pretty_printer/nlohmann-json.py | 6 +- tools/generate_natvis/nlohmann_json.natvis.j2 | 26 +- tools/serve_header/requirements.txt | 4 +- 267 files changed, 8040 insertions(+), 2294 deletions(-) delete mode 100644 .clang-format create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/dependency-review.yml create mode 100644 .github/workflows/scorecards.yml create mode 100644 .pre-commit-config.yaml create mode 100644 cmake/requirements/requirements-cppcheck.txt create mode 100644 cmake/requirements/requirements-cpplint.txt create mode 100644 cmake/requirements/requirements-reuse.txt create mode 100644 docs/examples/diagnostic_positions.cpp create mode 100644 docs/examples/diagnostic_positions.output create mode 100644 docs/mkdocs/docs/api/macros/json_diagnostic_positions.md create mode 100644 docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md create mode 100644 docs/mkdocs/docs/home/customers.md create mode 100644 docs/mkdocs/docs/images/customers.png create mode 100644 docs/mkdocs/docs/integration/bazel/BUILD create mode 100644 docs/mkdocs/docs/integration/bazel/WORKSPACE create mode 100644 docs/mkdocs/docs/integration/bazel/example.cpp create mode 100644 docs/mkdocs/docs/integration/cget/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/cget/example.cpp create mode 100644 docs/mkdocs/docs/integration/cpm/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/cpm/example.cpp create mode 100644 docs/mkdocs/docs/integration/homebrew/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/homebrew/example.cpp create mode 100644 docs/mkdocs/docs/integration/hunter/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/hunter/example.cpp create mode 100644 docs/mkdocs/docs/integration/macports/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/macports/example.cpp create mode 100644 docs/mkdocs/docs/integration/meson/example.cpp create mode 100644 docs/mkdocs/docs/integration/meson/meson.build create mode 100644 docs/mkdocs/docs/integration/nuget/nuget-package-content.png create mode 100644 docs/mkdocs/docs/integration/nuget/nuget-project-changes.png create mode 100644 docs/mkdocs/docs/integration/nuget/nuget-project-makefile.png create mode 100644 docs/mkdocs/docs/integration/nuget/nuget-search-package.png create mode 100644 docs/mkdocs/docs/integration/nuget/nuget-select-package.png create mode 100644 docs/mkdocs/docs/integration/spack/CMakeLists.txt create mode 100644 docs/mkdocs/docs/integration/spack/example.cpp create mode 100644 include/nlohmann/detail/string_utils.hpp create mode 100644 tests/src/unit-class_parser_diagnostic_positions.cpp create mode 100644 tests/src/unit-iterators3.cpp create mode 100644 tests/src/unit-locale-cpp.cpp create mode 100644 tools/astyle/.astylerc create mode 100644 tools/astyle/requirements.txt diff --git a/.clang-format b/.clang-format deleted file mode 100644 index 5b9e3fd5..00000000 --- a/.clang-format +++ /dev/null @@ -1,84 +0,0 @@ -#AccessModifierOffset: 2 -AlignAfterOpenBracket: Align -AlignConsecutiveAssignments: false -#AlignConsecutiveBitFields: false -AlignConsecutiveDeclarations: false -AlignConsecutiveMacros: false -AlignEscapedNewlines: Right -#AlignOperands: AlignAfterOperator -AlignTrailingComments: true -AllowAllArgumentsOnNextLine: false -AllowAllConstructorInitializersOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortBlocksOnASingleLine: Empty -AllowShortCaseLabelsOnASingleLine: false -#AllowShortEnumsOnASingleLine: true -AllowShortFunctionsOnASingleLine: Empty -AllowShortIfStatementsOnASingleLine: Never -AllowShortLambdasOnASingleLine: Empty -AllowShortLoopsOnASingleLine: false -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: false -AlwaysBreakTemplateDeclarations: Yes -BinPackArguments: false -BinPackParameters: false -#BitFieldColonSpacing: Both -BreakBeforeBraces: Custom # or Allman -BraceWrapping: - AfterCaseLabel: true - AfterClass: true - AfterControlStatement: Always - AfterEnum: true - AfterFunction: true - AfterNamespace: false - AfterStruct: true - AfterUnion: true - AfterExternBlock: false - BeforeCatch: true - BeforeElse: true - #BeforeLambdaBody: false - #BeforeWhile: false - SplitEmptyFunction: false - SplitEmptyRecord: false - SplitEmptyNamespace: false -BreakBeforeTernaryOperators: true -BreakConstructorInitializers: BeforeComma -BreakStringLiterals: false -ColumnLimit: 0 -CompactNamespaces: false -ConstructorInitializerIndentWidth: 2 -Cpp11BracedListStyle: true -PointerAlignment: Left -FixNamespaceComments: true -IncludeBlocks: Preserve -#IndentCaseBlocks: false -IndentCaseLabels: true -IndentGotoLabels: false -IndentPPDirectives: BeforeHash -IndentWidth: 4 -KeepEmptyLinesAtTheStartOfBlocks: false -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ReflowComments: false -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeCpp11BracedList: false -SpaceBeforeParens: ControlStatements -SpaceBeforeRangeBasedForLoopColon: true -SpaceBeforeSquareBrackets: false -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 2 -SpacesInAngles: false -SpacesInCStyleCastParentheses: false -SpacesInConditionalStatement: false -SpacesInContainerLiterals: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: c++11 -TabWidth: 4 -UseTab: Never diff --git a/.clang-tidy b/.clang-tidy index 339360b0..ca6b9b09 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,8 +1,16 @@ +# TODO: The first three checks are only removed to get the CI going. They have to be addressed at some point. + Checks: '*, + + -portability-template-virtual-member-function, + -bugprone-use-after-move, + -hicpp-invalid-access-moved, + -altera-id-dependent-backward-branch, -altera-struct-pack-align, -altera-unroll-loops, -android-cloexec-fopen, + -boost-use-ranges, -bugprone-easily-swappable-parameters, -cert-err58-cpp, -concurrency-mt-unsafe, @@ -44,7 +52,10 @@ Checks: '*, -modernize-concat-nested-namespaces, -modernize-type-traits, -modernize-use-constraints, + -modernize-use-designated-initializers, -modernize-use-nodiscard, + -modernize-use-ranges, + -modernize-use-std-numbers, -modernize-use-trailing-return-type, -performance-enum-size, -readability-function-cognitive-complexity, diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4d33c67b..87b13df3 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,5 +1,3 @@ -[![Issue Stats](http://issuestats.com/github/nlohmann/json/badge/pr?style=flat)](http://issuestats.com/github/nlohmann/json) [![Issue Stats](http://issuestats.com/github/nlohmann/json/badge/issue?style=flat)](http://issuestats.com/github/nlohmann/json) - # How to contribute This project started as a little excuse to exercise some of the cool new C++11 features. Over time, people actually started to use the JSON library (yey!) and started to help improve it by proposing features, finding bugs, or even fixing my mistakes. I am really [thankful](https://github.com/nlohmann/json/blob/master/README.md#thanks) for this and try to keep track of all the helpers. @@ -22,7 +20,7 @@ Clearly describe the issue: - If you propose a change or addition, try to give an **example** how the improved code could look like or how to use it. - If you found a compilation error, please tell us which **compiler** (version and operating system) you used and paste the (relevant part of) the error messages to the ticket. -Please stick to the provided issue template ([bug report](https://github.com/nlohmann/json/blob/develop/.github/ISSUE_TEMPLATE/bug.yml) if possible. For questions, feature or support requests, please [open a discussion](https://github.com/nlohmann/json/discussions/new). +Please stick to the provided issue template ([bug report](https://github.com/nlohmann/json/blob/develop/.github/ISSUE_TEMPLATE/bug.yaml) if possible. For questions, feature or support requests, please [open a discussion](https://github.com/nlohmann/json/discussions/new). ## Files to change diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..c56ed590 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,26 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + + - package-ecosystem: pip + directory: /docs/mkdocs + schedule: + interval: daily + + - package-ecosystem: pip + directory: /tools/astyle + schedule: + interval: daily + + - package-ecosystem: pip + directory: /tools/serve_header + schedule: + interval: daily + + - package-ecosystem: pip + directory: /cmake/requirements + schedule: + interval: daily diff --git a/.github/workflows/check_amalgamation.yml b/.github/workflows/check_amalgamation.yml index 0fadb520..38d7c2fd 100644 --- a/.github/workflows/check_amalgamation.yml +++ b/.github/workflows/check_amalgamation.yml @@ -3,18 +3,24 @@ name: "Check amalgamation" on: pull_request: -permissions: read-all +permissions: + contents: read jobs: save: runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + - name: Save PR number run: | mkdir -p ./pr echo ${{ github.event.number }} > ./pr/number echo ${{ github.event.pull_request.user.login }} > ./pr/author - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: pr path: pr/ @@ -25,29 +31,29 @@ jobs: MAIN_DIR: ${{ github.workspace }}/main INCLUDE_DIR: ${{ github.workspace }}/main/single_include/nlohmann TOOL_DIR: ${{ github.workspace }}/tools/tools/amalgamate - ASTYLE_FLAGS: > - --style=allman --indent=spaces=4 --indent-modifiers --indent-switches --indent-preproc-block - --indent-preproc-define --indent-col1-comments --pad-oper --pad-header --align-pointer=type - --align-reference=type --add-brackets --convert-tabs --close-templates --lineend=linux --preserve-date - --formatted steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + - name: Checkout pull request - uses: actions/checkout@v3 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: main ref: ${{ github.event.pull_request.head.sha }} - name: Checkout tools - uses: actions/checkout@v3 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: tools ref: develop - name: Install astyle run: | - sudo apt-get update - sudo apt-get install astyle + python3 -mvenv venv + venv/bin/pip3 install -r $MAIN_DIR/tools/astyle/requirements.txt - name: Check amalgamation run: | @@ -60,11 +66,11 @@ jobs: python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json.json -s . python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json_fwd.json -s . echo "Format (1)" - astyle $ASTYLE_FLAGS --suffix=none --quiet $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json_fwd.hpp + ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=none --quiet $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json_fwd.hpp diff $INCLUDE_DIR/json.hpp~ $INCLUDE_DIR/json.hpp diff $INCLUDE_DIR/json_fwd.hpp~ $INCLUDE_DIR/json_fwd.hpp - astyle $ASTYLE_FLAGS $(find docs/examples include tests -type f \( -name '*.hpp' -o -name '*.cpp' -o -name '*.cu' \) -not -path 'tests/thirdparty/*' -not -path 'tests/abi/include/nlohmann/*' | sort) + ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=orig $(find docs/examples include tests -type f \( -name '*.hpp' -o -name '*.cpp' -o -name '*.cu' \) -not -path 'tests/thirdparty/*' -not -path 'tests/abi/include/nlohmann/*' | sort) echo Check find $MAIN_DIR -name '*.orig' -exec false {} \+ diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml index 0fd355bc..425993f0 100644 --- a/.github/workflows/cifuzz.yml +++ b/.github/workflows/cifuzz.yml @@ -8,22 +8,27 @@ jobs: Fuzzing: runs-on: ubuntu-latest steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + - name: Build Fuzzers id: build - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@57fe4475324c5506adbfecdcdd2917f65c86ee9e # master with: oss-fuzz-project-name: 'json' dry-run: false language: c++ - name: Run Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@57fe4475324c5506adbfecdcdd2917f65c86ee9e # master with: oss-fuzz-project-name: 'json' fuzz-seconds: 300 dry-run: false language: c++ - name: Upload Crash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 if: failure() && steps.build.outcome == 'success' with: name: artifacts diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 93923a18..6af859d6 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,13 +11,13 @@ on: - cron: '0 19 * * 1' workflow_dispatch: -permissions: - contents: read - concurrency: group: ${{ github.workflow }}-${{ github.ref || github.run_id }} cancel-in-progress: true +permissions: + contents: read + jobs: CodeQL-Build: @@ -26,19 +26,24 @@ jobs: security-events: write steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 with: languages: c-cpp # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 diff --git a/.github/workflows/comment_check_amalgamation.yml b/.github/workflows/comment_check_amalgamation.yml index 2ab5ebb9..edbece45 100644 --- a/.github/workflows/comment_check_amalgamation.yml +++ b/.github/workflows/comment_check_amalgamation.yml @@ -5,7 +5,8 @@ on: types: - completed -permissions: {} +permissions: + contents: read jobs: comment: @@ -17,8 +18,13 @@ jobs: issues: read pull-requests: write steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + - name: 'Download artifact' - uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0 + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: script: | var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ @@ -40,7 +46,7 @@ jobs: - run: unzip pr.zip - name: 'Comment on PR' - uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0 + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml new file mode 100644 index 00000000..21a469b1 --- /dev/null +++ b/.github/workflows/dependency-review.yml @@ -0,0 +1,27 @@ +# Dependency Review Action +# +# This Action will scan dependency manifest files that change as part of a Pull Request, +# surfacing known-vulnerable versions of the packages declared or updated in the PR. +# Once installed, if the workflow run is marked as required, +# PRs introducing known-vulnerable packages will be blocked from merging. +# +# Source repository: https://github.com/actions/dependency-review-action +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - name: 'Checkout Repository' + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: 'Dependency Review' + uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3675e383bb1769c019 # v4.5.0 diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 11925e1a..0898980e 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -4,7 +4,8 @@ on: pull_request_target: types: [opened, synchronize] -permissions: {} +permissions: + contents: read jobs: label: @@ -15,6 +16,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: srvaroa/labeler@master + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - uses: srvaroa/labeler@1b3cdb1af3e59155a08b9b2436d0d54feaff49e2 # master env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9ac1fe3f..4a22a5ba 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -9,24 +9,60 @@ on: pull_request: workflow_dispatch: -permissions: - contents: read - concurrency: group: ${{ github.workflow }}-${{ github.ref || github.run_id }} cancel-in-progress: true +permissions: + contents: read + jobs: - xcode_1: - runs-on: macos-11 +# macos-11 is deprecated +# macos-11: +# runs-on: macos-11 +# strategy: +# matrix: +# xcode: ['11.7', '12.4', '12.5.1', '13.0'] +# env: +# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer +# +# steps: +# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 +# - name: Run CMake +# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON +# - name: Build +# run: cmake --build build --parallel 10 +# - name: Test +# run: cd build ; ctest -j 10 --output-on-failure + +# macos-12 is deprecated (https://github.com/actions/runner-images/issues/10721) +# macos-12: +# runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md +# strategy: +# matrix: +# xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1'] +# env: +# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer +# +# steps: +# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 +# - name: Run CMake +# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON +# - name: Build +# run: cmake --build build --parallel 10 +# - name: Test +# run: cd build ; ctest -j 10 --output-on-failure + + macos-13: + runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md strategy: matrix: - xcode: ['11.7', '12.4', '12.5.1', '13.0'] + xcode: ['14.1', '14.2', '14.3', '14.3.1', '15.0.1', '15.1', '15.2'] env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON - name: Build @@ -34,16 +70,33 @@ jobs: - name: Test run: cd build ; ctest -j 10 --output-on-failure - xcode_2: - runs-on: macos-12 + macos-14: + runs-on: macos-14 # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md strategy: matrix: - xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1'] + xcode: ['15.3', '15.4'] env: DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Run CMake + run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON + - name: Build + run: cmake --build build --parallel 10 + - name: Test + run: cd build ; ctest -j 10 --output-on-failure + + macos-15: + runs-on: macos-15 # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md + strategy: + matrix: + xcode: ['16.0', '16.1'] + env: + DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON - name: Build @@ -58,7 +111,7 @@ jobs: standard: [11, 14, 17, 20, 23] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_TestStandards=${{ matrix.standard }} - name: Build diff --git a/.github/workflows/publish_documentation.yml b/.github/workflows/publish_documentation.yml index 5a32d13a..c6b56a53 100644 --- a/.github/workflows/publish_documentation.yml +++ b/.github/workflows/publish_documentation.yml @@ -10,23 +10,28 @@ on: - docs/examples/** workflow_dispatch: -permissions: - contents: read - # we don't want to have concurrent jobs, and we don't want to cancel running jobs to avoid broken publications concurrency: group: documentation cancel-in-progress: false +permissions: + contents: read + jobs: publish_documentation: + permissions: + contents: write + if: github.repository == 'nlohmann/json' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit - - name: Install and update PlantUML - run: sudo apt-get update ; sudo apt-get install -y plantuml + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install virtual environment run: make install_venv -C docs/mkdocs @@ -35,7 +40,7 @@ jobs: run: make build -C docs/mkdocs - name: Deploy documentation - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs/mkdocs/site diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml new file mode 100644 index 00000000..4a271301 --- /dev/null +++ b/.github/workflows/scorecards.yml @@ -0,0 +1,81 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '20 7 * * 2' + push: + branches: ["develop"] + +permissions: + contents: read + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + contents: read + actions: read + # To allow GraphQL ListCommits to work + issues: read + pull-requests: read + # To detect SAST tools + checks: read + + steps: + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - name: "Checkout code" + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecards on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9 + with: + sarif_file: results.sarif diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 35fb9573..21028f85 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -8,7 +8,7 @@ on: - release/* pull_request: workflow_dispatch: - + permissions: contents: read @@ -23,9 +23,9 @@ jobs: steps: - name: Install git and unzip run: apt-get update ; apt-get install -y git unzip - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -33,36 +33,54 @@ jobs: ci_test_gcc: runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 + container: gcc:latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Get latest CMake and ninja + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build run: cmake --build build --target ci_test_gcc - ci_static_analysis: + ci_infer: runs-on: ubuntu-latest container: ghcr.io/nlohmann/json-ci:v2.4.0 - strategy: - matrix: - target: [ci_cppcheck, ci_test_valgrind, ci_test_amalgamation, ci_test_single_header, ci_single_binaries, ci_infer] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build - run: cmake --build build --target ${{ matrix.target }} + run: cmake --build build --target ci_infer + + ci_test_single_header: + runs-on: ubuntu-latest + container: gcc:latest + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Get latest CMake and ninja + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 + - name: Run CMake + run: cmake -S . -B build -DJSON_CI=On + - name: Build + run: cmake --build build --target ci_test_single_header ci_static_analysis_ubuntu: runs-on: ubuntu-latest strategy: matrix: - target: [ci_cpplint, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata] + target: [ci_test_amalgamation, ci_cppcheck, ci_cpplint, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_reuse_compliance, ci_test_valgrind] steps: - - uses: actions/checkout@v3 + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - name: Install Valgrind + run: sudo apt-get update ; sudo apt-get install -y valgrind + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -73,13 +91,13 @@ jobs: container: silkeh/clang:dev strategy: matrix: - target: [ci_clang_tidy, ci_test_clang_sanitizer, ci_clang_analyze] + target: [ci_clang_tidy, ci_test_clang_sanitizer, ci_clang_analyze, ci_single_binaries] steps: - name: Install git, clang-tools, and unzip - run: apt-get update ; apt-get install -y git clang-tools unzip - - uses: actions/checkout@v3 + run: apt-get update ; apt-get install -y git clang-tools iwyu unzip + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -90,13 +108,13 @@ jobs: container: ubuntu:focal strategy: matrix: - target: [ci_cmake_flags, ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions, ci_test_legacycomparison, ci_test_noglobaludls] + target: [ci_cmake_flags, ci_test_diagnostics, ci_test_diagnostic_positions, ci_test_noexceptions, ci_test_noimplicitconversions, ci_test_legacycomparison, ci_test_noglobaludls] steps: - name: Install build-essential run: apt-get update ; apt-get install -y build-essential unzip wget git - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -104,37 +122,59 @@ jobs: ci_test_coverage: runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 - permissions: - contents: read - checks: write steps: - - uses: actions/checkout@v3 + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Install dependencies and de_DE locale + run: | + sudo apt-get clean + sudo apt-get update + sudo apt-get install -y build-essential cmake lcov ninja-build make locales gcc-multilib g++-multilib + sudo locale-gen de_DE + sudo update-locale - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build run: cmake --build build --target ci_test_coverage - name: Archive coverage report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: code-coverage-report path: ${{ github.workspace }}/build/html - name: Publish report to Coveralls - uses: coverallsapp/github-action@master + uses: coverallsapp/github-action@cfd0633edbd2411b532b808ba7a8b5e04f76d2c8 # v2.3.4 with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: ${{ github.workspace }}/build/json.info.filtered.noexcept + ci_test_compilers_gcc_old: + runs-on: ubuntu-latest + strategy: + matrix: + compiler: ['4.8', '4.9', '5', '6'] + container: ghcr.io/nlohmann/json-ci:v2.4.0 + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Run CMake + run: CXX=g++-${{ matrix.compiler }} cmake -S . -B build -DJSON_CI=On + - name: Build + run: cmake --build build --target ci_test_compiler_g++-${{ matrix.compiler }} + ci_test_compilers_gcc: runs-on: ubuntu-latest strategy: matrix: - compiler: ['4', '5', '6', '7', '8', '9', '10', '11', '12', 'latest'] + # older GCC docker images (4, 5, 6) fail to check out code + compiler: ['7', '8', '9', '10', '11', '12', '13', '14', 'latest'] container: gcc:${{ matrix.compiler }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -144,14 +184,14 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - compiler: ['3.5', '3.6', '3.7', '3.8', '3.9', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15-bullseye', 'latest'] + compiler: ['3.5', '3.6', '3.7', '3.8', '3.9', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15-bullseye', '16', '17', '18', '19', 'latest'] container: silkeh/clang:${{ matrix.compiler }} steps: - name: Install unzip and git run: apt-get update ; apt-get install -y unzip git - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Set env FORCE_STDCPPFS_FLAG for clang 7 / 8 / 9 / 10 run: echo "JSON_FORCED_GLOBAL_COMPILE_OPTIONS=-DJSON_HAS_FILESYSTEM=0;-DJSON_HAS_EXPERIMENTAL_FILESYSTEM=0" >> "$GITHUB_ENV" if: ${{ matrix.compiler == '7' || matrix.compiler == '8' || matrix.compiler == '9' || matrix.compiler == '10' }} @@ -160,27 +200,16 @@ jobs: - name: Build run: cmake --build build --target ci_test_compiler_default - ci_test_compilers: - runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 - strategy: - matrix: - compiler: [g++-4.8] - steps: - - uses: actions/checkout@v3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_compiler_${{ matrix.compiler }} - ci_test_standards_gcc: runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 + container: gcc:latest strategy: matrix: standard: [11, 14, 17, 20, 23] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Get latest CMake and ninja + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -192,22 +221,27 @@ jobs: strategy: matrix: standard: [11, 14, 17, 20, 23] + stdlib: [libcxx, libstdcxx] steps: - name: Install git and unzip run: apt-get update ; apt-get install -y git unzip - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get latest CMake and ninja - uses: lukka/get-cmake@v3.27.7 + uses: lukka/get-cmake@5979409e62bdf841487c5fb3c053149de97a86d3 # v3.31.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - - name: Build + - name: Build with libc++ + run: cmake --build build --target ci_test_clang_libcxx_cxx${{ matrix.standard }} + if: ${{ matrix.stdlib == 'libcxx' }} + - name: Build with libstdc++ run: cmake --build build --target ci_test_clang_cxx${{ matrix.standard }} + if: ${{ matrix.stdlib == 'libstdcxx' }} ci_cuda_example: runs-on: ubuntu-latest container: ghcr.io/nlohmann/json-ci:v2.4.0 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -217,7 +251,7 @@ jobs: runs-on: ubuntu-latest container: ghcr.io/nlohmann/json-ci:v2.2.0 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build @@ -225,23 +259,18 @@ jobs: . /opt/intel/oneapi/setvars.sh cmake --build build --target ci_icpc - ci_reuse_compliance: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - - name: Install REUSE tool - run: python -m pip install reuse - - name: Run REUSE lint - run: reuse lint - ci_test_documentation: runs-on: ubuntu-latest strategy: matrix: - target: [ci_test_examples, ci_test_api_documentation] + target: [ci_test_examples, ci_test_build_documentation] steps: - - uses: actions/checkout@v3 + - name: Harden Runner + uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + with: + egress-policy: audit + + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 7ddd4be2..4e21d995 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -24,9 +24,9 @@ jobs: architecture: [x64, x86] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up MinGW - uses: egor-tensin/setup-mingw@v2 + uses: egor-tensin/setup-mingw@84c781b557efd538dec66bde06988d81cd3138cf # v2.2.0 with: platform: ${{ matrix.architecture }} version: 12.2.0 # https://github.com/egor-tensin/setup-mingw/issues/14 @@ -45,7 +45,7 @@ jobs: architecture: [Win32, x64] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX" if: matrix.build_type == 'Release' @@ -61,7 +61,7 @@ jobs: runs-on: windows-2019 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -G "Visual Studio 16 2019" -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX" - name: Build @@ -77,7 +77,7 @@ jobs: architecture: [Win32, x64] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -G "Visual Studio 17 2022" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX" if: matrix.build_type == 'Release' @@ -93,7 +93,7 @@ jobs: runs-on: windows-2022 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -G "Visual Studio 17 2022" -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX" - name: Build @@ -108,7 +108,7 @@ jobs: version: [11, 12, 13, 14, 15] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install Clang run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}.0.0/LLVM-${{ matrix.version }}.0.0-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM" - name: Run CMake @@ -125,7 +125,7 @@ jobs: architecture: [Win32, x64] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Run CMake run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -T ClangCL -DJSON_BuildTests=On - name: Build diff --git a/.gitignore b/.gitignore index bfd52b4c..e3339eac 100644 --- a/.gitignore +++ b/.gitignore @@ -41,4 +41,6 @@ /serve_header.yml # Swift Package Manager build directory -/.build \ No newline at end of file +/.build + +/tools/astyle/venv/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..f517e8ae --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +repos: +- repo: https://github.com/gitleaks/gitleaks + rev: v8.16.3 + hooks: + - id: gitleaks +- repo: https://github.com/pocc/pre-commit-hooks + rev: v1.3.5 + hooks: + - id: cpplint +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: end-of-file-fixer + - id: trailing-whitespace +- repo: https://github.com/pylint-dev/pylint + rev: v2.17.2 + hooks: + - id: pylint diff --git a/.reuse/dep5 b/.reuse/dep5 index 315cae92..96080238 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -4,9 +4,13 @@ Upstream-Contact: Niels Lohmann Source: https://github.com/nlohmann/json Files: * -Copyright: 2013-2022 Niels Lohmann +Copyright: 2013-2024 Niels Lohmann License: MIT +Files: include/nlohmann/thirdparty/hedley.hpp +Copyright: 2016-2021 Evan Nemerson +License: CC0 + Files: tests/thirdparty/doctest/* Copyright: 2016-2021 Viktor Kirilov License: MIT @@ -16,7 +20,7 @@ Copyright: 2015-2017 Niels Lohmann License: MIT Files: tests/thirdparty/Fuzzer/* -Copyright: 2003-2022, LLVM Project. +Copyright: 2003-2022 LLVM Project. License: Apache-2.0 Files: tests/thirdparty/imapdl/* diff --git a/BUILD.bazel b/BUILD.bazel index 15d84f16..354460d2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -49,5 +49,4 @@ cc_library( ], includes = ["include"], visibility = ["//visibility:public"], - alwayslink = True, ) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a49dc47..da5799cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,8 @@ endif() option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ${JSON_BuildTests_INIT}) option(JSON_CI "Enable CI build targets." OFF) option(JSON_Diagnostics "Use extended diagnostic messages." OFF) -option(JSON_GlobalUDLs "Place use-defined string literals in the global namespace." ON) +option(JSON_Diagnostic_Positions "Enable diagnostic positions." OFF) +option(JSON_GlobalUDLs "Place user-defined string literals in the global namespace." ON) option(JSON_ImplicitConversions "Enable implicit conversions." ON) option(JSON_DisableEnumSerialization "Disable default integer enum serialization." OFF) option(JSON_LegacyDiscardedValueComparison "Enable legacy discarded value comparison." OFF) @@ -57,7 +58,11 @@ endif () ## include(GNUInstallDirs) -set(NLOHMANN_JSON_TARGET_NAME ${PROJECT_NAME}) +if (NOT DEFINED NLOHMANN_JSON_TARGET_NAME) + # Allow overriding the target name when using FetchContent / add_subdirectory. + set(NLOHMANN_JSON_TARGET_NAME ${PROJECT_NAME}) +endif() + set(NLOHMANN_JSON_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}" CACHE INTERNAL "") set(NLOHMANN_JSON_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") set(NLOHMANN_JSON_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") @@ -77,19 +82,27 @@ else() endif() if (NOT JSON_ImplicitConversions) - message(STATUS "Implicit conversions are disabled") + message(STATUS "Implicit conversions are disabled (JSON_USE_IMPLICIT_CONVERSIONS=0)") endif() if (JSON_DisableEnumSerialization) - message(STATUS "Enum integer serialization is disabled") + message(STATUS "Enum integer serialization is disabled (JSON_DISABLE_ENUM_SERIALIZATION=0)") endif() if (JSON_LegacyDiscardedValueComparison) - message(STATUS "Legacy discarded value comparison enabled") + message(STATUS "Legacy discarded value comparison enabled (JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON=1)") endif() if (JSON_Diagnostics) - message(STATUS "Diagnostics enabled") + message(STATUS "Diagnostics enabled (JSON_DIAGNOSTICS=1)") +endif() + +if (JSON_Diagnostic_Positions) + message(STATUS "Diagnostic positions enabled") +endif() + +if (NOT JSON_GlobalUDLs) + message(STATUS "User-defined string literals are not put in the global namespace (JSON_USE_GLOBAL_UDLS=0)") endif() if (JSON_SystemInclude) @@ -115,6 +128,7 @@ target_compile_definitions( $<$>:JSON_USE_IMPLICIT_CONVERSIONS=0> $<$:JSON_DISABLE_ENUM_SERIALIZATION=1> $<$:JSON_DIAGNOSTICS=1> + $<$:JSON_DIAGNOSTIC_POSITIONS=1> $<$:JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON=1> ) @@ -141,6 +155,7 @@ endif() CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" + @ONLY ) ## @@ -206,4 +221,5 @@ if(JSON_Install) FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" DESTINATION ${NLOHMANN_JSON_PKGCONFIG_INSTALL_DIR} ) + include(CPack) endif() diff --git a/LICENSE.MIT b/LICENSE.MIT index 1c1f7a69..ee11a231 100644 --- a/LICENSE.MIT +++ b/LICENSE.MIT @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2013-2022 Niels Lohmann +Copyright (c) 2013-2024 Niels Lohmann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index a1b4e732..6ce306f5 100644 --- a/Makefile +++ b/Makefile @@ -142,29 +142,16 @@ pvs_studio: # Code format and source amalgamation ########################################################################## +ASTYLE=tools/astyle/venv/bin/astyle + +install_astyle: + @test -d tools/astyle/venv || python3 -mvenv tools/astyle/venv ; tools/astyle/venv/bin/pip3 install --quiet --upgrade pip + @test -f $(ASTYLE) || tools/astyle/venv/bin/pip3 install --quiet -r tools/astyle/requirements.txt + @$(ASTYLE) --version + # call the Artistic Style pretty printer on all source files -pretty: - astyle \ - --style=allman \ - --indent=spaces=4 \ - --indent-modifiers \ - --indent-switches \ - --indent-preproc-block \ - --indent-preproc-define \ - --indent-col1-comments \ - --pad-oper \ - --pad-header \ - --align-pointer=type \ - --align-reference=type \ - --add-braces \ - --squeeze-lines=2 \ - --convert-tabs \ - --close-templates \ - --lineend=linux \ - --preserve-date \ - --suffix=none \ - --formatted \ - $(SRCS) $(TESTS_SRCS) $(AMALGAMATED_FILE) $(AMALGAMATED_FWD_FILE) docs/examples/*.cpp +pretty: install_astyle + $(ASTYLE) --project=tools/astyle/.astylerc $(SRCS) $(TESTS_SRCS) $(AMALGAMATED_FILE) $(AMALGAMATED_FWD_FILE) docs/examples/*.cpp # call the Clang-Format on all source files pretty_format: @@ -280,6 +267,6 @@ serve_header: ########################################################################## reuse: - pipx run reuse addheader --recursive single_include include -tjson --license MIT --copyright "Niels Lohmann " --year "2013-2022" - pipx run reuse addheader $(TESTS_SRCS) --style=c -tjson_support --license MIT --copyright "Niels Lohmann " --year "2013-2022" + pipx run reuse annotate --recursive single_include include -tjson --license MIT --copyright "Niels Lohmann " --year "2013-2024" --merge-copyrights + pipx run reuse annotate $(TESTS_SRCS) -tjson_support --license MIT --copyright "Niels Lohmann " --year "2013-2024" --merge-copyrights pipx run reuse lint diff --git a/README.md b/README.md index 91090270..12ce676a 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ [![GitHub Issues](https://img.shields.io/github/issues/nlohmann/json.svg)](https://github.com/nlohmann/json/issues) [![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/nlohmann/json.svg)](https://isitmaintained.com/project/nlohmann/json "Average time to resolve an issue") [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/289/badge)](https://bestpractices.coreinfrastructure.org/projects/289) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/nlohmann/json/badge)](https://scorecard.dev/viewer/?uri=github.com/nlohmann/json) [![GitHub Sponsors](https://img.shields.io/badge/GitHub-Sponsors-ff69b4)](https://github.com/sponsors/nlohmann) [![REUSE status](https://api.reuse.software/badge/github.com/nlohmann/json)](https://api.reuse.software/info/github.com/nlohmann/json) [![Discord](https://img.shields.io/discord/1003743314341793913)](https://discord.gg/6mrGXKvX7y) @@ -39,6 +40,7 @@ - [Conversions to/from arbitrary types](#arbitrary-types-conversions) - [Specializing enum conversion](#specializing-enum-conversion) - [Binary formats (BSON, CBOR, MessagePack, UBJSON, and BJData)](#binary-formats-bson-cbor-messagepack-ubjson-and-bjdata) +- [Customers](#customers) - [Supported compilers](#supported-compilers) - [Integration](#integration) - [CMake](#cmake) @@ -52,6 +54,7 @@ - [Notes](#notes) - [Execute unit tests](#execute-unit-tests) + ## Design goals There are myriads of [JSON](https://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals: @@ -75,9 +78,10 @@ See the [contribution guidelines](https://github.com/nlohmann/json/blob/master/. You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nlohmann). -### :office: Corporate Sponsor +### :raising_hand: Priority Sponsor -[![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Codacy-logo-black.svg/320px-Codacy-logo-black.svg.png)](https://github.com/codacy/About) +- [Martti Laine](https://github.com/codeclown) +- [Paul Harrington](https://github.com/phrrngtn) ### :label: Named Sponsors @@ -90,6 +94,7 @@ You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nl Thanks everyone! + ## Support :question: If you have a **question**, please check if it is already answered in the [**FAQ**](https://json.nlohmann.me/home/faq/) or the [**Q&A**](https://github.com/nlohmann/json/discussions/categories/q-a) section. If not, please [**ask a new question**](https://github.com/nlohmann/json/discussions/new) there. @@ -102,6 +107,7 @@ Thanks everyone! There is also a [**docset**](https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets/JSON_for_Modern_C%2B%2B) for the documentation browsers [Dash](https://kapeli.com/dash), [Velocity](https://velocity.silverlakesoftware.com), and [Zeal](https://zealdocs.org) that contains the full [documentation](https://json.nlohmann.me) as offline resource. + ## Examples Here are some examples to give you an idea how to use the class. @@ -385,7 +391,7 @@ struct MyIterator { using iterator_category = std::input_iterator_tag; MyIterator& operator++() { - MyContainer.advance(); + target->advance(); return *this; } @@ -394,7 +400,7 @@ struct MyIterator { } reference operator*() const { - return target.get_current(); + return target->get_current(); } MyContainer* target = nullptr; @@ -1108,14 +1114,19 @@ binary.set_subtype(0x10); auto cbor = json::to_msgpack(j); // 0xD5 (fixext2), 0x10, 0xCA, 0xFE ``` +## Customers + +The library is used in multiple projects, applications, operating systems, etc. The list below is not exhaustive, but the result of an internet search. If you know further customers of the library, please let me know, see [contact](#contact). + +[![](docs/mkdocs/docs/images/customers.png)](https://json.nlohmann.me/home/customers/) ## Supported compilers -Though it's 2023 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work: +Though it's 2024 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work: -- GCC 4.8 - 12.0 (and possibly later) -- Clang 3.4 - 15.0 (and possibly later) -- Apple Clang 9.1 - 13.1 (and possibly later) +- GCC 4.8 - 14.2 (and possibly later) +- Clang 3.4 - 20.0 (and possibly later) +- Apple Clang 9.1 - 16.1 (and possibly later) - Intel C++ Compiler 17.0.2 (and possibly later) - Nvidia CUDA Compiler 11.0.221 (and possibly later) - Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later) @@ -1146,29 +1157,29 @@ The following compilers are currently used in continuous integration at [AppVeyo | Compiler | Operating System | CI Provider | |--------------------------------------------------------------------------------------------------------|--------------------|----------------| -| Apple Clang 11.0.3 (clang-1103.0.32.62); Xcode 11.7 | macOS 11.7.1 | GitHub Actions | -| Apple Clang 12.0.0 (clang-1200.0.32.29); Xcode 12.4 | macOS 11.7.1 | GitHub Actions | -| Apple Clang 12.0.5 (clang-1205.0.22.11); Xcode 12.5.1 | macOS 11.7.1 | GitHub Actions | -| Apple Clang 13.0.0 (clang-1300.0.29.3); Xcode 13.0 | macOS 11.7.1 | GitHub Actions | -| Apple Clang 13.0.0 (clang-1300.0.29.3); Xcode 13.1 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 13.0.0 (clang-1300.0.29.30); Xcode 13.2.1 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 13.1.6 (clang-1316.0.21.2.3); Xcode 13.3.1 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 13.1.6 (clang-1316.0.21.2.5); Xcode 13.4.1 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 14.0.0 (clang-1400.0.29.102); Xcode 14.0 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 14.0.0 (clang-1400.0.29.102); Xcode 14.0.1 | macOS 12.6.1 | GitHub Actions | -| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.1 | macOS 12.6.1 | GitHub Actions | -| Clang 3.5.2 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 3.6.2 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 3.7.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 3.8.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 3.9.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 4.0.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 5.0.2 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 6.0.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 7.0.1 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 8.0.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 9.0.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| Clang 10.0.0 | Ubuntu 20.04.3 LTS | GitHub Actions | +| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.1 | macOS 13.7 | GitHub Actions | +| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.2 | macOS 13.7 | GitHub Actions | +| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3 | macOS 13.7 | GitHub Actions | +| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3.1 | macOS 13.7.1 | GitHub Actions | +| Apple Clang 15.0.0 (clang-1500.0.40.1); Xcode 15.0.1 | macOS 13.7 | GitHub Actions | +| Apple Clang 15.0.0 (clang-1500.1.0.2.5); Xcode 15.1 | macOS 13.7 | GitHub Actions | +| Apple Clang 15.0.0 (clang-1500.1.0.2.5); Xcode 15.2 | macOS 13.7 | GitHub Actions | +| Apple Clang 15.0.0 (clang-1500.3.9.4); Xcode 15.3 | macOS 14.7 | GitHub Actions | +| Apple Clang 15.0.0 (clang-1500.3.9.4); Xcode 15.4 | macOS 14.7 | GitHub Actions | +| Apple Clang 16.0.0 (clang-1600.0.26.3); Xcode 16.0 | macOS 15.0.1 | GitHub Actions | +| Apple Clang 16.0.0 (clang-1600.0.26.4); Xcode 16.1 | macOS 15.0.1 | GitHub Actions | +| Clang 3.5.2 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 3.6.2 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 3.7.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 3.8.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 3.9.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 4.0.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 5.0.2 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 6.0.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 7.0.1 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 8.0.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 9.0.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| Clang 10.0.0 | Ubuntu 22.04.1 LTS | GitHub Actions | | Clang 10.0.0 with GNU-like command-line | Windows-10.0.17763 | GitHub Actions | | Clang 11.0.0 with GNU-like command-line | Windows-10.0.17763 | GitHub Actions | | Clang 11.0.0 with MSVC-like command-line | Windows-10.0.17763 | GitHub Actions | @@ -1182,20 +1193,28 @@ The following compilers are currently used in continuous integration at [AppVeyo | Clang 15.0.0 with GNU-like command-line | Windows-10.0.17763 | GitHub Actions | | Clang 15.0.4 | Ubuntu 20.04.3 LTS | GitHub Actions | | Clang 16.0.0 (16.0.0-++20221031071727+500876226c60-1~exp1~20221031071831.439) | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 4.8.5 (Ubuntu 4.8.5-4ubuntu2) | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 4.9.4 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 5.5.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 6.5.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 7.5.0 | Ubuntu 20.04.3 LTS | GitHub Actions | +| Clang 16.0.6 (++20231112084702+7cbf1a259152-1~exp1~20231112084757.16) | Ubuntu 20.04.1 LTS | GitHub Actions | +| Clang 17.0.6 (++20231208085813+6009708b4367-1~exp1~20231208085906.81) | Ubuntu 20.04.1 LTS | GitHub Actions | +| Clang 18.1.8 (++20240731024826+3b5b5c1ec4a3-1~exp1~20240731144843.145) | Ubuntu 20.04.1 LTS | GitHub Actions | +| Clang 19.1.2 (++20241016063422+7ba7d8e2f7b6-1~exp1~20241016063541.55) | Ubuntu 20.04.1 LTS | GitHub Actions | +| Clang 20.0.0 (++20241022113049+f1ade1f874db-1~exp1~20241022113104.1036) | Ubuntu 22.04.1 LTS | GitHub Actions | +| GCC 4.8.5 (Ubuntu 4.8.5-4ubuntu8) | Ubuntu 20.04.4 LTS | GitHub Actions | +| GCC 4.9.3 (Ubuntu 4.9.3-13ubuntu2) | Ubuntu 20.04.4 LTS | GitHub Actions | +| GCC 4.8.5 (Ubuntu 4.8.5-4ubuntu2) | Ubuntu 20.04.4 LTS | GitHub Actions | +| GCC 5.5.0 (Ubuntu 5.5.0-12ubuntu1) | Ubuntu 20.04.4 LTS | GitHub Actions | +| GCC 6.4.0 (Ubuntu 6.4.0-17ubuntu1) | Ubuntu 20.04.4 LTS | GitHub Actions | +| GCC 7.5.0 | Ubuntu 22.04.1 LTS | GitHub Actions | | GCC 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project) | Windows-10.0.17763 | GitHub Actions | | GCC 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project) | Windows-10.0.17763 | GitHub Actions | -| GCC 8.5.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 9.5.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 10.4.0 | Ubuntu 20.04.3 LTS | GitHub Actions | +| GCC 8.5.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| GCC 9.5.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| GCC 10.5.0 | Ubuntu 22.04.1 LTS | GitHub Actions | | GCC 11.1.0 | Ubuntu (aarch64) | Cirrus CI | -| GCC 11.3.0 | Ubuntu 20.04.3 LTS | GitHub Actions | -| GCC 12.2.0 | Ubuntu 20.04.3 LTS | GitHub Actions | +| GCC 11.5.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| GCC 12.4.0 | Ubuntu 22.04.1 LTS | GitHub Actions | | GCC 13.0.0 20220605 (experimental) | Ubuntu 20.04.3 LTS | GitHub Actions | +| GCC 13.3.0 | Ubuntu 22.04.1 LTS | GitHub Actions | +| GCC 14.2.0 | Ubuntu 22.04.1 LTS | GitHub Actions | | Intel C++ Compiler 2021.5.0.20211109 | Ubuntu 20.04.3 LTS | GitHub Actions | | NVCC 11.0.221 | Ubuntu 20.04.3 LTS | GitHub Actions | | Visual Studio 14 2015 MSVC 19.0.24241.7 (Build Engine version 14.0.25420.1) | Windows-6.3.9600 | AppVeyor | @@ -1379,11 +1398,11 @@ json = dependency('nlohmann_json', required: true) ## License - +OSI approved license The class is licensed under the [MIT License](https://opensource.org/licenses/MIT): -Copyright © 2013-2022 [Niels Lohmann](https://nlohmann.me) +Copyright © 2013-2024 [Niels Lohmann](https://nlohmann.me) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: @@ -1393,13 +1412,19 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I * * * -The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2008-2009 [Björn Hoehrmann](https://bjoern.hoehrmann.de/) +- The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2008-2009 [Björn Hoehrmann](https://bjoern.hoehrmann.de/) +- The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2009 [Florian Loitsch](https://florian.loitsch.com/) +- The class contains a copy of [Hedley](https://nemequ.github.io/hedley/) from Evan Nemerson which is licensed as [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/). +- The class contains parts of [Google Abseil](https://github.com/abseil/abseil-cpp) which is licensed under the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0). -The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2009 [Florian Loitsch](https://florian.loitsch.com/) +REUSE Software -The class contains a copy of [Hedley](https://nemequ.github.io/hedley/) from Evan Nemerson which is licensed as [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/). +The library is compliant to version 3.3 of the [**REUSE specification**](https://reuse.software): -The class contains parts of [Google Abseil](https://github.com/abseil/abseil-cpp) which is licensed under the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0). +- Every source file contains an SPDX copyright header. +- The full text of all licenses used in the repository can be found in the `LICENSES` folder. +- File `.reuse/dep5` contains an overview of all files' copyrights and licenses. +- Run `pipx run reuse lint` to verify the project's REUSE compliance and `pipx run reuse spdx` to generate a SPDX SBOM. ## Contact @@ -1884,7 +1909,7 @@ json/tests/src/make_test_data_available.hpp:23: FATAL ERROR: REQUIRE( utils::che In case you have downloaded the library rather than checked out the code via Git, test `cmake_fetch_content_configure` will fail. Please execute `ctest -LE git_required` to skip these tests. See [issue #2189](https://github.com/nlohmann/json/issues/2189) for more information. -Some tests change the installed files and hence make the whole process not reproducible. Please execute `ctest -LE not_reproducible` to skip these tests. See [issue #2324](https://github.com/nlohmann/json/issues/2324) for more information. +Some tests change the installed files and hence make the whole process not reproducible. Please execute `ctest -LE not_reproducible` to skip these tests. See [issue #2324](https://github.com/nlohmann/json/issues/2324) for more information. Furthermore, assertions must be switched off to ensure reproducible builds (see [discussion 4494](https://github.com/nlohmann/json/discussions/4494)). Note you need to call `cmake -LE "not_reproducible|git_required"` to exclude both labels. See [issue #2596](https://github.com/nlohmann/json/issues/2596) for more information. diff --git a/cmake/ci.cmake b/cmake/ci.cmake index bbb2d4cb..1b163f1e 100644 --- a/cmake/ci.cmake +++ b/cmake/ci.cmake @@ -8,34 +8,24 @@ set(N 10) include(FindPython3) find_package(Python3 COMPONENTS Interpreter) -find_program(ASTYLE_TOOL NAMES astyle) -execute_process(COMMAND ${ASTYLE_TOOL} --version OUTPUT_VARIABLE ASTYLE_TOOL_VERSION ERROR_VARIABLE ASTYLE_TOOL_VERSION) -string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" ASTYLE_TOOL_VERSION "${ASTYLE_TOOL_VERSION}") -message(STATUS "🔖 Artistic Style ${ASTYLE_TOOL_VERSION} (${ASTYLE_TOOL})") - -find_program(CLANG_TOOL NAMES clang++-HEAD clang++ clang++-17 clang++-16 clang++-15 clang++-14 clang++-13 clang++-12 clang++-11 clang++) +find_program(CLANG_TOOL NAMES clang++-HEAD clang++ clang++-20 clang++-19 clang++-18 clang++-17 clang++-16 clang++-15 clang++-14 clang++-13 clang++-12 clang++-11 clang++) execute_process(COMMAND ${CLANG_TOOL} --version OUTPUT_VARIABLE CLANG_TOOL_VERSION ERROR_VARIABLE CLANG_TOOL_VERSION) string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TOOL_VERSION "${CLANG_TOOL_VERSION}") message(STATUS "🔖 Clang ${CLANG_TOOL_VERSION} (${CLANG_TOOL})") -find_program(CLANG_TIDY_TOOL NAMES clang-tidy-17 clang-tidy-16 clang-tidy-15 clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11 clang-tidy) +find_program(CLANG_TIDY_TOOL NAMES clang-tidy-20 clang-tidy-19 clang-tidy-18 clang-tidy-17 clang-tidy-16 clang-tidy-15 clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11 clang-tidy) execute_process(COMMAND ${CLANG_TIDY_TOOL} --version OUTPUT_VARIABLE CLANG_TIDY_TOOL_VERSION ERROR_VARIABLE CLANG_TIDY_TOOL_VERSION) string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TIDY_TOOL_VERSION "${CLANG_TIDY_TOOL_VERSION}") message(STATUS "🔖 Clang-Tidy ${CLANG_TIDY_TOOL_VERSION} (${CLANG_TIDY_TOOL})") message(STATUS "🔖 CMake ${CMAKE_VERSION} (${CMAKE_COMMAND})") -find_program(CPPCHECK_TOOL NAMES cppcheck) -execute_process(COMMAND ${CPPCHECK_TOOL} --version OUTPUT_VARIABLE CPPCHECK_TOOL_VERSION ERROR_VARIABLE CPPCHECK_TOOL_VERSION) -string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CPPCHECK_TOOL_VERSION "${CPPCHECK_TOOL_VERSION}") -message(STATUS "🔖 Cppcheck ${CPPCHECK_TOOL_VERSION} (${CPPCHECK_TOOL})") - -find_program(GCC_TOOL NAMES g++-latest g++-HEAD g++-13 g++-12 g++-11 g++-10) +find_program(GCC_TOOL NAMES g++-latest g++-HEAD g++ g++-15 g++-14 g++-13 g++-12 g++-11 g++-10) execute_process(COMMAND ${GCC_TOOL} --version OUTPUT_VARIABLE GCC_TOOL_VERSION ERROR_VARIABLE GCC_TOOL_VERSION) string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCC_TOOL_VERSION "${GCC_TOOL_VERSION}") message(STATUS "🔖 GCC ${GCC_TOOL_VERSION} (${GCC_TOOL})") -find_program(GCOV_TOOL NAMES gcov-HEAD gcov-11 gcov-10 gcov) +find_program(GCOV_TOOL NAMES gcov-HEAD gcov-15 gcov-14 gcov-13 gcov-12 gcov-11 gcov-10 gcov) execute_process(COMMAND ${GCOV_TOOL} --version OUTPUT_VARIABLE GCOV_TOOL_VERSION ERROR_VARIABLE GCOV_TOOL_VERSION) string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCOV_TOOL_VERSION "${GCOV_TOOL_VERSION}") message(STATUS "🔖 GCOV ${GCOV_TOOL_VERSION} (${GCOV_TOOL})") @@ -96,8 +86,6 @@ file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/include/nlohmann/*.hpp) # -Wno-padded We do not care about padding warnings. # -Wno-covered-switch-default All switches list all cases and a default case. # -Wno-unsafe-buffer-usage Otherwise Doctest would not compile. -# -Wno-weak-vtables The library is header-only. -# -Wreserved-identifier See https://github.com/onqtam/doctest/issues/536. set(CLANG_CXXFLAGS -Werror @@ -109,16 +97,15 @@ set(CLANG_CXXFLAGS -Wno-padded -Wno-covered-switch-default -Wno-unsafe-buffer-usage - -Wno-weak-vtables - -Wno-reserved-identifier ) -# Warning flags determined for GCC 13.0 (experimental) with https://github.com/nlohmann/gcc_flags: +# Warning flags determined for GCC 14.2.0 with https://github.com/nlohmann/gcc_flags: # Ignored GCC warnings: # -Wno-abi-tag We do not care about ABI tags. # -Wno-aggregate-return The library uses aggregate returns. # -Wno-long-long The library uses the long long type to interface with system functions. # -Wno-namespaces The library uses namespaces. +# -Wno-nrvo Doctest triggers this warning. # -Wno-padded We do not care about padding warnings. # -Wno-system-headers We do not care about warnings in system headers. # -Wno-templates The library uses templates. @@ -137,28 +124,49 @@ set(GCC_CXXFLAGS -Waggressive-loop-optimizations -Waligned-new=all -Wall + -Walloc-size -Walloc-zero -Walloca + -Wanalyzer-allocation-size + -Wanalyzer-deref-before-check -Wanalyzer-double-fclose -Wanalyzer-double-free -Wanalyzer-exposure-through-output-file + -Wanalyzer-exposure-through-uninit-copy + -Wanalyzer-fd-access-mode-mismatch + -Wanalyzer-fd-double-close + -Wanalyzer-fd-leak + -Wanalyzer-fd-phase-mismatch + -Wanalyzer-fd-type-mismatch + -Wanalyzer-fd-use-after-close + -Wanalyzer-fd-use-without-check -Wanalyzer-file-leak -Wanalyzer-free-of-non-heap + -Wanalyzer-imprecise-fp-arithmetic + -Wanalyzer-infinite-loop + -Wanalyzer-infinite-recursion + -Wanalyzer-jump-through-null -Wanalyzer-malloc-leak -Wanalyzer-mismatching-deallocation -Wanalyzer-null-argument -Wanalyzer-null-dereference + -Wanalyzer-out-of-bounds + -Wanalyzer-overlapping-buffers -Wanalyzer-possible-null-argument -Wanalyzer-possible-null-dereference + -Wanalyzer-putenv-of-auto-var -Wanalyzer-shift-count-negative -Wanalyzer-shift-count-overflow -Wanalyzer-stale-setjmp-buffer + -Wanalyzer-symbol-too-complex -Wanalyzer-tainted-allocation-size -Wanalyzer-tainted-array-index + -Wanalyzer-tainted-assertion -Wanalyzer-tainted-divisor -Wanalyzer-tainted-offset -Wanalyzer-tainted-size -Wanalyzer-too-complex + -Wanalyzer-undefined-behavior-strtok -Wanalyzer-unsafe-call-within-signal-handler -Wanalyzer-use-after-free -Wanalyzer-use-of-pointer-in-stale-stack-frame @@ -191,13 +199,17 @@ set(GCC_CXXFLAGS -Wc++20-compat -Wc++20-extensions -Wc++23-extensions + -Wc++26-extensions -Wc++2a-compat + -Wcalloc-transposed-args -Wcannot-profile -Wcast-align -Wcast-align=strict -Wcast-function-type -Wcast-qual + -Wcast-user-defined -Wcatch-value=3 + -Wchanges-meaning -Wchar-subscripts -Wclass-conversion -Wclass-memaccess @@ -205,16 +217,19 @@ set(GCC_CXXFLAGS -Wcomma-subscript -Wcomment -Wcomments + -Wcomplain-wrong-lang -Wconditionally-supported -Wconversion -Wconversion-null -Wcoverage-invalid-line-number -Wcoverage-mismatch + -Wcoverage-too-many-conditions -Wcpp -Wctad-maybe-unsupported -Wctor-dtor-privacy -Wdangling-else -Wdangling-pointer=2 + -Wdangling-reference -Wdate-time -Wdelete-incomplete -Wdelete-non-virtual-dtor @@ -230,6 +245,7 @@ set(GCC_CXXFLAGS -Wduplicated-branches -Wduplicated-cond -Weffc++ + -Welaborated-enum-base -Wempty-body -Wendif-labels -Wenum-compare @@ -238,8 +254,15 @@ set(GCC_CXXFLAGS -Wexpansion-to-defined -Wextra -Wextra-semi + -Wflex-array-member-not-at-end -Wfloat-conversion -Wfloat-equal + -Wformat -Wformat-contains-nul + -Wformat -Wformat-extra-args + -Wformat -Wformat-nonliteral + -Wformat -Wformat-security + -Wformat -Wformat-y2k + -Wformat -Wformat-zero-length -Wformat-diag -Wformat-overflow=2 -Wformat-signedness @@ -247,6 +270,8 @@ set(GCC_CXXFLAGS -Wformat=2 -Wframe-address -Wfree-nonheap-object + -Wglobal-module + -Whardened -Whsa -Wif-not-aligned -Wignored-attributes @@ -261,10 +286,12 @@ set(GCC_CXXFLAGS -Wint-in-bool-context -Wint-to-pointer-cast -Winterference-size + -Winvalid-constexpr -Winvalid-imported-macros -Winvalid-memory-model -Winvalid-offsetof -Winvalid-pch + -Winvalid-utf8 -Wliteral-suffix -Wlogical-not-parentheses -Wlogical-op @@ -298,14 +325,16 @@ set(GCC_CXXFLAGS -Wnonnull -Wnonnull-compare -Wnormalized=nfkc + -Wno-nrvo -Wnull-dereference -Wodr -Wold-style-cast -Wopenacc-parallelism + -Wopenmp -Wopenmp-simd -Woverflow -Woverlength-strings - -Woverloaded-virtual + -Woverloaded-virtual=2 -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned @@ -330,6 +359,7 @@ set(GCC_CXXFLAGS -Wreturn-local-addr -Wreturn-type -Wscalar-storage-order + -Wself-move -Wsequence-point -Wshadow=compatible-local -Wshadow=global @@ -349,7 +379,7 @@ set(GCC_CXXFLAGS -Wstack-protector -Wstrict-aliasing=3 -Wstrict-null-sentinel - -Wno-strict-overflow + -Wstrict-overflow -Wstring-compare -Wstringop-overflow=4 -Wstringop-overread @@ -361,6 +391,7 @@ set(GCC_CXXFLAGS -Wsuggest-attribute=malloc -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure + -Wsuggest-attribute=returns_nonnull -Wsuggest-final-methods -Wsuggest-final-types -Wsuggest-override @@ -382,6 +413,7 @@ set(GCC_CXXFLAGS -Wtsan -Wtype-limits -Wundef + -Wunicode -Wuninitialized -Wunknown-pragmas -Wunreachable-code @@ -411,6 +443,7 @@ set(GCC_CXXFLAGS -Wvolatile -Wvolatile-register-var -Wwrite-strings + -Wxor-used-as-pow -Wzero-as-null-pointer-constant -Wzero-length-bounds ) @@ -461,6 +494,19 @@ foreach(CXX_STANDARD 11 14 17 20 23) COMMAND cd ${PROJECT_BINARY_DIR}/build_clang_cxx${CXX_STANDARD} && ${CMAKE_CTEST_COMMAND} --parallel ${N} --output-on-failure COMMENT "Compile and test with Clang for C++${CXX_STANDARD}" ) + + add_custom_target(ci_test_clang_libcxx_cxx${CXX_STANDARD} + COMMAND CXX=${CLANG_TOOL} CXXFLAGS="${CLANG_CXXFLAGS}" ${CMAKE_COMMAND} + -DCMAKE_BUILD_TYPE=Debug -GNinja + -DJSON_BuildTests=ON -DJSON_FastTests=ON + -DJSON_TestStandards=${CXX_STANDARD} + -DCMAKE_CXX_FLAGS="-stdlib=libc++" + -DCMAKE_EXE_LINKER_FLAGS="-lc++abi" + -S${PROJECT_SOURCE_DIR} -B${PROJECT_BINARY_DIR}/build_clang_cxx${CXX_STANDARD} + COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR}/build_clang_cxx${CXX_STANDARD} + COMMAND cd ${PROJECT_BINARY_DIR}/build_clang_cxx${CXX_STANDARD} && ${CMAKE_CTEST_COMMAND} --parallel ${N} --output-on-failure + COMMENT "Compile and test with Clang for C++${CXX_STANDARD} (libc++)" + ) endforeach() ############################################################################### @@ -505,6 +551,20 @@ add_custom_target(ci_test_diagnostics COMMENT "Compile and test with improved diagnostics enabled" ) +############################################################################### +# Enable diagnostic positions support. +############################################################################### + +add_custom_target(ci_test_diagnostic_positions + COMMAND ${CMAKE_COMMAND} + -DCMAKE_BUILD_TYPE=Debug -GNinja + -DJSON_BuildTests=ON -DJSON_Diagnostic_Positions=ON + -S${PROJECT_SOURCE_DIR} -B${PROJECT_BINARY_DIR}/build_diagnostic_positions + COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR}/build_diagnostic_positions + COMMAND cd ${PROJECT_BINARY_DIR}/build_diagnostic_positions && ${CMAKE_CTEST_COMMAND} --parallel ${N} --output-on-failure + COMMENT "Compile and test with diagnostic positions enabled" +) + ############################################################################### # Enable legacy discarded value comparison. ############################################################################### @@ -581,8 +641,6 @@ add_custom_target(ci_test_clang_sanitizer # Check if header is amalgamated and sources are properly indented. ############################################################################### -set(ASTYLE_FLAGS --style=allman --indent=spaces=4 --indent-modifiers --indent-switches --indent-preproc-block --indent-preproc-define --indent-col1-comments --pad-oper --pad-header --align-pointer=type --align-reference=type --add-brackets --convert-tabs --close-templates --lineend=linux --preserve-date --formatted) - file(GLOB_RECURSE INDENT_FILES ${PROJECT_SOURCE_DIR}/include/nlohmann/*.hpp ${PROJECT_SOURCE_DIR}/tests/src/*.cpp @@ -598,14 +656,18 @@ add_custom_target(ci_test_amalgamation COMMAND cp ${include_dir}/json.hpp ${include_dir}/json.hpp~ COMMAND cp ${include_dir}/json_fwd.hpp ${include_dir}/json_fwd.hpp~ + COMMAND ${Python3_EXECUTABLE} -mvenv venv_astyle + COMMAND venv_astyle/bin/pip3 --quiet install -r ${CMAKE_SOURCE_DIR}/tools/astyle/requirements.txt + COMMAND venv_astyle/bin/astyle --version + COMMAND ${Python3_EXECUTABLE} ${tool_dir}/amalgamate.py -c ${tool_dir}/config_json.json -s . COMMAND ${Python3_EXECUTABLE} ${tool_dir}/amalgamate.py -c ${tool_dir}/config_json_fwd.json -s . - COMMAND ${ASTYLE_TOOL} ${ASTYLE_FLAGS} --suffix=none --quiet ${include_dir}/json.hpp ${include_dir}/json_fwd.hpp + COMMAND venv_astyle/bin/astyle --project=tools/astyle/.astylerc --suffix=none ${include_dir}/json.hpp ${include_dir}/json_fwd.hpp COMMAND diff ${include_dir}/json.hpp~ ${include_dir}/json.hpp COMMAND diff ${include_dir}/json_fwd.hpp~ ${include_dir}/json_fwd.hpp - COMMAND ${ASTYLE_TOOL} ${ASTYLE_FLAGS} ${INDENT_FILES} + COMMAND venv_astyle/bin/astyle --project=tools/astyle/.astylerc --suffix=orig ${INDENT_FILES} COMMAND for FILE in `find . -name '*.orig'`\; do false \; done WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} @@ -660,7 +722,14 @@ add_custom_target(ci_clang_analyze ############################################################################### add_custom_target(ci_cppcheck - COMMAND ${CPPCHECK_TOOL} --enable=warning --suppress=missingReturn --inline-suppr --inconclusive --force --std=c++11 ${PROJECT_SOURCE_DIR}/single_include/nlohmann/json.hpp --error-exitcode=1 + COMMAND ${Python3_EXECUTABLE} -mvenv venv_cppcheck + COMMAND clang -dM -E -x c++ -std=c++11 ${CMAKE_SOURCE_DIR}/include/nlohmann/thirdparty/hedley/hedley.hpp > default_defines.hpp 2> /dev/null + COMMAND venv_cppcheck/bin/pip3 --quiet install -r ${CMAKE_SOURCE_DIR}/cmake/requirements/requirements-cppcheck.txt + COMMAND venv_cppcheck/bin/cppcheck --enable=warning --check-level=exhaustive --inline-suppr --inconclusive --force + --std=c++11 ${PROJECT_SOURCE_DIR}/include/nlohmann/json.hpp -I ${CMAKE_SOURCE_DIR}/include + --error-exitcode=1 --relative-paths=${PROJECT_SOURCE_DIR} -j 10 --include=default_defines.hpp + -UJSON_CATCH_USER -UJSON_TRY_USER -UJSON_ASSERT -UJSON_INTERNAL_CATCH -UJSON_THROW + -DJSON_HAS_CPP_11 -UJSON_HAS_CPP_14 -UJSON_HAS_CPP_17 -UJSON_HAS_CPP_20 -UJSON_HAS_THREE_WAY_COMPARISON COMMENT "Check code with Cppcheck" ) @@ -670,7 +739,7 @@ add_custom_target(ci_cppcheck add_custom_target(ci_cpplint COMMAND ${Python3_EXECUTABLE} -mvenv venv_cpplint - COMMAND venv_cpplint/bin/pip3 --quiet install cpplint + COMMAND venv_cpplint/bin/pip3 --quiet install -r ${CMAKE_SOURCE_DIR}/cmake/requirements/requirements-cpplint.txt COMMAND venv_cpplint/bin/cpplint --filter=-whitespace,-legal,-runtime/references,-runtime/explicit,-runtime/indentation_namespace,-readability/casting,-readability/nolint --quiet --recursive ${SRC_FILES} COMMENT "Check code with cpplint" WORKING_DIRECTORY ${PROJECT_BINARY_DIR} @@ -855,7 +924,7 @@ endfunction() ci_get_cmake(3.1.0 CMAKE_3_1_0_BINARY) ci_get_cmake(3.13.0 CMAKE_3_13_0_BINARY) -set(JSON_CMAKE_FLAGS_3_1_0 JSON_Diagnostics JSON_GlobalUDLs JSON_ImplicitConversions JSON_DisableEnumSerialization +set(JSON_CMAKE_FLAGS_3_1_0 JSON_Diagnostics JSON_Diagnostic_Positions JSON_GlobalUDLs JSON_ImplicitConversions JSON_DisableEnumSerialization JSON_LegacyDiscardedValueComparison JSON_Install JSON_MultipleHeaders JSON_SystemInclude JSON_Valgrind) set(JSON_CMAKE_FLAGS_3_13_0 JSON_BuildTests) @@ -900,7 +969,7 @@ add_custom_target(ci_cmake_flags # Use more installed compilers. ############################################################################### -foreach(COMPILER g++-4.8 g++-4.9 g++-5 g++-6 g++-7 g++-8 g++-9 g++-10 g++-11 clang++-3.5 clang++-3.6 clang++-3.7 clang++-3.8 clang++-3.9 clang++-4.0 clang++-5.0 clang++-6.0 clang++-7 clang++-8 clang++-9 clang++-10 clang++-11 clang++-12 clang++-13 clang++-14 clang++-15 clang++-16 clang++-17) +foreach(COMPILER g++-4.8 g++-4.9 g++-5 g++-6 g++-7 g++-8 g++-9 g++-10 g++-11 clang++-3.5 clang++-3.6 clang++-3.7 clang++-3.8 clang++-3.9 clang++-4.0 clang++-5.0 clang++-6.0 clang++-7 clang++-8 clang++-9 clang++-10 clang++-11 clang++-12 clang++-13 clang++-14 clang++-15 clang++-16 clang++-17 clang++-18 clang++-19 clang++-20) find_program(COMPILER_TOOL NAMES ${COMPILER}) if (COMPILER_TOOL) unset(ADDITIONAL_FLAGS) @@ -957,6 +1026,17 @@ add_custom_target(ci_icpc COMMENT "Compile and test with ICPC" ) +############################################################################### +# REUSE +############################################################################### + +add_custom_target(ci_reuse_compliance + COMMAND ${Python3_EXECUTABLE} -mvenv venv_reuse + COMMAND venv_reuse/bin/pip3 --quiet install -r ${PROJECT_SOURCE_DIR}/cmake/requirements/requirements-reuse.txt + COMMAND venv_reuse/bin/reuse --root ${PROJECT_SOURCE_DIR} lint + COMMENT "Check REUSE specification compliance" +) + ############################################################################### # test documentation ############################################################################### @@ -967,10 +1047,12 @@ add_custom_target(ci_test_examples COMMENT "Check that all examples compile and create the desired output" ) -add_custom_target(ci_test_api_documentation - COMMAND ${Python3_EXECUTABLE} scripts/check_structure.py +add_custom_target(ci_test_build_documentation + COMMAND ${Python3_EXECUTABLE} -mvenv venv + COMMAND venv/bin/pip3 --quiet install -r requirements.txt + COMMAND make build WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/docs/mkdocs - COMMENT "Lint the API documentation" + COMMENT "Build the documentation" ) ############################################################################### diff --git a/cmake/pkg-config.pc.in b/cmake/pkg-config.pc.in index d36317f0..21a91a3c 100644 --- a/cmake/pkg-config.pc.in +++ b/cmake/pkg-config.pc.in @@ -1,4 +1,7 @@ -Name: ${PROJECT_NAME} +prefix=@CMAKE_INSTALL_PREFIX@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ + +Name: @PROJECT_NAME@ Description: JSON for Modern C++ -Version: ${PROJECT_VERSION} -Cflags: -I${CMAKE_INSTALL_FULL_INCLUDEDIR} +Version: @PROJECT_VERSION@ +Cflags: -I${includedir} diff --git a/cmake/requirements/requirements-cppcheck.txt b/cmake/requirements/requirements-cppcheck.txt new file mode 100644 index 00000000..1881f5d0 --- /dev/null +++ b/cmake/requirements/requirements-cppcheck.txt @@ -0,0 +1 @@ +cppcheck==1.4.7 diff --git a/cmake/requirements/requirements-cpplint.txt b/cmake/requirements/requirements-cpplint.txt new file mode 100644 index 00000000..00318e43 --- /dev/null +++ b/cmake/requirements/requirements-cpplint.txt @@ -0,0 +1 @@ +cpplint==2.0.0 diff --git a/cmake/requirements/requirements-reuse.txt b/cmake/requirements/requirements-reuse.txt new file mode 100644 index 00000000..e7677662 --- /dev/null +++ b/cmake/requirements/requirements-reuse.txt @@ -0,0 +1 @@ +reuse==5.0.2 diff --git a/docs/examples/at__keytype_const.c++17.cpp b/docs/examples/at__keytype_const.c++17.cpp index b08cd17b..712d456e 100644 --- a/docs/examples/at__keytype_const.c++17.cpp +++ b/docs/examples/at__keytype_const.c++17.cpp @@ -36,7 +36,7 @@ int main() // try to read from a nonexisting key using string_view std::cout << object.at("the fast"sv) << '\n'; } - catch (const json::out_of_range) + catch (const json::out_of_range& e) { std::cout << "out of range" << '\n'; } diff --git a/docs/examples/diagnostic_positions.cpp b/docs/examples/diagnostic_positions.cpp new file mode 100644 index 00000000..259344cd --- /dev/null +++ b/docs/examples/diagnostic_positions.cpp @@ -0,0 +1,51 @@ +#include + +#define JSON_DIAGNOSTIC_POSITIONS 1 +#include + +using json = nlohmann::json; + +int main() +{ + std::string json_string = R"( + { + "address": { + "street": "Fake Street", + "housenumber": 1 + } + } + )"; + json j = json::parse(json_string); + + std::cout << "Root diagnostic positions: \n"; + std::cout << "\tstart_pos: " << j.start_pos() << '\n'; + std::cout << "\tend_pos:" << j.end_pos() << "\n"; + std::cout << "Original string: \n"; + std::cout << "{\n \"address\": {\n \"street\": \"Fake Street\",\n \"housenumber\": 1\n }\n }" << "\n"; + std::cout << "Parsed string: \n"; + std::cout << json_string.substr(j.start_pos(), j.end_pos() - j.start_pos()) << "\n\n"; + + std::cout << "address diagnostic positions: \n"; + std::cout << "\tstart_pos:" << j["address"].start_pos() << '\n'; + std::cout << "\tend_pos:" << j["address"].end_pos() << "\n\n"; + std::cout << "Original string: \n"; + std::cout << "{ \"street\": \"Fake Street\",\n \"housenumber\": 1\n }" << "\n"; + std::cout << "Parsed string: \n"; + std::cout << json_string.substr(j["address"].start_pos(), j["address"].end_pos() - j["address"].start_pos()) << "\n\n"; + + std::cout << "street diagnostic positions: \n"; + std::cout << "\tstart_pos:" << j["address"]["street"].start_pos() << '\n'; + std::cout << "\tend_pos:" << j["address"]["street"].end_pos() << "\n\n"; + std::cout << "Original string: \n"; + std::cout << "\"Fake Street\"" << "\n"; + std::cout << "Parsed string: \n"; + std::cout << json_string.substr(j["address"]["street"].start_pos(), j["address"]["street"].end_pos() - j["address"]["street"].start_pos()) << "\n\n"; + + std::cout << "housenumber diagnostic positions: \n"; + std::cout << "\tstart_pos:" << j["address"]["housenumber"].start_pos() << '\n'; + std::cout << "\tend_pos:" << j["address"]["housenumber"].end_pos() << "\n\n"; + std::cout << "Original string: \n"; + std::cout << "1" << "\n"; + std::cout << "Parsed string: \n"; + std::cout << json_string.substr(j["address"]["housenumber"].start_pos(), j["address"]["housenumber"].end_pos() - j["address"]["housenumber"].start_pos()) << "\n\n"; +} diff --git a/docs/examples/diagnostic_positions.output b/docs/examples/diagnostic_positions.output new file mode 100644 index 00000000..a6becc0e --- /dev/null +++ b/docs/examples/diagnostic_positions.output @@ -0,0 +1,50 @@ +Root diagnostic positions: + start_pos: 5 + end_pos:109 +Original string: +{ + "address": { + "street": "Fake Street", + "housenumber": 1 + } + } +Parsed string: +{ + "address": { + "street": "Fake Street", + "housenumber": 1 + } + } + +address diagnostic positions: + start_pos:26 + end_pos:103 + +Original string: +{ "street": "Fake Street", + "housenumber": 1 + } +Parsed string: +{ + "street": "Fake Street", + "housenumber": 1 + } + +street diagnostic positions: + start_pos:50 + end_pos:63 + +Original string: +"Fake Street" +Parsed string: +"Fake Street" + +housenumber diagnostic positions: + start_pos:92 + end_pos:93 + +Original string: +1 +Parsed string: +1 + diff --git a/docs/examples/json_base_class_t.cpp b/docs/examples/json_base_class_t.cpp index d993522a..3fb2d46a 100644 --- a/docs/examples/json_base_class_t.cpp +++ b/docs/examples/json_base_class_t.cpp @@ -79,8 +79,8 @@ int main() // visit and output j.visit( - [&](const json::json_pointer & p, - const json & j) + [&](const json::json_pointer & p, + const json & j) { std::cout << (p.empty() ? std::string{"/"} : p.to_string()) << " - metadata = " << j.metadata << " -> " << j.dump() << '\n'; diff --git a/docs/mkdocs/Makefile b/docs/mkdocs/Makefile index d3356b82..fa525a5f 100644 --- a/docs/mkdocs/Makefile +++ b/docs/mkdocs/Makefile @@ -35,3 +35,11 @@ install_venv: requirements.txt # uninstall the virtual environment uninstall_venv: clean rm -fr venv + +update_requirements: + rm -fr venv_small + python3 -mvenv venv_small + venv_small/bin/pip3 install pur + venv_small/bin/pur -r requirements.txt + rm -fr venv_small venv + make install_venv diff --git a/docs/mkdocs/docs/api/basic_json/accept.md b/docs/mkdocs/docs/api/basic_json/accept.md index 1c806e82..b12d6223 100644 --- a/docs/mkdocs/docs/api/basic_json/accept.md +++ b/docs/mkdocs/docs/api/basic_json/accept.md @@ -29,9 +29,9 @@ Unlike the [`parse`](parse.md) function, this function neither throws an excepti : A compatible input, for instance: - an `std::istream` object - - a `FILE` pointer (must not be null) + - a `FILE` pointer (throws if null) - a C-style array of characters - - a pointer to a null-terminated string of single byte characters + - a pointer to a null-terminated string of single byte characters (throws if null) - a `std::string` - an object `obj` for which `begin(obj)` and `end(obj)` produces a valid pair of iterators. @@ -64,18 +64,17 @@ Whether the input is valid JSON. Strong guarantee: if an exception is thrown, there are no changes in the JSON value. +## Exceptions + +Throws [`parse_error.101`](../../home/exceptions.md#jsonexceptionparse_error101) in case of an empty input like a null `FILE*` or `char*` pointer. + ## Complexity Linear in the length of the input. The parser is a predictive LL(1) parser. ## Notes -(1) A UTF-8 byte order mark is silently ignored. - -!!! danger "Runtime assertion" - - The precondition that a passed `#!cpp FILE` pointer must not be null is enforced with a - [runtime assertion](../../features/assertions.md). +A UTF-8 byte order mark is silently ignored. ## Examples @@ -102,6 +101,7 @@ Linear in the length of the input. The parser is a predictive LL(1) parser. - Added in version 3.0.0. - Ignoring comments via `ignore_comments` added in version 3.9.0. +- Changed [runtime assertion](../../features/assertions.md) in case of `FILE*` null pointers to exception in version 3.11.4. !!! warning "Deprecation" diff --git a/docs/mkdocs/docs/api/basic_json/emplace.md b/docs/mkdocs/docs/api/basic_json/emplace.md index 6cc2c98d..cf637d62 100644 --- a/docs/mkdocs/docs/api/basic_json/emplace.md +++ b/docs/mkdocs/docs/api/basic_json/emplace.md @@ -14,6 +14,11 @@ created from `args`. `Args` : compatible types to create a `basic_json` object +## Iterator invalidation + +For [`ordered_json`](../ordered_json.md), adding a value to an object can yield a reallocation, in which case all +iterators (including the `end()` iterator) and all references to the elements are invalidated. + ## Parameters `args` (in) diff --git a/docs/mkdocs/docs/api/basic_json/emplace_back.md b/docs/mkdocs/docs/api/basic_json/emplace_back.md index 597ad41e..21829c21 100644 --- a/docs/mkdocs/docs/api/basic_json/emplace_back.md +++ b/docs/mkdocs/docs/api/basic_json/emplace_back.md @@ -13,6 +13,12 @@ Creates a JSON value from the passed parameters `args` to the end of the JSON va `Args` : compatible types to create a `basic_json` object +## Iterator invalidation + +By adding an element to the end of the array, a reallocation can happen, in which case all iterators (including the +[`end()`](end.md) iterator) and all references to the elements are invalidated. Otherwise, only the [`end()`](end.md) +iterator is invalidated. + ## Parameters `args` (in) @@ -48,6 +54,11 @@ Amortized constant. --8<-- "examples/emplace_back.output" ``` +## See also + +- [operator+=](operator+=.md) add a value to an array/object +- [push_back](push_back.md) add a value to an array/object + ## Version history - Since version 2.0.8. diff --git a/docs/mkdocs/docs/api/basic_json/exception.md b/docs/mkdocs/docs/api/basic_json/exception.md index 794b7d1e..b592d62e 100644 --- a/docs/mkdocs/docs/api/basic_json/exception.md +++ b/docs/mkdocs/docs/api/basic_json/exception.md @@ -8,24 +8,36 @@ This class is an extension of [`std::exception`](https://en.cppreference.com/w/c member `id` for exception ids. It is used as the base class for all exceptions thrown by the `basic_json` class. This class can hence be used as "wildcard" to catch exceptions, see example below. -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception #FFFF00 { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error + + style json_exception fill:#CCCCFF ``` Subclasses: diff --git a/docs/mkdocs/docs/api/basic_json/get_ptr.md b/docs/mkdocs/docs/api/basic_json/get_ptr.md index 2441e115..7c000f1a 100644 --- a/docs/mkdocs/docs/api/basic_json/get_ptr.md +++ b/docs/mkdocs/docs/api/basic_json/get_ptr.md @@ -35,7 +35,37 @@ Constant. !!! danger "Undefined behavior" - Writing data to the pointee of the result yields an undefined state. + The pointer becomes invalid if the underlying JSON object changes. + + Consider the following example code where the pointer `ptr` changes after the array is resized. As a result, + reading or writing to `ptr` after the array change would be undefined behavior. The address of the first array + element changes, because the underlying `std::vector` is resized after adding a fifth element. + + ```cpp + #include + #include + + using json = nlohmann::json; + + int main() + { + json j = {1, 2, 3, 4}; + auto* ptr = j[0].get_ptr(); + std::cout << "value at " << ptr << " is " << *ptr << std::endl; + + j.push_back(5); + + ptr = j[0].get_ptr(); + std::cout << "value at " << ptr << " is " << *ptr << std::endl; + } + ``` + + Output: + + ``` + value at 0x6000012fc1c8 is 1 + value at 0x6000029fc088 is 1 + ``` ## Examples @@ -54,6 +84,10 @@ Constant. --8<-- "examples/get_ptr.output" ``` +## See also + +- [get_ref()](get_ref.md) get a reference value + ## Version history - Added in version 1.0.0. diff --git a/docs/mkdocs/docs/api/basic_json/get_ref.md b/docs/mkdocs/docs/api/basic_json/get_ref.md index b1219742..73b20b0e 100644 --- a/docs/mkdocs/docs/api/basic_json/get_ref.md +++ b/docs/mkdocs/docs/api/basic_json/get_ref.md @@ -40,7 +40,7 @@ Constant. !!! danger "Undefined behavior" - Writing data to the referee of the result yields an undefined state. + The reference becomes invalid if the underlying JSON object changes. ## Examples @@ -58,6 +58,10 @@ Constant. --8<-- "examples/get_ref.output" ``` +## See also + +- [get_ptr()](get_ptr.md) get a pointer value + ## Version history - Added in version 1.1.0. diff --git a/docs/mkdocs/docs/api/basic_json/index.md b/docs/mkdocs/docs/api/basic_json/index.md index 64867014..e90091b5 100644 --- a/docs/mkdocs/docs/api/basic_json/index.md +++ b/docs/mkdocs/docs/api/basic_json/index.md @@ -42,7 +42,15 @@ class basic_json; ## Iterator invalidation -Todo +All operations that add values to an **array** ([`push_back`](push_back.md) , [`operator+=`](operator+=.md), +[`emplace_back`](emplace_back.md), [`insert`](insert.md), and [`operator[]`](operator%5B%5D.md) for a non-existing +index) can yield a reallocation, in which case all iterators (including the [`end()`](end.md) iterator) and all +references to the elements are invalidated. + +For [`ordered_json`](../ordered_json.md), also all operations that add a value to an **object** +([`push_back`](push_back.md), [`operator+=`](operator+=.md), [`emplace`](emplace.md), [`insert`](insert.md), +[`update`](update.md), and [`operator[]`](operator%5B%5D.md) for a non-existing key) can yield a reallocation, in +which case all iterators (including the [`end()`](end.md) iterator) and all references to the elements are invalidated. ## Requirements diff --git a/docs/mkdocs/docs/api/basic_json/insert.md b/docs/mkdocs/docs/api/basic_json/insert.md index 2e6b2930..b9260488 100644 --- a/docs/mkdocs/docs/api/basic_json/insert.md +++ b/docs/mkdocs/docs/api/basic_json/insert.md @@ -24,6 +24,17 @@ void insert(const_iterator first, const_iterator last); 4. Inserts elements from initializer list `ilist` into array before iterator `pos`. 5. Inserts elements from range `[first, last)` into object. +## Iterator invalidation + +For all cases where an element is added to an **array**, a reallocation can happen, in which case all iterators +(including the [`end()`](end.md) iterator) and all references to the elements are invalidated. Otherwise, only the +[`end()`](end.md) iterator is invalidated. Also, any iterator or reference after the insertion point will point to the +same index which is now a different value. + +For [`ordered_json`](../ordered_json.md), also adding an element to an **object** can yield a reallocation which again +invalidates all iterators and all references. Also, any iterator or reference after the insertion point will point to +the same index which is now a different value. + ## Parameters `pos` (in) diff --git a/docs/mkdocs/docs/api/basic_json/invalid_iterator.md b/docs/mkdocs/docs/api/basic_json/invalid_iterator.md index f9fdce5b..3f0f7535 100644 --- a/docs/mkdocs/docs/api/basic_json/invalid_iterator.md +++ b/docs/mkdocs/docs/api/basic_json/invalid_iterator.md @@ -8,26 +8,36 @@ This exception is thrown if iterators passed to a library function do not match Exceptions have ids 2xx (see [list of iterator errors](../../home/exceptions.md#iterator-errors)). -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error -class basic_json::invalid_iterator #FFFF00 {} + style json_invalid_iterator fill:#CCCCFF ``` ## Member functions diff --git a/docs/mkdocs/docs/api/basic_json/is_structured.md b/docs/mkdocs/docs/api/basic_json/is_structured.md index f8fe4dcb..ecca80d8 100644 --- a/docs/mkdocs/docs/api/basic_json/is_structured.md +++ b/docs/mkdocs/docs/api/basic_json/is_structured.md @@ -21,7 +21,7 @@ Constant. ## Possible implementation ```cpp -constexpr bool is_primitive() const noexcept +constexpr bool is_structured() const noexcept { return is_array() || is_object(); } diff --git a/docs/mkdocs/docs/api/basic_json/items.md b/docs/mkdocs/docs/api/basic_json/items.md index 0b34ddcb..be32bbfd 100644 --- a/docs/mkdocs/docs/api/basic_json/items.md +++ b/docs/mkdocs/docs/api/basic_json/items.md @@ -66,7 +66,7 @@ When iterating over an array, `key()` will return the index of the element as st !!! danger "Lifetime issues" Using `items()` on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See - for more information. + [#2040](https://github.com/nlohmann/json/issues/2040) for more information. ## Examples diff --git a/docs/mkdocs/docs/api/basic_json/operator+=.md b/docs/mkdocs/docs/api/basic_json/operator+=.md index dc5f2ecc..1591007f 100644 --- a/docs/mkdocs/docs/api/basic_json/operator+=.md +++ b/docs/mkdocs/docs/api/basic_json/operator+=.md @@ -27,6 +27,15 @@ reference operator+=(initializer_list_t init); `init` is converted into an object element and added using `operator+=(const typename object_t::value_type&)`. Otherwise, `init` is converted to a JSON value and added using `operator+=(basic_json&&)`. +## Iterator invalidation + +For all cases where an element is added to an **array**, a reallocation can happen, in which case all iterators (including +the [`end()`](end.md) iterator) and all references to the elements are invalidated. Otherwise, only the +[`end()`](end.md) iterator is invalidated. + +For [`ordered_json`](../ordered_json.md), also adding an element to an **object** can yield a reallocation which again +invalidates all iterators and all references. + ## Parameters `val` (in) @@ -103,6 +112,11 @@ interpreted as `object_t::value_type` or `std::initializer_list`, se --8<-- "examples/push_back__initializer_list.output" ``` +## See also + +- [emplace_back](emplace_back.md) add a value to an array +- [push_back](push_back.md) add a value to an array/object + ## Version history 1. Since version 1.0.0. diff --git a/docs/mkdocs/docs/api/basic_json/operator[].md b/docs/mkdocs/docs/api/basic_json/operator[].md index 51dd8588..3eebd562 100644 --- a/docs/mkdocs/docs/api/basic_json/operator[].md +++ b/docs/mkdocs/docs/api/basic_json/operator[].md @@ -34,6 +34,15 @@ const_reference operator[](const json_pointer& ptr) const; [`string_t`](string_t.md) using [`object_comparator_t`](object_comparator_t.md). This can also be a string view (C++17). +## Iterator invalidation + +For the non-const versions 1. and 4., when passing an **array** index that does not exist, it is created and filled with +a `#!json null` value before a reference to it is returned. For this, a reallocation can happen, in which case all +iterators (including the [`end()`](end.md) iterator) and all references to the elements are invalidated. + +For [`ordered_json`](../ordered_json.md), also passing an **object key** to the non-const versions 2., 3., and 4., a +reallocation can happen which again invalidates all iterators and all references. + ## Parameters `idx` (in) diff --git a/docs/mkdocs/docs/api/basic_json/operator_gt.md b/docs/mkdocs/docs/api/basic_json/operator_gt.md index 9516656e..486da5fd 100644 --- a/docs/mkdocs/docs/api/basic_json/operator_gt.md +++ b/docs/mkdocs/docs/api/basic_json/operator_gt.md @@ -17,7 +17,7 @@ bool operator>(ScalarType lhs, const const_reference rhs) noexcept; // (2) operand is `NaN` and the other operand is either `NaN` or any other number. - Otherwise, returns the result of `#!cpp !(lhs <= rhs)` (see [**operator<=**](operator_le.md)). -2. Compares wether a JSON value is greater than a scalar or a scalar is greater than a JSON value by +2. Compares whether a JSON value is greater than a scalar or a scalar is greater than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1. ## Template parameters diff --git a/docs/mkdocs/docs/api/basic_json/operator_le.md b/docs/mkdocs/docs/api/basic_json/operator_le.md index 7b648e03..c6144bb4 100644 --- a/docs/mkdocs/docs/api/basic_json/operator_le.md +++ b/docs/mkdocs/docs/api/basic_json/operator_le.md @@ -17,7 +17,7 @@ bool operator<=(ScalarType lhs, const const_reference rhs) noexcept; // (2) operand is `NaN` and the other operand is either `NaN` or any other number. - Otherwise, returns the result of `#!cpp !(rhs < lhs)` (see [**operator<**](operator_lt.md)). -1. Compares wether a JSON value is less than or equal to a scalar or a scalar is less than or equal +1. Compares whether a JSON value is less than or equal to a scalar or a scalar is less than or equal to a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1. diff --git a/docs/mkdocs/docs/api/basic_json/operator_lt.md b/docs/mkdocs/docs/api/basic_json/operator_lt.md index b5d191ec..118d817c 100644 --- a/docs/mkdocs/docs/api/basic_json/operator_lt.md +++ b/docs/mkdocs/docs/api/basic_json/operator_lt.md @@ -27,7 +27,7 @@ bool operator<(ScalarType lhs, const const_reference rhs) noexcept; // (2) 7. binary For instance, any boolean value is considered less than any string. -2. Compares wether a JSON value is less than a scalar or a scalar is less than a JSON value by converting +2. Compares whether a JSON value is less than a scalar or a scalar is less than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1. ## Template parameters diff --git a/docs/mkdocs/docs/api/basic_json/other_error.md b/docs/mkdocs/docs/api/basic_json/other_error.md index 9a83340a..251c0f3d 100644 --- a/docs/mkdocs/docs/api/basic_json/other_error.md +++ b/docs/mkdocs/docs/api/basic_json/other_error.md @@ -8,26 +8,36 @@ This exception is thrown in case of errors that cannot be classified with the ot Exceptions have ids 5xx (see [list of other errors](../../home/exceptions.md#further-exceptions)). -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error -class basic_json::other_error #FFFF00 {} + style json_other_error fill:#CCCCFF ``` ## Member functions diff --git a/docs/mkdocs/docs/api/basic_json/out_of_range.md b/docs/mkdocs/docs/api/basic_json/out_of_range.md index 6c1f0dfb..0c216411 100644 --- a/docs/mkdocs/docs/api/basic_json/out_of_range.md +++ b/docs/mkdocs/docs/api/basic_json/out_of_range.md @@ -9,26 +9,36 @@ instance in case of array indices or nonexisting object keys. Exceptions have ids 4xx (see [list of out-of-range errors](../../home/exceptions.md#out-of-range)). -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error -class basic_json::out_of_range #FFFF00 {} + style json_out_of_range fill:#CCCCFF ``` ## Member functions diff --git a/docs/mkdocs/docs/api/basic_json/parse.md b/docs/mkdocs/docs/api/basic_json/parse.md index 49838ad1..69d412f9 100644 --- a/docs/mkdocs/docs/api/basic_json/parse.md +++ b/docs/mkdocs/docs/api/basic_json/parse.md @@ -28,9 +28,9 @@ static basic_json parse(IteratorType first, IteratorType last, : A compatible input, for instance: - an `std::istream` object - - a `FILE` pointer (must not be null) + - a `FILE` pointer (throws if null) - a C-style array of characters - - a pointer to a null-terminated string of single byte characters + - a pointer to a null-terminated string of single byte characters (throws if null) - a `std::string` - an object `obj` for which `begin(obj)` and `end(obj)` produces a valid pair of iterators. @@ -73,10 +73,11 @@ Strong guarantee: if an exception is thrown, there are no changes in the JSON va ## Exceptions -- Throws [`parse_error.101`](../../home/exceptions.md#jsonexceptionparse_error101) in case of an unexpected token. -- Throws [`parse_error.102`](../../home/exceptions.md#jsonexceptionparse_error102) if to_unicode fails or surrogate +- Throws [`parse_error.101`](../../home/exceptions.md#jsonexceptionparse_error101) in case of an unexpected token, or + empty input like a null `FILE*` or `char*` pointer. +- Throws [`parse_error.102`](../../home/exceptions.md#jsonexceptionparse_error102) if `to_unicode` fails or surrogate error. -- Throws [`parse_error.103`](../../home/exceptions.md#jsonexceptionparse_error103) if to_unicode fails. +- Throws [`parse_error.103`](../../home/exceptions.md#jsonexceptionparse_error103) if `to_unicode` fails. ## Complexity @@ -86,12 +87,7 @@ super-linear complexity. ## Notes -(1) A UTF-8 byte order mark is silently ignored. - -!!! danger "Runtime assertion" - - The precondition that a passed `#!cpp FILE` pointer must not be null is enforced with a - [runtime assertion](../../features/assertions.md). +A UTF-8 byte order mark is silently ignored. ## Examples @@ -203,6 +199,7 @@ super-linear complexity. - Added in version 1.0.0. - Overload for contiguous containers (1) added in version 2.0.3. - Ignoring comments via `ignore_comments` added in version 3.9.0. +- Changed [runtime assertion](../../features/assertions.md) in case of `FILE*` null pointers to exception in version 3.11.4. !!! warning "Deprecation" diff --git a/docs/mkdocs/docs/api/basic_json/parse_error.md b/docs/mkdocs/docs/api/basic_json/parse_error.md index af3e1f0b..87b54b4c 100644 --- a/docs/mkdocs/docs/api/basic_json/parse_error.md +++ b/docs/mkdocs/docs/api/basic_json/parse_error.md @@ -11,24 +11,36 @@ Member `byte` holds the byte index of the last read character in the input file Exceptions have ids 1xx (see [list of parse errors](../../home/exceptions.md#parse-errors)). -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error #FFFF00 { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error + + style json_parse_error fill:#CCCCFF ``` ## Member functions diff --git a/docs/mkdocs/docs/api/basic_json/push_back.md b/docs/mkdocs/docs/api/basic_json/push_back.md index 5c7d20dd..e0610393 100644 --- a/docs/mkdocs/docs/api/basic_json/push_back.md +++ b/docs/mkdocs/docs/api/basic_json/push_back.md @@ -27,6 +27,15 @@ void push_back(initializer_list_t init); `init` is converted into an object element and added using `push_back(const typename object_t::value_type&)`. Otherwise, `init` is converted to a JSON value and added using `push_back(basic_json&&)`. +## Iterator invalidation + +For all cases where an element is added to an **array**, a reallocation can happen, in which case all iterators (including +the [`end()`](end.md) iterator) and all references to the elements are invalidated. Otherwise, only the +[`end()`](end.md) iterator is invalidated. + +For [`ordered_json`](../ordered_json.md), also adding an element to an **object** can yield a reallocation which again +invalidates all iterators and all references. + ## Parameters `val` (in) @@ -99,6 +108,11 @@ All functions can throw the following exception: --8<-- "examples/push_back__initializer_list.output" ``` +## See also + +- [emplace_back](emplace_back.md) add a value to an array +- [operator+=](operator+=.md) add a value to an array/object + ## Version history 1. Since version 1.0.0. diff --git a/docs/mkdocs/docs/api/basic_json/type_error.md b/docs/mkdocs/docs/api/basic_json/type_error.md index cda54c08..4d590556 100644 --- a/docs/mkdocs/docs/api/basic_json/type_error.md +++ b/docs/mkdocs/docs/api/basic_json/type_error.md @@ -9,26 +9,36 @@ does not match the expected semantics. Exceptions have ids 3xx (see [list of type errors](../../home/exceptions.md#type-errors)). -```plantuml -std::exception <|-- basic_json::exception -basic_json::exception <|-- basic_json::parse_error -basic_json::exception <|-- basic_json::invalid_iterator -basic_json::exception <|-- basic_json::type_error -basic_json::exception <|-- basic_json::out_of_range -basic_json::exception <|-- basic_json::other_error +```mermaid +classDiagram + direction LR + + class std_exception ["std::exception"] { + <> + } -interface std::exception {} + class json_exception ["basic_json::exception"] { + +const int id + +const char* what() const + } + + class json_parse_error ["basic_json::parse_error"] { + +const std::size_t byte + } -class basic_json::exception { - + const int id - + const char* what() const -} + class json_invalid_iterator ["basic_json::invalid_iterator"] + class json_type_error ["basic_json::type_error"] + class json_out_of_range ["basic_json::out_of_range"] + class json_other_error ["basic_json::other_error"] -class basic_json::parse_error { - + const std::size_t byte -} + std_exception <|-- json_exception + json_exception <|-- json_parse_error + json_exception <|-- json_invalid_iterator + json_exception <|-- json_type_error + json_exception <|-- json_out_of_range + json_exception <|-- json_other_error -class basic_json::type_error #FFFF00 {} + style json_type_error fill:#CCCCFF ``` ## Member functions diff --git a/docs/mkdocs/docs/api/basic_json/update.md b/docs/mkdocs/docs/api/basic_json/update.md index a594cf9d..bfe785d7 100644 --- a/docs/mkdocs/docs/api/basic_json/update.md +++ b/docs/mkdocs/docs/api/basic_json/update.md @@ -17,6 +17,11 @@ recursively merges objects with common keys. The function is motivated by Python's [dict.update](https://docs.python.org/3.6/library/stdtypes.html#dict.update) function. +## Iterator invalidation + +For [`ordered_json`](../ordered_json.md), adding a value to an object can yield a reallocation, in which case all +iterators (including the `end()` iterator) and all references to the elements are invalidated. + ## Parameters `j` (in) @@ -139,4 +144,4 @@ function. ## Version history - Added in version 3.0.0. -- Added `merge_objects` parameter in 3.10.4. +- Added `merge_objects` parameter in 3.10.5. diff --git a/docs/mkdocs/docs/api/macros/index.md b/docs/mkdocs/docs/api/macros/index.md index ae9eb204..d37df592 100644 --- a/docs/mkdocs/docs/api/macros/index.md +++ b/docs/mkdocs/docs/api/macros/index.md @@ -42,7 +42,6 @@ header. See also the [macro overview page](../../features/macros.md). - [**JSON_DISABLE_ENUM_SERIALIZATION**](json_disable_enum_serialization.md) - switch off default serialization/deserialization functions for enums - [**JSON_USE_IMPLICIT_CONVERSIONS**](json_use_implicit_conversions.md) - control implicit conversions - ## Comparison behavior - [**JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON**](json_use_legacy_discarded_value_comparison.md) - @@ -50,6 +49,20 @@ header. See also the [macro overview page](../../features/macros.md). ## Serialization/deserialization macros +- Enum: [**NLOHMANN_JSON_SERIALIZE_ENUM**](nlohmann_json_serialize_enum.md) +- Class/struct: + - Do you need to serialize private variables? + - Yes? Do you only need serialization? + - Yes? `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE` + - No? Allow deserialization of JSON values with missing values? + - Yes? `NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT` + - No? `NLOHMANN_DEFINE_TYPE_INTRUSIVE` + - No? Do you only need serialization? + - Yes? `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE` + - No? Allow deserialization of JSON values with missing values? + - Yes? `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT` + - No? `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE` + - [**NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)**
**NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...)**
**NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...)**][DefInt] \- serialization/deserialization of types _with_ access to private variables diff --git a/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md b/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md new file mode 100644 index 00000000..d7d4ddd4 --- /dev/null +++ b/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md @@ -0,0 +1,61 @@ +# JSON_DIAGNOSTIC_POSITIONS + +```cpp +#define JSON_DIAGNOSTIC_POSITIONS /* value */ +``` + +This macro enables position diagnostics for generated JSON objects. + +When enabled, two new properties: `start_pos()` and `end_pos()` are added to `nlohmann::basic_json` objects and fields. `start_pos()` returns the start +position of that JSON object/field in the original string the object was parsed from. Likewise, `end_pos()` returns the end position of that JSON +object/field in the original string the object was parsed from. + +`start_pos()` returns the first character of a given element in the original JSON string, while `end_pos()` returns the character following the last +character. For objects and arrays, the first and last characters correspond to the opening or closing braces/brackets, respectively. For fields, the first +and last character represent the opening and closing quotes or the first and last character of the field's numerical or predefined value +(true/false/null), respectively. + +Given the above, `end_pos() - start_pos()` for an object or field provides the length of the string representation for that object or field, including the +opening or closing braces, brackets, or quotes. + +`start_pos()` and `end_pos()` are only set if the JSON object was parsed using `parse()`. For all other cases, `std::string::npos` will be returned. + +Note that enabling this macro increases the size of every JSON value by two `std::size_t` fields and adds +slight runtime overhead. + +## Default definition + +The default value is `0` (position diagnostics are switched off). + +```cpp +#define JSON_DIAGNOSTIC_POSITIONS 0 +``` + +When the macro is not defined, the library will define it to its default value. + +## Notes + +!!! hint "CMake option" + + Diagnostic messages can also be controlled with the CMake option + [`JSON_Diagnostic_Positions`](../../integration/cmake.md#json_diagnostic_positions) (`OFF` by default) + which defines `JSON_DIAGNOSTIC_POSITIONS` accordingly. + +## Examples + +??? example "Example 1: retrieving positions" + + ```cpp + --8<-- "examples/diagnostic_positions.cpp" + ``` + + Output: + + ``` + --8<-- "examples/diagnostic_positions.output" + ``` + + The output shows the start/end positions of all the objects and fields in the JSON string. + +## Version history + diff --git a/docs/mkdocs/docs/api/macros/json_has_static_rtti.md b/docs/mkdocs/docs/api/macros/json_has_static_rtti.md index 78087831..33d0703a 100644 --- a/docs/mkdocs/docs/api/macros/json_has_static_rtti.md +++ b/docs/mkdocs/docs/api/macros/json_has_static_rtti.md @@ -28,4 +28,4 @@ When the macro is not defined, the library will define it to its default value. ## Version history -- Added in version ?. +- Added in version 3.11.3. diff --git a/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md b/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md index 557dfa29..4d962c2e 100644 --- a/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md +++ b/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md @@ -27,7 +27,7 @@ By default, implicit conversions are enabled. !!! hint "CMake option" Implicit conversions can also be controlled with the CMake option - [`JSON_ImplicitConversions`](../../integration/cmake.md#json_legacydiscardedvaluecomparison) + [`JSON_ImplicitConversions`](../../integration/cmake.md#json_implicitconversions) (`ON` by default) which defines `JSON_USE_IMPLICIT_CONVERSIONS` accordingly. ## Examples diff --git a/docs/mkdocs/docs/api/macros/json_use_legacy_discarded_value_comparison.md b/docs/mkdocs/docs/api/macros/json_use_legacy_discarded_value_comparison.md index bc1d1434..65f3f176 100644 --- a/docs/mkdocs/docs/api/macros/json_use_legacy_discarded_value_comparison.md +++ b/docs/mkdocs/docs/api/macros/json_use_legacy_discarded_value_comparison.md @@ -56,7 +56,7 @@ When the macro is not defined, the library will define it to its default value. !!! hint "CMake option" Legacy comparison can also be controlled with the CMake option - [`JSON_LegacyDiscardedValueComparison`](../../integration/cmake.md#json_legacydiscardedvaluecomparison) + [`JSON_LegacyDiscardedValueComparison`](../../integration/cmake.md#json_implicitconversions) (`OFF` by default) which defines `JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON` accordingly. ## Examples diff --git a/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md b/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md new file mode 100644 index 00000000..f09a7478 --- /dev/null +++ b/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md @@ -0,0 +1,137 @@ +

NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT, + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE, + NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

+ +```cpp +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(type, base_type, member...) // (1) +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(type, base_type, member...) // (2) +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, base_type, member...) // (3) + +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(type, base_type, member...) // (4) +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, base_type, member...) // (5) +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, base_type, member...) // (6) +``` + +These macros can be used to simplify the serialization/deserialization of derived types if you want to use a JSON +object as serialization and want to use the member variable names as object keys in that object. + +- Macros 1, 2 and 3 are to be defined **inside** the class/struct to create code for. +Like [`NLOHMANN_DEFINE_TYPE_INTRUSIVE`](nlohmann_define_type_intrusive.md), they can access private members. +- Macros 4, 5 and 6 are to be defined **outside** the class/struct to create code for, but **inside** its namespace. +Like [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE`](nlohmann_define_type_non_intrusive.md), +they **cannot** access private members. + +The first parameter is the name of the derived class/struct, +the second parameter is the name of the base class/struct and all remaining parameters name the members. +The base type **must** be already serializable/deserializable. + +- Macros 1 and 3 will use [`at`](../basic_json/at.md) during deserialization and will throw + [`out_of_range.403`](../../home/exceptions.md#jsonexceptionout_of_range403) if a key is missing in the JSON object. +- Macros 2 and 4 will use [`value`](../basic_json/value.md) during deserialization and fall back to the default value for the + respective type of the member variable if a key in the JSON object is missing. The generated `from_json()` function + default constructs an object and uses its values as the defaults when calling the `value` function. + +## Parameters + +`type` (in) +: name of the type (class, struct) to serialize/deserialize + +`base_type` (in) +: name of the base type (class, struct) `type` is derived from + +`member` (in) +: name of the member variable to serialize/deserialize; up to 64 members can be given as comma-separated list + +## Default definition + +Macros 1 and 2 add two friend functions to the class which take care of the serialization and deserialization: + +```cpp +friend void to_json(nlohmann::json&, const type&); +friend void from_json(const nlohmann::json&, type&); +``` + +Macros 4 and 5 add two functions to the namespace which take care of the serialization and deserialization: + +```cpp +void to_json(nlohmann::json&, const type&); +void from_json(const nlohmann::json&, type&); +``` + +Macros 3 and 6 add one function to the namespace which take care of the serialization only: + +```cpp +void to_json(nlohmann::json&, const type&); +``` + +In first two cases cases they call the `to_json`/`from_json` functions of the base type +before serializing/deserializing the members of the derived type: + +```cpp +class A { /* ... */ }; +class B : public A { /* ... */ }; + +void to_json(nlohmann::json& j, const B& b) { + nlohmann::to_json(j, static_cast(b)); + // ... +} + +void from_json(const nlohmann::json& j, B& b) { + nlohmann::from_json(j, static_cast(b)); + // ... +} +``` + +In the third case only `to_json` will be called: + +```cpp +class A { /* ... */ }; +class B : public A { /* ... */ }; + +void to_json(nlohmann::json& j, const B& b) { + nlohmann::to_json(j, static_cast(b)); + // ... +} +``` + +## Notes + +!!! info "Prerequisites" + + - Macros 1, 2 and 3 have the same prerequisites of NLOHMANN_DEFINE_TYPE_INTRUSIVE. + - Macros 4, 5 and 6 have the same prerequisites of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE. + - Serialization/deserialization of base types must be defined. + +!!! warning "Implementation limits" + + - See Implementation limits for NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE. + +## Examples + +Example of `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE` usage: + +```cpp +class A { + double Aa; + double Ab; + NLOHMANN_DEFINE_TYPE_INTRUSIVE(A, Aa, Ab) +}; + +class B : public A { + int Ba; + int Bb; + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(B, A, Ba, Bb) +}; +``` + +## See also + +- [NLOHMANN_DEFINE_TYPE_INTRUSIVE / NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT](nlohmann_define_type_intrusive.md) + for similar macros that can be defined _inside_ a non-derived type. +- [NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE / NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT](nlohmann_define_type_non_intrusive.md) + for similar macros that can be defined _outside_ a non-derived type. +- [Arbitrary Type Conversions](../../features/arbitrary_types.md) for an overview. + +## Version history + +1. Added in version 3.11.x. diff --git a/docs/mkdocs/docs/api/operator_literal_json.md b/docs/mkdocs/docs/api/operator_literal_json.md index bc2b2cfc..a3a4bd28 100644 --- a/docs/mkdocs/docs/api/operator_literal_json.md +++ b/docs/mkdocs/docs/api/operator_literal_json.md @@ -17,7 +17,7 @@ using namespace nlohmann; ``` This is suggested to ease migration to the next major version release of the library. See -['JSON_USE_GLOBAL_UDLS`](macros/json_use_global_udls.md#notes) for details. +[`JSON_USE_GLOBAL_UDLS`](macros/json_use_global_udls.md#notes) for details. ## Parameters diff --git a/docs/mkdocs/docs/api/operator_literal_json_pointer.md b/docs/mkdocs/docs/api/operator_literal_json_pointer.md index 0e12440e..423678c7 100644 --- a/docs/mkdocs/docs/api/operator_literal_json_pointer.md +++ b/docs/mkdocs/docs/api/operator_literal_json_pointer.md @@ -16,7 +16,7 @@ using namespace nlohmann::literals::json_literals; using namespace nlohmann; ``` This is suggested to ease migration to the next major version release of the library. See -['JSON_USE_GLOBAL_UDLS`](macros/json_use_global_udls.md#notes) for details. +[`JSON_USE_GLOBAL_UDLS`](macros/json_use_global_udls.md#notes) for details. ## Parameters diff --git a/docs/mkdocs/docs/api/ordered_json.md b/docs/mkdocs/docs/api/ordered_json.md index 7cfd9f4d..f4062d13 100644 --- a/docs/mkdocs/docs/api/ordered_json.md +++ b/docs/mkdocs/docs/api/ordered_json.md @@ -6,6 +6,13 @@ using ordered_json = basic_json; This type preserves the insertion order of object keys. +## Iterator invalidation + +The type is based on [`ordered_map`](ordered_map.md) which in turn uses a `std::vector` to store object elements. +Therefore, adding object elements can yield a reallocation in which case all iterators (including the +[`end()`](basic_json/end.md) iterator) and all references to the elements are invalidated. Also, any iterator or +reference after the insertion point will point to the same index which is now a different value. + ## Examples ??? example diff --git a/docs/mkdocs/docs/api/ordered_map.md b/docs/mkdocs/docs/api/ordered_map.md index 160b85c2..ca493416 100644 --- a/docs/mkdocs/docs/api/ordered_map.md +++ b/docs/mkdocs/docs/api/ordered_map.md @@ -23,6 +23,11 @@ A minimal map-like container that preserves insertion order for use within [`nlo `Allocator` : allocator type +## Iterator invalidation + +The type uses a `std::vector` to store object elements. Therefore, adding elements can yield a reallocation in which +case all iterators (including the `end()` iterator) and all references to the elements are invalidated. + ## Member types - **key_type** - key type (`Key`) diff --git a/docs/mkdocs/docs/features/arbitrary_types.md b/docs/mkdocs/docs/features/arbitrary_types.md index 9b54fcb3..449671c9 100644 --- a/docs/mkdocs/docs/features/arbitrary_types.md +++ b/docs/mkdocs/docs/features/arbitrary_types.md @@ -75,7 +75,7 @@ Likewise, when calling `template get()` or `get_to(your_type&)`, the Some important things: * Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). -* Those methods **MUST** be available (e.g., proper headers must be included) everywhere you use these conversions. Look at [issue 1108](https://github.com/nlohmann/json/issues/1108) for errors that may occur otherwise. +* Those methods **MUST** be available (e.g., proper headers must be included) everywhere you use these conversions. Look at [#1108](https://github.com/nlohmann/json/issues/1108) for errors that may occur otherwise. * When using `template get()`, `your_type` **MUST** be [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). (There is a way to bypass this requirement described later.) * In function `from_json`, use function [`at()`](../api/basic_json/at.md) to access the object values rather than `operator[]`. In case a key does not exist, `at` throws an exception that you can handle, whereas `operator[]` exhibits undefined behavior. * You do not need to add serializers or deserializers for STL types like `std::vector`: the library already implements these. @@ -265,7 +265,7 @@ struct bad_serializer } template - static void to_json(const BasicJsonType& j, T& value) { + static void from_json(const BasicJsonType& j, T& value) { // this calls BasicJsonType::json_serializer::from_json(j, value); // if BasicJsonType::json_serializer == bad_serializer ... oops! value = j.template template get(); // oops! diff --git a/docs/mkdocs/docs/features/assertions.md b/docs/mkdocs/docs/features/assertions.md index 2bad62e8..32b4e019 100644 --- a/docs/mkdocs/docs/features/assertions.md +++ b/docs/mkdocs/docs/features/assertions.md @@ -103,29 +103,38 @@ behavior and yields a runtime assertion. Assertion failed: (m_object != nullptr), function operator++, file iter_impl.hpp, line 368. ``` -### Reading from a null `FILE` pointer +## Changes -Reading from a null `#!cpp FILE` pointer is undefined behavior and yields a runtime assertion. This can happen when -calling `#!cpp std::fopen` on a nonexistent file. +### Reading from a null `FILE` or `char` pointer -??? example "Example 4: Uninitialized iterator" +Reading from a null `#!cpp FILE` or `#!cpp char` pointer in C++ is undefined behavior. Until version 3.11.4, this +library asserted that the pointer was not `nullptr` using a runtime assertion. If assertions were disabled, this would +result in undefined behavior. Since version 3.11.4, this library checks for `nullptr` and throws a +[`parse_error.101`](../home/exceptions.md#jsonexceptionparse_error101) to prevent the undefined behavior. + +??? example "Example 4: Reading from null pointer" The following code will trigger an assertion at runtime: ```cpp + #include #include using json = nlohmann::json; int main() { - std::FILE* f = std::fopen("nonexistent_file.json", "r"); - json j = json::parse(f); + std::FILE* f = std::fopen("nonexistent_file.json", "r"); + try { + json j = json::parse(f); + } catch (std::exception& e) { + std::cerr << e.what() << std::endl; + } } ``` Output: ``` - Assertion failed: (m_file != nullptr), function file_input_adapter, file input_adapters.hpp, line 55. + [json.exception.parse_error.101] parse error: attempting to parse an empty input; check that your input string or stream contains the expected JSON ``` diff --git a/docs/mkdocs/docs/features/binary_values.md b/docs/mkdocs/docs/features/binary_values.md index 5ad6433c..4a15a2ee 100644 --- a/docs/mkdocs/docs/features/binary_values.md +++ b/docs/mkdocs/docs/features/binary_values.md @@ -10,17 +10,19 @@ serialized JSON text if they have been created manually or via a binary format. ## API for binary values -```plantuml -class json::binary_t { - -- setters -- +```mermaid +classDiagram + +class binary_t ["json::binary_t"] { +void set_subtype(std::uint64_t subtype) +void clear_subtype() - -- getters -- +std::uint64_t subtype() const +bool has_subtype() const } -"std::vector" <|-- json::binary_t +class vector ["std::vector"] + +vector <|-- binary_t ``` By default, binary values are stored as `std::vector`. This type can be changed by providing a template diff --git a/docs/mkdocs/docs/features/comments.md b/docs/mkdocs/docs/features/comments.md index 61266d9c..e99cceb4 100644 --- a/docs/mkdocs/docs/features/comments.md +++ b/docs/mkdocs/docs/features/comments.md @@ -5,9 +5,9 @@ This library does not support comments *by default*. It does so for three reason 1. Comments are not part of the [JSON specification](https://tools.ietf.org/html/rfc8259). You may argue that `//` or `/* */` are allowed in JavaScript, but JSON is not JavaScript. 2. This was not an oversight: Douglas Crockford [wrote on this](https://plus.google.com/118095276221607585885/posts/RK8qyGVaGSr) in May 2012: - > I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't. + > I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't. - > Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser. + > Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser. 3. It is dangerous for interoperability if some libraries would add comment support while others don't. Please check [The Harmful Consequences of the Robustness Principle](https://tools.ietf.org/html/draft-iab-protocol-maintenance-01) on this. diff --git a/docs/mkdocs/docs/features/iterators.md b/docs/mkdocs/docs/features/iterators.md index ce627e01..ca303cb4 100644 --- a/docs/mkdocs/docs/features/iterators.md +++ b/docs/mkdocs/docs/features/iterators.md @@ -100,7 +100,7 @@ for (auto& [key, val] : j_object.items()) !!! warning - Using `items()` on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See for more information. + Using `items()` on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See [#2040](https://github.com/nlohmann/json/issues/2040) for more information. ### Reverse iteration order diff --git a/docs/mkdocs/docs/features/json_pointer.md b/docs/mkdocs/docs/features/json_pointer.md index 04aeca50..4fd58f20 100644 --- a/docs/mkdocs/docs/features/json_pointer.md +++ b/docs/mkdocs/docs/features/json_pointer.md @@ -71,10 +71,10 @@ auto j = json::parse(R"({ })"); // access values -auto val = j["/"_json_pointer]; // {"array":["A","B","C"],...} +auto val = j[""_json_pointer]; // {"array":["A","B","C"],...} auto val1 = j["/nested/one"_json_pointer]; // 1 -auto val2 = j.at[json::json_pointer("/nested/three/1")]; // false -auto val3 = j.value[json::json_pointer("/nested/four", 0)]; // 0 +auto val2 = j.at(json::json_pointer("/nested/three/1")); // false +auto val3 = j.value(json::json_pointer("/nested/four"), 0); // 0 ``` ## Flatten / unflatten diff --git a/docs/mkdocs/docs/features/macros.md b/docs/mkdocs/docs/features/macros.md index 926741b0..2fea87c1 100644 --- a/docs/mkdocs/docs/features/macros.md +++ b/docs/mkdocs/docs/features/macros.md @@ -100,6 +100,13 @@ When defined to `0`, implicit conversions are switched off. By default, implicit See [full documentation of `JSON_USE_IMPLICIT_CONVERSIONS`](../api/macros/json_use_implicit_conversions.md). +## `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(type, base_type, member...)` +## `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(type, base_type, member...)` +## `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, base_type, member...)` +## `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(type, base_type, member...)` +## `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, base_type, member...)` +## `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, base_type, member...)` + ## `NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)` This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as diff --git a/docs/mkdocs/docs/features/namespace.md b/docs/mkdocs/docs/features/namespace.md index 8cee2ccf..460cb3be 100644 --- a/docs/mkdocs/docs/features/namespace.md +++ b/docs/mkdocs/docs/features/namespace.md @@ -30,15 +30,16 @@ nlohmann::json_abi_diag_v3_11_2 Several incompatibilities have been observed. Amongst the most common ones is linking code compiled with different definitions of [`JSON_DIAGNOSTICS`](../api/macros/json_diagnostics.md). This is illustrated in the diagram below. -```plantuml -[**nlohmann_json (v3.10.5)**\nJSON_DIAGNOSTICS=0] as [json] -[**nlohmann_json (v3.10.5)**\nJSON_DIAGNOSTICS=1] as [json_diag] -[**some_library**] as [library] -[**application**] as [app] - -[library] ..|> [json] -[app] ..|> [json_diag] -[app] ..|>[library] +```mermaid +graph + json["nlohmann_json (v3.10.5)
JSON_DIAGNOSTICS=0"] + json_diag["nlohmann_json (v3.10.5)
JSON_DIAGNOSTICS=1"] + library["some library"] + app["application"] + + library --> json + app --> json_diag + app --> library ``` In releases prior to 3.11.0, mixing any version of the JSON library with different `JSON_DIAGNOSTICS` settings would diff --git a/docs/mkdocs/docs/features/parsing/sax_interface.md b/docs/mkdocs/docs/features/parsing/sax_interface.md index 0796a55f..5a9c83a7 100644 --- a/docs/mkdocs/docs/features/parsing/sax_interface.md +++ b/docs/mkdocs/docs/features/parsing/sax_interface.md @@ -2,27 +2,30 @@ The library uses a SAX-like interface with the following functions: -```plantuml -interface json::sax_t { - + {abstract} bool null() +```mermaid +classDiagram - + {abstract} bool boolean(bool val) - - + {abstract} bool number_integer(number_integer_t val) - + {abstract} bool number_unsigned(number_unsigned_t val) - - + {abstract} bool number_float(number_float_t val, const string_t& s) - - + {abstract} bool string(string_t& val) - + {abstract} bool binary(binary_t& val) - - + {abstract} bool start_object(std::size_t elements) - + {abstract} bool end_object() - + {abstract} bool start_array(std::size_t elements) - + {abstract} bool end_array() - + {abstract} bool key(string_t& val) - - + {abstract} bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) +class sax_t ["json::sax_t"] { + <> + +bool null()* + + +bool boolean(bool val)* + + +bool number_integer(number_integer_t val)* + +bool number_unsigned(number_unsigned_t val)* + + +bool number_float(number_float_t val, const string_t& s)* + + +bool string(string_t& val)* + +bool binary(binary_t& val)* + + +bool start_object(std::size_t elements)* + +bool end_object()* + +bool start_array(std::size_t elements)* + +bool end_array()* + +bool key(string_t& val)* + + +bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex)* } ``` diff --git a/docs/mkdocs/docs/features/types/index.md b/docs/mkdocs/docs/features/types/index.md index d9dfcc29..1a2a8119 100644 --- a/docs/mkdocs/docs/features/types/index.md +++ b/docs/mkdocs/docs/features/types/index.md @@ -19,8 +19,11 @@ Note there are three different types for numbers - when parsing JSON text, the b ## Storage -```plantuml -enum value_t { +```mermaid +classDiagram + +class value_t { + <> null object array @@ -33,7 +36,8 @@ enum value_t { discarded } -class json_value << (U,orchid) >> { +class json_value { + <> object_t* object array_t* array string_t* string @@ -45,17 +49,15 @@ class json_value << (U,orchid) >> { } class basic_json { - -- type and value -- - value_t m_type - json_value m_value - -- derived types -- - + typedef object_t - + typedef array_t - + typedef binary_t - + typedef boolean_t - + typedef number_integer_t - + typedef number_unsigned_t - + typedef number_float_t + -value_t m_type + -json_value m_value + +typedef object_t + +typedef array_t + +typedef binary_t + +typedef boolean_t + +typedef number_integer_t + +typedef number_unsigned_t + +typedef number_float_t } basic_json .. json_value diff --git a/docs/mkdocs/docs/home/customers.md b/docs/mkdocs/docs/home/customers.md new file mode 100644 index 00000000..67c5a62d --- /dev/null +++ b/docs/mkdocs/docs/home/customers.md @@ -0,0 +1,159 @@ +# Customers + +The library is used in multiple projects, applications, operating systems, etc. The list below is not exhaustive, but +the result of an internet search. If you know further customers of the library, [please let me know](mailto:mail@nlohmann.me). + +[![](../images/customers.png)](../images/customers.png) + +## Space Exploration + +- [**Peregrine Lunar Lander Flight 01**](https://en.wikipedia.org/wiki/Peregrine_Mission_One) - The library was utilized for payload management in the **Peregrine Moon Lander**, developed by **Astrobotic Technology** and launched as part of NASA's **Commercial Lunar Payload Services (CLPS)** program. After six days in orbit, the spacecraft was intentionally redirected into Earth's atmosphere, where it burned up over the Pacific Ocean on **January 18, 2024**. + +## Automotive + +- [**Alexa Auto SDK**](https://github.com/alexa/alexa-auto-sdk), a software development kit enabling the integration of Alexa into automotive systems +- [**Apollo**](https://github.com/ApolloAuto/apollo), a framework for building autonomous driving systems +- [**Automotive Grade Linux (AGL)**](https://download.automotivelinux.org/AGL/release/jellyfish/latest/qemux86-64/deploy/licenses/nlohmann-json/): a collaborative open-source platform for automotive software development +- [**Genesis Motor** (infotainment)](http://webmanual.genesis.com/ccIC/AVNT/JW/KOR/English/reference010.html), a luxury automotive brand +- [**Hyundai** (infotainment)](https://www.hyundai.com/wsvc/ww/download.file.do?id=/content/hyundai/ww/data/opensource/data/GN7-2022/licenseCode/info), a global automotive brand +- [**Kia** (infotainment)](http://webmanual.kia.com/PREM_GEN6/AVNT/RJPE/KOR/Korean/reference010.html), a global automotive brand +- [**Mercedes-Benz Operating System (MB.OS)**](https://group.mercedes-benz.com/careers/about-us/mercedes-benz-operating-system/), a core component of the vehicle software ecosystem from Mercedes-Benz +- [**Rivian** (infotainment)](https://assets.ctfassets.net/2md5qhoeajym/3cwyo4eoufk4yingUwusFt/ded2c47da620fdfc99c88c7156d2c1d8/In-Vehicle_OSS_Attribution_2024__11-24_.pdf), an electric vehicle manufacturer +- [**Suzuki** (infotainment)](https://www.globalsuzuki.com/motorcycle/ipc/oss/oss_48KA_00.pdf), a global automotive and motorcycle manufacturer + +## Gaming and Entertainment + +- [**Assassin's Creed: Mirage**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a stealth-action game set in the Middle East, focusing on the journey of a young assassin with classic parkour and stealth mechanics +- [**Chasm: The Rift**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a first-person shooter blending horror and adventure, where players navigate dark realms and battle monsters +- [**College Football 25**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a college football simulation game featuring gameplay that mimics real-life college teams and competitions +- [**Concepts**](https://concepts.app/en/licenses): a digital sketching app designed for creative professionals, offering flexible drawing tools for illustration, design, and brainstorming +- [**Depthkit**](https://www.depthkit.tv/third-party-licenses): a tool for creating and capturing volumetric video, enabling immersive 3D experiences and interactive content +- [**immersivetech**](https://immersitech.io/open-source-third-party-software/): a technology company focused on immersive experiences, providing tools and solutions for virtual and augmented reality applications +- [**LOOT**](https://loot.readthedocs.io/_/downloads/en/0.13.0/pdf/), a tool for optimizing the load order of game plugins, commonly used in The Elder Scrolls and Fallout series +- [**Madden NFL 25**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a sports simulation game capturing the excitement of American football with realistic gameplay and team management features +- [**Marne**](https://marne.io/licenses), an unofficial private server platform for hosting custom Battlefield 1 game experiences +- [**Minecraft**](https://www.minecraft.net/zh-hant/attribution), a popular sandbox video game +- [**NHL 22**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a hockey simulation game offering realistic gameplay, team management, and various modes to enhance the hockey experience +- [**Pixelpart**](https://pixelpart.net/documentation/book/third-party.html): a 2D animation and video compositing software that allows users to create animated graphics and visual effects with a focus on simplicity and ease of use +- [**Red Dead Redemption II**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): an open-world action-adventure game following an outlaw's story in the late 1800s, emphasizing deep storytelling and immersive gameplay +- [**Tactics Ogre: Reborn**](https://www.square-enix-games.com/en_US/documents/tactics-ogre-reborn-pc-installer-software-and-associated-plug-ins-disclosure), a tactical role-playing game featuring strategic battles and deep storytelling elements +- [**Throne and Liberty**](https://www.amazon.com/gp/help/customer/display.html?nodeId=T7fLNw5oAevCMtJFPj&pop-up=1), an MMORPG that offers an expansive fantasy world with dynamic gameplay and immersive storytelling +- [**Unity Vivox**](https://docs.unity3d.com/Packages/com.unity.services.vivox@15.1/license/Third%20Party%20Notices.html), a communication service that enables voice and text chat functionality in multiplayer games developed with Unity +- [**Zool: Redimensioned**](https://www.mobygames.com/person/1195889/niels-lohmann/credits/): a modern reimagining of the classic platformer featuring fast-paced gameplay and vibrant environments + +## Consumer Electronics + +- [**Audinate**](https://www.audinate.com/legal/software-licensing/dante-av-h-open-source-licenses/): a provider of networked audio solutions specializing in Dante technology, which facilitates high-quality digital audio transport over IP networks +- [**Cisco Webex Desk Camera**](https://www.cisco.com/c/dam/en_us/about/doing_business/open_source/docs/CiscoWebexDeskCamera-23-1622100417.pdf), a video camera designed for professional-quality video conferencing and remote collaboration +- [**Philips Hue Personal Wireless Lighting**](http://2ak5ape.257.cz/): a smart lighting system for customizable and wireless home illumination +- [**Ray-Ban Meta Smart glasses**](https://www.meta.com/de/en/legal/smart-glasses/third-party-notices-android/03/), a pair of smart glasses designed for capturing photos and videos with integrated connectivity and social features +- [**Siemens SINEMA Remote Connect**](https://cache.industry.siemens.com/dl/files/790/109793790/att_1054961/v2/OSS_SINEMA-RC_86.pdf), a remote connectivity solution for monitoring and managing industrial networks and devices securely +- [**Sony PlayStation 4**](https://doc.dl.playstation.net/doc/ps4-oss/index.html), a gaming console developed by Sony that offers a wide range of games and multimedia entertainment features +- [**Sony Virtual Webcam Driver for Remote Camera**](https://helpguide.sony.net/rc/vwd/v1/zh-cn/print.pdf), a software driver that enables the use of Sony cameras as virtual webcams for video conferencing and streaming + +## Operating Systems + +- [**Apple iOS and macOS**](https://www.apple.com/macos), a family of operating systems developed by Apple, including iOS for mobile devices and macOS for desktop computers +- [**Google Fuchsia**](https://fuchsia.googlesource.com/third_party/json/), an open-source operating system developed by Google, designed to be secure, updatable, and adaptable across various devices +- [**SerenityOS**](https://github.com/SerenityOS/serenity), an open-source operating system that aims to provide a simple and beautiful user experience with a focus on simplicity and elegance +- [**Yocto**](http://ftp.emacinc.com/openembedded-sw/kirkstone-icop-5.15-kirkstone-6.0/archive-2024-10/pn8m-090t-ppc/licenses/nlohmann-json/): a Linux-based build system for creating custom operating systems and software distributions, tailored for embedded devices and IoT applications + +## Development Tools and IDEs + +- [**Accentize SpectralBalance**](https://www.accentize.com/products/SpectralBalanceManual.pdf), an adaptive speech analysis tool designed to enhance audio quality by optimizing frequency balance in recordings +- [**Arm Compiler for Linux**](https://documentation-service.arm.com/static/66558e9d876c8d213b7843e4), a software development toolchain for compiling and optimizing applications on Arm-based Linux systems +- [**BBEdit**](https://s3.amazonaws.com/BBSW-download/BBEdit_15.1.2_User_Manual.pdf), a professional text and code editor for macOS +- [**CoderPad**](https://coderpad.io), a collaborative coding platform that enables real-time code interviews and assessments for developers; the library is included in every CoderPad instance and can be accessed with a simple `#include "json.hpp"` +- [**Compiler Explorer**](https://godbolt.org), a web-based tool that allows users to write, compile, and visualize the assembly output of code in various programming languages; the library is readily available and accessible with the directive `#include `. +- [**GitHub CodeQL**](https://github.com/github/codeql), a code analysis tool used for identifying security vulnerabilities and bugs in software through semantic queries +- [**Hex-Rays**](https://docs.hex-rays.com/user-guide/user-interface/licenses): a reverse engineering toolset for analyzing and decompiling binaries, primarily used for security research and vulnerability analysis +- [**ImHex**](https://github.com/WerWolv/ImHex), a hex editor designed for reverse engineering, providing advanced features for data analysis and manipulation +- [**Intel GPA Framework**](https://intel.github.io/gpasdk-doc/src/licenses.html), a suite of cross-platform tools for capturing, analyzing, and optimizing graphics applications across different APIs +- [**Meta Yoga**](https://github.com/facebook/yoga), a layout engine that facilitates flexible and efficient user interface design across multiple platforms +- [**MKVToolNix**](https://mkvtoolnix.download/doc/README.md), a set of tools for creating, editing, and inspecting MKV (Matroska) multimedia container files +- [**NVIDIA Nsight Compute**](https://docs.nvidia.com/nsight-compute/2022.2/pdf/CopyrightAndLicenses.pdf), a performance analysis tool for CUDA applications that provides detailed insights into GPU performance metrics +- [**Notepad++**](https://github.com/notepad-plus-plus/notepad-plus-plus), a free source code editor that supports various programming languages +- [**OpenRGB**](https://gitlab.com/CalcProgrammer1/OpenRGB), an open source RGB lighting control that doesn't depend on manufacturer software +- [**OpenTelemetry C++**](https://github.com/open-telemetry/opentelemetry-cpp): a library for collecting and exporting observability data in C++, enabling developers to implement distributed tracing and metrics in their application +- [**Qt Creator**](https://doc.qt.io/qtcreator/qtcreator-attribution-json-nlohmann.html), an IDE for developing applications using the Qt application framework +- [**Scanbot SDK**](https://docs.scanbot.io/barcode-scanner-sdk/web/third-party-libraries/): a software development kit (SDK) that provides tools for integrating advanced document scanning and barcode scanning capabilities into applications + +## Machine Learning and AI + +- [**Apple Core ML Tools**](https://github.com/apple/coremltools), a set of tools for converting and configuring machine learning models for deployment in Apple's Core ML framework +- [**Avular Mobile Robotics**](https://www.avular.com/licenses/nlohmann-json-3.9.1.txt): a platform for developing and deploying mobile robotics solutions +- [**Google gemma.cpp**](https://github.com/google/gemma.cpp), a lightweight C++ inference engine designed for running AI models from the Gemma family +- [**llama.cpp**](https://github.com/ggerganov/llama.cpp), a C++ library designed for efficient inference of large language models (LLMs), enabling streamlined integration into applications +- [**Mozilla llamafile**](https://github.com/Mozilla-Ocho/llamafile), a tool designed for distributing and executing large language models (LLMs) efficiently using a single file format +- [**NVIDIA ACE**](https://docs.nvidia.com/ace/latest/index.html), a suite of real-time AI solutions designed for the development of interactive avatars and digital human applications, enabling scalable and sophisticated user interactions +- [**Peer**](https://support.peer.inc/hc/en-us/articles/17261335054235-Licenses): a platform offering personalized AI assistants for interactive learning and creative collaboration +- [**stable-diffusion.cpp**](https://github.com/leejet/stable-diffusion.cpp): a C++ implementation of the Stable Diffusion image generation model +- [**TanvasTouch**](https://tanvas.co/tanvastouch-sdk-third-party-acknowledgments): a software development kit (SDK) that enables developers to create tactile experiences on touchscreens, allowing users to feel textures and physical sensations in a digital environment +- [**TensorFlow**](https://github.com/tensorflow/tensorflow), a machine learning framework that facilitates the development and training of models, supporting data serialization and efficient data exchange between components + +## Scientific Research and Analysis + +- [**BLACK**](https://www.black-sat.org/en/stable/installation/linux.html), a bounded linear temporal logic (LTL) satisfiability checker +- [**CERN Atlas Athena**](https://gitlab.cern.ch/atlas/athena/-/blob/main/Control/PerformanceMonitoring/PerfMonComps/src/PerfMonMTSvc.h), a software framework used in the ATLAS experiment at the Large Hadron Collider (LHC) for performance monitoring +- [**KAMERA**](https://github.com/Kitware/kamera): a platform for synchronized data collection and real-time deep learning to map marine species like polar bears and seals, aiding Arctic ecosystem research +- [**KiCad**](https://gitlab.com/kicad/code/kicad/-/tree/master/thirdparty/nlohmann_json): a free and open-source software suite for electronic design automation +- [**MeVisLab**](https://mevislabdownloads.mevis.de/docs/current/MeVis/ThirdParty/Documentation/Publish/ThirdPartyReference/index.html): a software framework for medical image processing and visualization. +- [**OpenPMD API**](https://openpmd-api.readthedocs.io/en/0.8.0-alpha/backends/json.html): a versatile programming interface for accessing and managing scientific data, designed to facilitate the efficient storage, retrieval, and sharing of simulation data across various applications and platforms +- [**ParaView**](https://github.com/Kitware/ParaView): an open-source tool for large-scale data visualization and analysis across various scientific domains +- [**QGIS**](https://gitlab.b-data.ch/qgis/qgis/-/blob/backport-57658-to-release-3_34/external/nlohmann/json.hpp): a free and open-source geographic information system (GIS) application that allows users to create, edit, visualize, and analyze geospatial data across a variety of formats +- [**VTK**](https://github.com/Kitware/VTK): a software library for 3D computer graphics, image processing, and visualization +- [**VolView**](https://github.com/Kitware/VolView): a lightweight application for interactive visualization and analysis of 3D medical imaging data. + +## Business and Productivity Software + +- [**ArcGIS PRO**](https://www.esri.com/content/dam/esrisites/en-us/media/legal/open-source-acknowledgements/arcgis-pro-2-8-attribution-report.html), a desktop geographic information system (GIS) application developed by Esri for mapping and spatial analysis +- [**Autodesk Desktop**](https://damassets.autodesk.net/content/dam/autodesk/www/Company/legal-notices-trademarks/autodesk-desktop-platform-components/internal-autodesk-components-web-page-2023.pdf), a software platform developed by Autodesk for creating and managing desktop applications and services +- [**Check Point**](https://www.checkpoint.com/about-us/copyright-and-trademarks/): a cybersecurity company specializing in threat prevention and network security solutions, offering a range of products designed to protect enterprises from cyber threats and ensure data integrity +- [**Microsoft Office for Mac**](https://officecdnmac.microsoft.com/pr/legal/mac/OfficeforMacAttributions.html), a suite of productivity applications developed by Microsoft for macOS, including tools for word processing, spreadsheets, and presentations +- [**Nexthink Infinity**](https://docs.nexthink.com/legal/services-terms/experience-open-source-software-licenses/infinity-2022.8-software-licenses): a digital employee experience management platform for monitoring and improving IT performance +- [**Sophos Connect Client**](https://docs.sophos.com/nsg/licenses/SophosConnect/SophosConnectAttribution.html): a secure VPN client from Sophos that allows remote users to connect to their corporate network, ensuring secure access to resources and data +- [**Stonebranch**](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/pages/799545647/Licenses+for+Third-Party+Libraries): a cloud-based cybersecurity solution that integrates backup, disaster recovery, and cybersecurity features to protect data and ensure business continuity for organizations +- [**Tablecruncher**](https://tablecruncher.com/): a data analysis tool that allows users to import, analyze, and visualize spreadsheet data, offering interactive features for better insights and decision-making +- [**magicplan**](https://help.magicplan.app/acknowledgments), a mobile application for creating floor plans and interior designs using augmented reality + +## Databases and Big Data + +- [**ADIOS2**](https://code.ornl.gov/ecpcitest/adios2/-/tree/pr4285_FFSUpstream/thirdparty/nlohmann_json?ref_type=heads): a data management framework designed for high-performance input and output operations +- [**Cribl Stream**](https://docs.cribl.io/stream/third-party-current-list/): a real-time data processing platform that enables organizations to collect, route, and transform observability data, enhancing visibility and insights into their systems +- [**DB Browser for SQLite**](https://github.com/sqlitebrowser/sqlitebrowser), a visual open-source tool for creating, designing, and editing SQLite database files +- [**MySQL Connector/C++**](https://docs.oracle.com/cd/E17952_01/connector-cpp-9.1-license-com-en/license-opentelemetry-cpp-com.html), a C++ library for connecting and interacting with MySQL databases +- [**MySQL NDB Cluster**](https://downloads.mysql.com/docs/licenses/cluster-9.0-com-en.pdf), a distributed database system that provides high availability and scalability for MySQL databases +- [**PrestoDB**](https://github.com/prestodb/presto), a distributed SQL query engine designed for large-scale data analytics, originally developed by Facebook +- [**ROOT Data Analysis Framework**](https://root.cern/doc/v614/classnlohmann_1_1basic__json.html), an open-source data analysis framework widely used in high-energy physics and other fields for data processing and visualization + +## Simulation and Modeling + +- [**Arcturus HoloSuite**](https://www.datocms-assets.com/104353/1698904597-holosuite-third-party-software-credits-and-attributions-2.pdf), a software toolset for capturing, editing, and streaming volumetric video, featuring advanced compression technologies for high-quality 3D content creation +- [**azul**](https://pure.tudelft.nl/ws/files/85338589/tgis.12673.pdf), a fast and efficient 3D city model viewer designed for visualizing urban environments and spatial data +- [**Blender**](https://projects.blender.org/blender/blender/search?q=nlohmann), a free and open-source 3D creation suite for modeling, animation, rendering, and more +- [**cpplot**](https://cpplot.readthedocs.io/en/latest/library_api/function_eigen_8h_1ac080eac0541014c5892a55e41bf785e6.html), a library for creating interactive graphs and charts in C++, which can be viewed in web browsers +- [**NVIDIA Omniverse**](https://docs.omniverse.nvidia.com/composer/latest/common/product-licenses/usd-explorer/usd-explorer-2023.2.0-licenses-manifest.html), a platform for 3D content creation and collaboration that enables real-time simulations and interactive experiences across various industries +- [**Pixar Renderman**](https://rmanwiki-26.pixar.com/space/REN26/19662083/Legal+Notice), a photorealistic 3D rendering software developed by Pixar, widely used in the film industry for creating high-quality visual effects and animations +- [**ROS - Robot Operating System**](http://docs.ros.org/en/noetic/api/behaviortree_cpp/html/json_8hpp_source.html), a set of software libraries and tools that assist in developing robot applications +- [**UBS**](https://www.ubs.com/), a multinational financial services and banking company +- [**GAMS**](https://www.gams.com/47/docs/THIRDPARTY.html): a high-performance mathematical modeling system for optimization and decision support +- [**M-Star**](https://docs.mstarcfd.com/3_Licensing/thirdparty-licenses.html): a computational fluid dynamics software for simulating and analyzing fluid flow +- [**MapleSim CAD Toolbox**](https://www.maplesoft.com/support/help/MapleSim/view.aspx?path=CADToolbox/copyright): a software extension for MapleSim that integrates CAD models, allowing users to import, manipulate, and analyze 3D CAD data within the MapleSim environment for enhanced modeling and simulation +- [**Kitware SMTK**](https://github.com/Kitware/SMTK): a software toolkit for managing simulation models and workflows in scientific and engineering applications + +## Enterprise and Cloud Applications + +- [**Acronis Cyber Protect Cloud**](https://care.acronis.com/s/article/59533-Third-party-software-used-in-Acronis-Cyber-Protect-Cloud?language=en_US): an all-in-one data protection solution that combines backup, disaster recovery, and cybersecurity to safeguard business data from threats like ransomware +- [**Baereos**](https://gitlab.tiger-computing.co.uk/packages/bareos/-/blob/tiger/bullseye/third-party/CLI11/examples/json.cpp): a backup solution that provides data protection and recovery options for various environments, including physical and virtual systems +- [**Bitdefender Home Scanner**](https://www.bitdefender.de/site/Main/view/home-scanner-open-source.html), a tool from Bitdefender that scans devices for malware and security threats, providing a safeguard against potential online dangers +- [**Citrix Provisioning**](https://docs.citrix.com/en-us/provisioning/2203-ltsr/downloads/pvs-third-party-notices-2203.pdf): a solution that streamlines the delivery of virtual desktops and applications by allowing administrators to manage and provision resources efficiently across multiple environments +- [**Citrix Virtual Apps and Desktops**](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/2305/downloads/third-party-notices-apps-and-desktops.pdf), a solution from Citrix that delivers virtual apps and desktops +- [**Cyberarc**](https://docs.cyberark.com/Downloads/Legal/Privileged%20Session%20Manager%20for%20SSH%20Third-Party%20Notices.pdf): a security solution that specializes in privileged access management, enabling organizations to control and monitor access to critical systems and data, thereby enhancing overall cybersecurity posture +- [**Egnyte Desktop**](https://helpdesk.egnyte.com/hc/en-us/articles/360007071732-Third-Party-Software-Acknowledgements): a secure cloud storage solution designed for businesses, enabling file sharing, collaboration, and data management across teams while ensuring compliance and data protection +- [**Ethereum Solidity**](https://github.com/ethereum/solidity), a high-level, object-oriented programming language designed for implementing smart contracts on the Ethereum platform +- [**Inciga**](https://fossies.org/linux/icinga2/third-party/nlohmann_json/json.hpp): a monitoring tool for IT infrastructure, designed to provide insights into system performance and availability through customizable dashboards and alerts +- [**Intel Accelerator Management Daemon for VMware ESXi**](https://downloadmirror.intel.com/772507/THIRD-PARTY.txt): a management tool designed for monitoring and controlling Intel hardware accelerators within VMware ESXi environments, optimizing performance and resource allocation +- [**Juniper Identity Management Service**](https://www.juniper.net/documentation/us/en/software/jims/jims-guide/jims-guide.pdf) +- [**Microsoft Azure IoT SDK**](https://library.e.abb.com/public/2779c5f85f30484192eb3cb3f666a201/IP%20Gateway%20Open%20License%20Declaration_9AKK108467A4095_Rev_C.pdf), a collection of tools and libraries to help developers connect, build, and deploy Internet of Things (IoT) solutions on the Azure cloud platform +- [**Microsoft WinGet**](https://github.com/microsoft/winget-cli), a command-line utility included in the Windows Package Manager +- [**Pointr**](https://docs-dev.pointr.tech/docs/8.x/Developer%20Portal/Open%20Source%20Licenses/): a platform for indoor positioning and navigation solutions, offering tools and SDKs for developers to create location-based applications diff --git a/docs/mkdocs/docs/home/design_goals.md b/docs/mkdocs/docs/home/design_goals.md index b80551fe..b3a0b2b9 100644 --- a/docs/mkdocs/docs/home/design_goals.md +++ b/docs/mkdocs/docs/home/design_goals.md @@ -2,7 +2,7 @@ There are myriads of [JSON](https://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals: -- **Intuitive syntax**. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the [examples below](#examples), and you'll know what I mean. +- **Intuitive syntax**. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. - **Trivial integration**. Our whole code consists of a single header file [`json.hpp`](https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp). That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings. diff --git a/docs/mkdocs/docs/home/exceptions.md b/docs/mkdocs/docs/home/exceptions.md index a0fee9e3..f6e586c6 100644 --- a/docs/mkdocs/docs/home/exceptions.md +++ b/docs/mkdocs/docs/home/exceptions.md @@ -6,24 +6,33 @@ All exceptions inherit from class `json::exception` (which in turn inherits from `std::exception`). It is used as the base class for all exceptions thrown by the `basic_json` class. This class can hence be used as "wildcard" to catch exceptions. -```plantuml -std::exception <|-- json::exception -json::exception <|-- json::parse_error -json::exception <|-- json::invalid_iterator -json::exception <|-- json::type_error -json::exception <|-- json::out_of_range -json::exception <|-- json::other_error +``` mermaid +classDiagram + direction LR + class `std::exception` { + <> + } -interface std::exception {} + class `json::exception` { + +const int id + +const char* what() const + } -class json::exception { - + const int id - + const char* what() const -} + class `json::parse_error` { + +const std::size_t byte + } -class json::parse_error { - + const std::size_t byte -} + class `json::invalid_iterator` + class `json::type_error` + class `json::out_of_range` + class `json::other_error` + + `std::exception` <|-- `json::exception` + `json::exception` <|-- `json::parse_error` + `json::exception` <|-- `json::invalid_iterator` + `json::exception` <|-- `json::type_error` + `json::exception` <|-- `json::out_of_range` + `json::exception` <|-- `json::other_error` ``` ### Switch off exceptions diff --git a/docs/mkdocs/docs/home/license.md b/docs/mkdocs/docs/home/license.md index baef2f51..391d77a4 100644 --- a/docs/mkdocs/docs/home/license.md +++ b/docs/mkdocs/docs/home/license.md @@ -1,10 +1,10 @@ # License - + The class is licensed under the [MIT License](https://opensource.org/licenses/MIT): -Copyright © 2013-2022 [Niels Lohmann](https://nlohmann.me) +Copyright © 2013-2024 [Niels Lohmann](https://nlohmann.me) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/docs/mkdocs/docs/home/sponsors.md b/docs/mkdocs/docs/home/sponsors.md index 9097049d..7e3ef028 100644 --- a/docs/mkdocs/docs/home/sponsors.md +++ b/docs/mkdocs/docs/home/sponsors.md @@ -2,6 +2,11 @@ You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nlohmann). +## Priority Sponsor + +- [Martti Laine](https://github.com/codeclown) +- [Paul Harrington](https://github.com/phrrngtn) + ## Named Sponsors - [Michael Hartmann](https://github.com/reFX-Mike) @@ -9,5 +14,6 @@ You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nl - [Steve Sperandeo](https://github.com/homer6) - [Robert Jefe Lindstädt](https://github.com/eljefedelrodeodeljefe) - [Steve Wagner](https://github.com/ciroque) +- [Lion Yang](https://github.com/LionNatsu) Thanks everyone! diff --git a/docs/mkdocs/docs/images/customers.png b/docs/mkdocs/docs/images/customers.png new file mode 100644 index 0000000000000000000000000000000000000000..e122f508954a8d6a3ff7ecde6817c43dc9c69115 GIT binary patch literal 1184114 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
  • T5;dZmr<{)ZoZZv@`xn7w`h+txD<8xFs3{vE)Aw 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 z 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⪼JzArTYx82;bZ{8XYqOUl_zjm2AC1&;fN143eW7Tdg+xnC1@Fe$J zj8`1Ye$2mgyMOt~y{#^X+>-KbLOHE~Xi60CcNLrI zd?@qly$3OK=LkprKFPiHuyaFaOiLw$?j|;Ye!;NY(Fa#qYR5SG9Q(gWZ9|Oj37su1 z2Sttqgvc1`JPkW^$>U6n`kyb+1=9;=t~qk@%|??3SL2`w*EamQ%k_Oj=Gk_=KZ0jm zvV%H$dreEUt_Jgj+`j%SS^VFP8WkILsp+qjy)|Rc9zQ0$*26$>ukYI}KevUmE)AS5 z`dxhgkJiL*r%ugjs`>e9c8jxXy71!guR#G;)tu*ktxI_Sto`p|*I6G^pZ#1qJ^omD zWw-!yTypeJ?Rdivx$&=ee-fXk@oWCPqff*?hdX|(3cg@*;mzu4tkUbYCdId0xZ7YW zyhP>Lqc+FR9|f=L>hh0G>YdHQT=DXlZpIRULm63;e6lm17ll)O+$1W!%$vH+JS~{#v^) zk)!)<{|3qO1vL*sLh64gn_OSx>hPkH!{&ogm$<*ntDW~-?Q1tS|9eo$)Uvws*8Z)b zYHP!OpL0siU7EP$VE?n?zcS1Z z6_kq(Zavi|w&apjDBsNX-Z$4vMSCmuFOf3L*7)JgxHYlRQDUl8r_V3zxAMAH?g~s6 z*KRZSzqIuKFWAts{POg|%?`(_S&dhJhOypXN`dA8J5}X57)Wx6+I)>v3l+D zf)mF}m?z3RcXKFu{>Ig-`s)OI_T9@+c*z6#H|b8EJcvWCj4+6aMn+_x-$Imxs1S+i`p$$4-~ z$E*oCp7C89wf7f@#}qUgDr;`m1KsOU*qkZl%3`~8qsJ~Y=I#~R{(HCoJpGC zGG%|$Bd*3fj`I4(X=e=fPrbJ6dTe1;alqdzb+R&Y3zto;S;r$|aX}^`XYbtJFGm#j ztxB#A2-&+eX#4lG*J8h)yHvisUguImt^W-pA6uKJH_GSUwO-|a+vL^+-#cZ;E*#yb%u{@B3`L4zwc}R zj4DTsx*u2mJ7>1o|NHgPxk^@p4LoQ_P~@vzKXX~&&jOG{@% zg<6Jby8oCy-;eLnKEF#OaU$o8@9X(LoS!~D`NM}giD{z#FEh8#EWg9qx8R(Ylf{RI zCk#$+uNR+Zu{L|VZ~FA<=`8bZMZ50`R$eN;(e2V-qm|l=BErI^U0lPXd{CkJh`eBp z&c_o%$NIM2d3R;w>O%9p^{$1IzBR8Bo=R@2Nhmx9jgQO`)Js3UO(Cb5<&VpcDV+|z zwnqa6;#Pjx`@WX{;>9m7eGV-t*uC!pd*fwJCbsvsozgkiI}e*WdM{1e*X=U*%@2u? z2|HBRvgv-PJGbb}(!kI6Bju;eKYM%GRcqlHYSYsGKH9NPV@B!?o4IlIHVMinGMpx` zee?R`^|AjIYsLCmv#v3Adhn_gpRwoqxX{opxU3#Tq^}%<`lHO!2{M|3c#Wz!`WWqoIwUygo^j^8lZXQq@>c<_NqPIIm6XDyh0kHhZLl8c-7S-vlMepH=Ebl*u`%6E8&ru6= zt3&>;V|i_t{PfgRc2{w|tC0dZuJJy>3=bl&^)Y26D zx%Tm#6VIdO>57EBPMDYdxASn8Ov}V)md51@^WwJ3CckWZuvvF^0q53|>G{tVwrrR` zO{~A?N}bx;e7+ z+VV?zde4J55x*9yG6yW{NIt|Q;MgsgxFs#Mg*)fJVAZodl@c0O$qUYUJh-`OVr+o# zE-z75cCXdanM^yytiA3;#J@VWYLVBPbx-#>Hn!-f^(M|%n{fTwk*fFV!R6eno7ef3 zJ$@CadE&IsGl`OGSyw$?moo2Puk?7wq*81BRgKry|EkWqxlFEoJsy-M6plI(s|5S@(9CLhcs<Z=Fh%1YNp8j8rRS%vNi%8B9^877vV7ZI=Jel4LNvSipDn00Y zp`H?wR=s4cqUMqEdzHrpW-fjDO5s*te!L*l)(5YG?7nTg?x1ZmhE%>!kH|ftWHpTv5Ws5lNt>%bKtk4e5<61RYCA3s?#k;u& zcPv@Lvg=BJ*Ye#ecBXN=gmV6QY4_&;{CAPj@vrt<6VGp2H!9js2RkvZ>R(cpduv-} zPF&V*zRGRy%;x=aYgaS$vf?u1zZ(54IyEhnUG{2p?)0C^PZuhfEZ7^UrI`@FdB(m< zt+~hc`6OrVo4d}@An-*Fj~t6M(=DYlv3|t?Y_k716kjusFWYbaW8e3EIiD}Y$>lEk za=?H2rB(S8KBhl02;%p?``YR3lwywn11+uW4UZRx?s)w#Qlj>1iH^>Vj<>AQ0#ZVq zXG=wI?0djGXQm;?V)tG*zeurX^&2PnJjn2ovt|`Ns#@{oySCuZ zo1Ip7>O7TwbxyB|S{&|l|2E%w8`Es&&Bc7_RV%w&B7RLi=f~-GZJNWCkm-qU7_vf4 zJ&o@sA37s*F6wyuv3ce1X78E0xq15zj_FdiZ@4nmg^pXGB^9Jj-mtLul zyt;#Vbu`zGXF_|nvTV4MB5+ObROIg1-aWGncc`+KvmRGc)N!+x_^$Z=Sc~CBXMwRa>`ZFow)r?4$ zk28N~6>v*x{kgTRo?ml8v-sMrZxx*Q_lwnRcH=dgE>ZBUC;z+c!!+NNm}xe@l~%?7 z6#sKd`@)lDoiEs`*q3RZOM9f>Tel_0SpMDaX5|Gfxw2qSh`(X3YxE00 zi`Q#5^Z2@SF&yfi(w`xF=~?K7_urao^?UEO*Z<9K37#Ep!g$rUggMhkUN7U#&0XGs z$#-@XMr_NOx$)VjYti|M|Ni`BQ~!L{y<}(hx}9vsX=e`n`1p9Q*pD2$eTAX!-0277 zqpp|VuQeCbiAWG}xmWxBuJfnxD$YHpm@Xda6h6Co&7aDbs&Wy(rxh=nmwP@U_-yE! zXoFVkvyv_6xr}bh`1jf@I&{NvN&UMf{f$-jH*I2)mp@67{(Syb`PXQH!Y2}z+j1V= zQDHu7G|iIZ%#DCKg_g{X{QHiyd{C&_P$!?add0#8DFSwPHZVJ%RPf>XdicVclHhG? z=l{HTPyYOkNf$gTy!h@|hA*u8xi*8#lKmg=?Gp@o&IwLhe~q3n{kCh?){sAYboNfU zLjP}xFRC_&%?`c(D{IH;eJ;fgOn+WaS1_oYAo%K0g2C-(X34cL&rLS}tNH0cPqpbX z)|)3U?oc-r5`U|GJUW~2!TV_Kz@xUhGntionD**%iL_sspJ^}mZ`Ka}X`5c(zZKe? z^o#G?^Y1BKEGq2g$}?xJ_$S?O)5|7kV0POnHeWhO$0vOV?z3ZM*qKeO{mV zj@c(pOkv&1W>mF$XZe(?I|7}`nU8MeP0?dZus83mE&Y1KciFo*qs7h^?}TQCOBhT0 z&Z});)0+QNsB(wLk)m5p>$6W6|FE1P!h;pM+y&n#z+pD)p# zG0Q1Gzt^C%`a{3YWlssOf?Ix{ugn*nBD~G!eDDq3lcC+Gg;Z7?nCL0t6~BE_^4`v< z+b@?y*KTUM7W}C_AYff-+E%-*W{dU)<~}kE)^2$B-oH)v^}+*78yi2*^KUiT{P$#= zZOLWFhtJ!xmh4_-XyNx^d55^Mm|Uo5m1C^8Mw@{Bzl5iHKJ%yaYpk;leIu`Vq)jvW z63>zYf)|4N6FDDRWS@%o^YUl^#IuDVK5pA*SG%qdTN)?8qQBd}WVzL{ne$B7Sih`N zdeq&Te@e;>`Pso zIWzZ66IlEGThKkOUu*vyO$fWUOQm&3%1NQcM^%i?xTZ0#sg7PYxATJc{~O;{R#k;< z$The3J0RaZ!AmMct)`}#kL!AT{a(Z4OYHLV7jAy9vbOp#ulWzPlQBG z%3k~J--gN;|2`g0R=ej@Ciw!gGvOO)Tf z`=-~He*N;OTmRQSyC*-tUXO3*+c9_R-w7_uFK}DOS2<6vdA{bCbLs26zcrsN5_3QK zc*)vb%8W{LbYy*0apJ|l$g?Ls(m1AuJ)AVBo{ZR5r};>E zv0?R{6fZp{=hGQQD-yKD-rnw)j_ zU-j<&j}OAL`s8lSPg@$Z;;G^>orP@zm0tuxxTP%mCyHOw+VUuJalhU7!_OCdJt}0! zC;$6IQpTFBvq2jkU%mIX`u?1^=J(5O|G#NhjJ(*cyKU1hPGR>g31>E>>BKv0K8fV~ z;(GJuy33W*w6~ciAD$<0Mo#*i?XL@4_kX^!HvWEWSl8xa=MC#m@z3mZlu+0lq@H=9 z;)28^gGmK;Z@YyGHc9EYy1G7#+%fNc#OK^~_qg+g_0;e9oi{t7veWmr_BHqDjr*$k zof|%fRiB*be_w9hdqI)wj<;_`xA!Z2pRCqdro55GIB9WURD27U(Y_@!SAD-^5}L7_ z*Lpvz!#ejrg5Ha&bviS|_}pG_=fJ^AkHZ(gnWX2utz2RGc_F0NWXYucU<<{|e! z%V$`XiwQp05UO|Xls31L+NW}0ve2Q^xh57E`OcxiD-zP3v4W0}m@(D{8C%x3=4>A!csy<0c^!JKv9nr>x3-ugH1 zKEI?9%dS3?8#N)*9;7_{)tg^)nB%=?chqCAk1XB~Gpr{6xTL!)$p5I|=9p6oyYhCw zHOv3EsQkt5jHaZP*FllHayF#i_;u^M`lod}S8WZrwsMYZcW#QbkHQ|2OTSbf@A(o^ zvoG8Hk%iv;xD7lHQxsSY?yXR4_K|tI_`#!}7ES5<#11t#&uCh1Q(e`RTkaR7m3GX1 zQ5Vmi?cc)^{R<^ox5ifF`Ws%q!WJ{ze8<)Q>zDJXaUZ(Q60EyCZ{C`{+Bps`I!qBu zX0*L)@K~pB<9}I;WzzA3>px`vU_I;Pd@+56?#<>CPkhWGpXavwt===|zR0gT+eLYo zu2)uQ`Ph6+VbOn%;3>@dQ`f5ZyZ5`G;I7Z1$shWetJc0;RD0o1v6l{;>hTAE z5|{qSDK@-!`)-e`3G3VwUrpxu)SojrJVQj;yfJeU6Q}&4>lvKE7TNl`i)-(R_#Bj9 z_g#0>Vn;{8WgO{_5AUo$e1li9Ms5F%Goe%OpYYw#_BxUG`Fe>u-Y0UWBwaWjcL_@R zwJpxkVf{Jz<>~UjCtQ|@G`$r5+Go~lbScDagWcZ~p?kX4O<0zGG%2J?M{<8({uULN zIJRM?)}P1jxz9yeRewAy=AI}g*tgw$`lG5WxAch%*T<9;vTf++)Q+8Z;n$Nj{D%^b z>~IyRU2uJ;fOE)6U&R7_n;Yi?O;+nFD`amIPY#R}{-k_ohS2?{{Md5E`;&R~U#Avw z-dPJf3*d}$Lviihdt7%u|MtJ2ufkPaF7o(TEc=A{Q+u}VKJ{U}>+HgBEe9nISh)o` zIB0|z=EknSxr=}27el?tcTbl1iZ3Z`3;ncq_1b#>d!}_FJr52Q>fGqN{H<$4X~yrf z-}?XFyZC};FnkGJ{tx1TKDaVq#_ z?d4w~Tf^;dZTq&(>sG6Od(+Fy%cVEp?zjJEVfW{QbMcK`uh;F~a;Y>TclN(I#pev` zdY5u)YhKv@_iaAt#DRt1-^w04bL>dX*SF>Sf6JCg1PT~OsU2H-^7rZZf0sNa?fY`c z`^RJX{}~B^dX{`~pu`)!psKADEq`>wnr|K|a_ zTGy-jlP4!1TVEsf@8|h?wM!R@IEwF@+aHV(I&U>4_tut^2F;=Cd~&n)aj+@v(!R0l z*D`zAdDHdd^R5ZZ+#EVT%Hl?y!HU*&pBJ;=)*n1}>|^aW-~9cz%lG|!Jy+H_s`$$N z)6>>F+-flS7CEUr=Y~zm_VZ@;zx|$S^Ji{5y=1S-m8a)Df8PEYP*|mPIdSp6g?zK0S5Xcc>#*Q;L{q&pc+5_;_G!act)cy3I*-w_FG zF@Z-DUK(WN%`|i`&M5s7J!P_Mka?%}`M=5H=Vavj_b4X%XxCfLeJ{R^VXEsFrpS}M z$8;utD!Zg5E<4py>lPo6|KF0wGv^)Tx9+|(!+(FkPsv1yd2(HcLa!WNbY)%B*V!p` zTRtzJoV#uA4cp(R)@9yOZ-)PG9S_W6w%Zj`m6+wnt1FtD-f>Nub#MOeGc)*?-;m!Lm^*c9*P9(0 zYi_yMPs!Q2{jHst_?uhGL35N$gkMfjZJpxrYx>iFcg3cuv#;2rYy0eK=s7+9fHSjv zIBs5^5cgW>;mv-g(pxtVc^duOP^RiOjsM7jh~xFk6V}yt%@(~WpC117@%ydZ0?tL7 zW}JS@dg}ko1+$AMPVjxS{iglTL*I9IEaiLm;_~yisZ~45=lGmWnZtIXr$V1=ZSu4Y z-*VoR)vvi5-?FMw{!slj6Qjb{nVCltnSM_Eu-^Mtl@Y6^{VXG`%o%!zl8-nkT;ATA z7q;Z*+}NF*lR*D)s@+MOojW>?qt1@V@~mUx?OzN>~i;?8t>OVDc$liS2|?cr%S3a-su6c zVad0SZ7vs{Ztt?=y_fCnXZpL^)*X%v3bypRJ=G}ZZq=*2@RwCtk2W`@^|8KMa9}~c z)#3KbXU?xljQsKW7}FA#;5BUWIv#bQM0ovhbNzf7FcAC*J%{@#g%?xI6HgOhZLc{^6JZEhqfF=`!cMf41%K z8H+aGY0X?UJ8H3BUf-|lJ~w_}7HYA7>|x`VaP_F}p)Zqj+UW(=^Z8S zASvx0jbp0G#WOS;e+3ptHaUM;eeUnV8Ir9F|&KAs1$C?Z5pbU7Op`P)lU@>2HZ= z9yEU0|0W{!%i3^m$<>Qb?y+~c`ldgNY2(DY?VE*)Ig7VVuNCl>F`dCv(!H4b@`W=( zHD7f!*gx`5-LrD5Z0GU+JLmA+O{lvbp8i*7(S^@*H*fMtKX>#|Xsd+0WY1mGr!x$8 z*t4l!+OPjuQ~v98CkHnpwTtCHJ~ahR3F^r|y6tZpqfeY!ozZ@V{n2~blW&GQXL`k~ zGdJI`@%H!7OS>B6Z*LSAcJnLHNZqtR%{S3M*5{e+pW}U;yU)q5f0S$a_UZkL=F#fE z@2-peR(^ZWoAT4ECn*H`x7o23_&e=hufxpf%VrpV^vu+j`4i*}b4yRYIemTKH`B#C zHFZ7q3N!m>nnd1;n`XGC=dJlt!OIamLU*6~ziZ~VGk9ir`O+mH*)?VxIeK^f>S$%t zasPY#P+-el(3v3zLeF1X^!NAu|9!95?LIf7IV^tbc8yi~B1c~QeOJCeTO!rywem}U z!LIbPvr>!Q0OkZ^>;w>t8DRx%|Qc$BJ(^(|a|Q&+@Yh?nq_xj5;l~ z-K;l1PRo0i|F_v&CNAaGx$*x^y8Y*EhnH=9yK%q&)7`FZTh8tIbV~bJ$qI=BWouTw z6_aDjd~_pl!v+)kAIFbf%>S)(YcS`_GAwFc;@ncSDT5Cwd)G(uf4zD zD!Y5z<7Y3Q&$xWX{@Fj##$Ll6Zzol6tPdBg`*uM-V8e2u!|dwK*WPFRI_Io#`QWh^ zjxv#^x4m8GDc*4{ol$YJ;K(rn!S6k--yX^JmrI2kF|I9Kv`N%t-j|&E+t0t%m47+6 z@B7*FDeorl|C{@H`h%$~ekRMlo-2QIYlm&+cc0gMT_w-<*dKS{_RTR3vQp62l`xN= z*<^07bC~THzg>2bPSWBzjk+^d*~)J9JR;H>(v|kx*k10Xg?hz-Vlj!&XTSF+W$SJX zT3c$9t{WBJbJyg3$-x;CN8GLV<(7JENws?2m#?ROe)FvbhKk1LHsyS@|Nq(E&DrHl z{M*9V*wZ56ERL_m&qv9>D{1WKA-1XYPI9X$lnDncR{+l(sqVnE%l>f=f zy`VDRZJTWRx$^#Prks6B{MRm-Ji0B~{qbu@$}EegGh5%!k>Yw+H$!ZC|JLg5$=Q$N zth5An?#f+f$66)V>(=u;a^u^4^`*<>`RAWqDEYbfSY!9sRm*-JTe&WA#)b3AeBXaG zZoOM2bMo{vHKCuGPE(VX9*I7&MU{tzEwia`@>hd~vjyfGuE!+kD7K|Y2$(;N<%xeg zv+Mq>w!#xU=IeQSa^%aFPpd207}R;J@h3-L*&T-%!+)%+ z4dyucac_UqGJDqFM-S)83U^LSNzvSL&U>v~-HJQ^S|hCwU3NPly5e)YpN!vx3m!*5 zT@TzpH)@|?^2Lz9d@+aLI~bTYi7K%@S(ta=ZiZ%!WZlBY0sG$_*XVuKenas2VSNX+ z;<cx?}>gve*K(O9{0JsWeR^zcWSz__ST_Q{XrjiTn~R~Gzqz{^qMVevuu6T zHj(27Iy-lpPdd2HJWHike)Y4mnp+=N*;E&A_`0R`Mt}N&&+fbjA`kz1_^Vbl!qfNM zRg;;2B-b|UFY~`Al6NHV3Qu3c?4u4>B)7CacAxIIz<0`wNeWB$x6JlfuyATp{)KnC zb57hmz19AQ^QYfU#SI_Q>l9Y-3h(Ufskj(;it~SxQ62m4SB84KSa)^`O3apPchsC% zGWW`=&h@z-&ap3lUXNb(Iic$8o4xnt=QmxP*?G*XBe!_=3EO|cTQBbs+7p(id+77& z?TYG39E@K@C5$xgUUAQxE3>wY*+6ANW7V+*88y$}Pif#Nf7sg}o^a_zPD|j1#VZ$z z-PYXTdbL{1r8Ps`>`-ab-gDo$glwz=;yRnW%$+>1-*u2`*s^2k%Cmfl)BfEEEMPF7 zKd~kEclO5{ho(wM$ThAy#e71#s_o?Bi$}!6j@GZKH`)5>IFHvN)5fnIoqUIiKTm(W zXXRl5(K9}?R|~|-H|b|O{pr=sVPv)_VE@WR zitt_HGlF7I|Tto-!E`N7i4eYL;K{ydidZ(ze8zppX=_IdGH`P$9*bEEE;e~X@-viy&~brQ?#)B5}GoT*(a zcsoA9)P0Ix`zNIQXJ*jOSJ6LhE?Kko=1*O_)vqVF+2O<9-0htubN=7Rv{bQX4qm3Z zxWO#tkR^M?zPDu@OP;*EHuva{YhNopByDW$*j*oH4GzuX_$C1x$& zf1KIMcfYGAPJPtAQ8`FJ@?KR{*lm+}Z)5_#zL}`l!Tu?s zSZrJVoKv%7kA8N4`6aZPwe{1+tZdC|?^hnb@Pr}8*jY?E<6U=YVPTH!obJijPyV|8 zt~dEukKw+D|9)NHKdaRL^~|QU6^(276Q;U-*!FvN-D`nmU*GS1KF>KU?3$x*RFU5~4KSFC;Qc>U7NuOTdQ{;PLQ`ykSv`f!q{eDkTl zOIIv%WxsttYFTc))rV(MPKTDoXe>KgQS)EO?l`lt#nuD&xD?wH-rTlIw`rT;v1du4 z^e6A@$wiku+zQ-Q^-4Miw_H|oOLG1h*D~wehWM!WZ};cv?tc5-`Sqn);m`eLnC~R7 zmd>7de@0{WrSr}?En6~NUgYSm|7=tBZ}nY!XJMg+lUt^Idy)UpDw%7h;gOzBeGQ8p zo#k8;e)#V>796_u>^k|b+{ae)Tkm%$9?)0Q7H)pOi;sWl2mU3gi?+@d{Pne4z(;8- zXPJ=I{;EIgTci8MYkIifx+SYV1efx2ilG~couG&i~uUsqPap%|P zv#f0&@A!PLDn8cZw&*zfR?XX+J$J3{4*d8pHe+2}kCagn^Q2>kT(kN9C3$_0zI?8A zg>J>n{hA*4H*kFQyuLX8pJiHU#=?M3?Fq~FtKaLqw6nfNzIN#@rX6;=f6TnL*SPS; z8@W0uKMap{I`+Og=4m>A+2SrRd75{E$AN2>$upn2CwyM)FkQR5FV)`h zr1jIDWQ8<^h37ZbJvcSD`AB1Oz{aP-S44ANU5;5?nexWD#LbRx&2ItEWPSCs*OQBG zGatTJw>kNc$@HnbYKQA@G*}d0y|#O0@2v*i->Wy|`Ll*izmn)2DqObX<@4!2`y-g# z>`GOW6)v@`DfuB8zbWXG=#@DN2h;yP(!Bgeur5W&{8Q_iC7B+fAH79+Jx(uj;Y#LH zdt4w;d!KKq>sCikMF|1vBgPx~cFnUho_lQm8Rw^EB3I1bT2K7qS?i|PDkq`CcRg^H zTy1{ajLQwvPHEX#SRTE=BDCnYa{6Tl-Jkm*!_R!v&&EW$T{0Bvx5D7iwqlHemB>)LoD>1$st z@eX}t$S)-v^*Tk&aa=CUt~6!rsI31oad+A>ZGpK6jPn?~0t9~F-c`@?fFC$-S$OGNy4=A;*0?^7fXEV`X{d)rxqhTNZ8 zr>^;aNnO1|@mKrP`ifP>ck=x5<+i{1ZS=0$;kUqs$$pbPCNFradingNUn0u>XRHh} zQ-UfEG%&V3OjKW-`XI|mo8MQjcJjB05=!3F^-QIvUNRE=>{fW>$JR6PORuK{*Zw+m z(b?fc=!7plKDy#!Vvicxy=KINcweAa8K?p{r!I~Wn^p3m;d*nU2X5L_`h#< zH_YOnXKy5~tNZZG8K1)}7qgFU?OrJsW_WK&@1Bf{N}CpnfKc94E&;NhFmoYU>Y|59;-B*==`PI(c4}a4xzsQ?Eb4Tu^ z%dfU4torK0(>yzG*U1R!2??Du(zyQrod2Km=Z1fey7kY@`1|ks{`@oj|DT!fH{?m| z^;DFL3Qw67of!U5PegV>XBgL7n?D~8r=9utd;kC4hOzo-YmUu3bME!-mdItkv(rp2 z|9@=1uiyIp9_D_#U;B?aHGbOlY*uzpgV+CmD`oblOZOI>RqUiEB> zel+{}`yXc($-3dd;`})N*=N-o7cSeb-MGAP+6;m2*?Lmlx8K*ZFaG=}&@=bJJN9*o zBKExe-G_IrWz|@(cc^D#vf+|dBHY*49{P01H)8X80q4b!4K1zP_w{OhxUu=XqJE}E z-tI4aYod2@ez*P2vQ($pAgM^|mBu=)lP@0gPF7g;KTmh{(WmMB2Ts_?B~=@6e0#;L zxP?pV^*+b@Z+j6Xa0vROVYUNl=|ZGAw< zy#`+E)f;m2b&Z5#cjP3^nJ5vq@6>5IC!hV_j6P4>AKKDeB3{x6o}0(lN?4tI37Cme4K z`tkSvY>pXo{MxuoS+h;waYplH9nV?*>XbZN{e$YQ7X{w99{F}u-1SJgk1IEyyO_oU zc^Thx2lGsx_d1-L`FwVcpVSVy$i=^dzB(=l=HU2#U1r6@nOAhZLrhJ+KIXht{brw> zs9am7Guwmt`R|?VFKO$0_qtbQb@jg5t8H&y_~Py)nWf+ALv?G*ezVMu|KDP9#>4+e zw{)3Ow28^NABiG!?5dlRUmmd559MUDpOsV2yL0lgnaUUTJT^4ReQaGcaZ8Cwp(n>D ze>K0UEp5NbU%vS&r!x0zY>RuKfNOTwmb^-Sf7z~M+;$E>-R&1m{$zeZ#!9Sr_w$7- z9|W$l6;e;0de`yqjym3@$Mk9ok3Uy7s@)N$5qjXj$t&}p{tP@V-R+2Gk+Fmtkvqeb@$;Pp+mkldMYBF6ZN7(K05!`codTI zWm!P8iKW_{-%DcBHYnFN-POy9t+gxtk#T&5Z1cDBcFw8~&9^Qtay;KQ*VycG%(jY$ zx*?Iu#jyqgk3-HxwlAGFU99=x_46hX%Xj(CSpMxw=Hem)W&8H?uU!4xUkNwQIC!fy zSc$3Nx=gwZ_dGYo+cn`j>N5-v{CH(Mvo`FW&fMvfm;3BFePR1cS^v3iOI#9;Y`y$5 z?&X*BCsQvyFqySkEPB4$e$$;NpYU@`k*LWIuz$ThNG9g>HH+h)J(Has|H$mD5LxTM z6RLUq%zS(K`E|cmM(U?1hD7c7Rr~d7xb&@6CfWIlbzdy+9_lpHfA(f>`Mu0f0={83 z3s$e&b?QPzZ?taNu8i-OjKt>prPev`}w@L=@zf~orIQ0Z|7|IDf7Bo zp7}?F^A`R6dd?2qd(~#Bb;o|G<-ESwt=DLB+PgbD(=KHn0+sqcPBRaSUi23ZbxHHS zaIHm9FeYkhl#WTEs_Cb*`E{2wzG&{7vEOTTQEpXq-E{5y;u~W*ZnQ>m&(@RPvY_^L z^nD|H>*y;v|GNX1pJtoMZ2$Ys=Cl5{uYa3;cgh+`56{OQ(J=?j*VRrlTh`>$B7ZvJ zw%$sG*nN&_N+$Psrak@Lcz)8qzzJI>rq1}$=YBt3cq4axj#PE{B;k#P-Xm!TlR-}|IcT$-3%Op(k{hJ`L^}U#MAs+&(wJ|S6J45|M%m# zz1g!}+lzgL4p&@Tb2II*m~hy#J*H(_x1HFs(x|&r1CHr=QoN^A{fb&N4aP(XsKQclN9q`!8v2OLITcaqav2+V|DV)_tm9X{m1f zdQymW;KM^VCmZ~E+PY%JQ^p>aS8j)Hvaq*5PIgzmSb6`-m5vB6uXVATrIpotTkTzy z#Mi`h^-NLub!~1F@9k|0Egrc+Nlf=*KPZ~zX&u=byw6E3U*X^Tne|B@C*75>3b-`& z%8Dtvcl)}mvlwo&S*|FlSit?1`}Bu={xgmtD*Weiw#OFt?OLIimT>yA)uOM*)_LYm zzFoTQ?eA^-t-bD>#ofLy_S5##m)y^{j6ON`fs{+1Tp-dDwA(tiBqmC6SSm+oCWv7<2Y z%8&C(h9OtZKNc`qA3Fc+?~KrvaD(sO6VqjaypOYL&0XW0qn+#2a*cgykdgo6nwyrg z&x^9^J~l9LUh(i$`dG|wnxt|i`9vK1*S+#hJ0q66ojNq(TExK*3pkdmHB>DMy<^jC zVYhwzo5O!L=@(SKxOpQyyys|W_J_#3Y;TIED^8iEcIB|Zi)xz{9&bfO{;E0dk*m~Y zE;!rpS?1aLncnIPg4~%{d&B!~b8sC?|Nm#Xg+aC0sri+Rb@@7Nug~O|uw8g1_PoKE zagBh~@tsol10R^5WnF9N_uN9F-S?4$+kTy%A9KHc_&j-j{M^EyowEYI?%wZWT6tin zeJyX{-^)L`-mty9Si6v)X}K|rN%5kSHG8de`=aW2V~Y8{{m!WUcuvMpqWD^#i-K^B ziJG`!;Ka1EpKSS0gcRk~s5nVwX&e#iwPh1qo^)#>72uj85|4Z zKiqKSI9bK9v3dEYGeUI*c4_iUyQiNq>Z#jV7KxlfT!vziLX~ zZ)R=%a^F^tB^P!y$(v4yP5Jk0<2*%X{iK;&o=wsCd_~N7Q}*=Ex}d*?rsf|~@2`6H zjQ{qT@{11_K9icXivQDj?adE-ZSpUjH##o$^KePAKciu2mi5YcG;(rdFF$}7xL=U+4MxjrYg@lvv-AnxL0QCx@jhj{|XnT z@rhkN`R(5#qg@L#-L#&^Z?QOdw#4`3-c1X3^qo=(HDSElZ` zq>e6}aztZivf1Kojc0B?+LWboQDjGVt>VdF229v1c1+4%?lJB__8o-(9eIZ^rhZJG-9GtL|yKIZ4%$%O`NucB$PZ%LY~o-zUw_XBr^#tgPfb0x zXl>n^`2F`Xgws<~CEdQsmfuO7(z3)wW!A7l{?7=T9DnQ3 zrE9{6Q;zq^UfEQAC3|-4B#AKQ2p^%T>$e=wZkl;)j$6HsjQ;L7MvF7GBUaB>S(*I% z`ms!Yombqfx}PRJxOhlMbMA^28kgP69KZTz2U;2)6H$4(*fsW9ZEj7k*6s;ip34{f zk~y7lTa`CCS3oNI)|M@ro(~)jUc0(ICYs++qSjoPnLBrj%=K;Ww(;EmGS~KY$=sus zbN59qBZE7h8bHYtDiTiY_Tv)5)_wCpK&ZT^=X@- zj;8tA;z=2oqgE&!6hF%vX*r>@nssKtRf%AmwdG}eGy83SxEox37~1j9xjepu``l0N zV{x;3Chd~yOPqMc^q=WG>s3>nXJjojNDhiHxECGU@znm0{hhkIIX!9iZ`a#3oS&w9 zc&5vbZ*TRFG4tE^ojzwFpL~8^YpeX_ONZavA8T;jc;%Xp3A^-K752&NthBy!+^=4d zp{tT|>_W>$@$Byxw*SyLGso;;O2+XUg3s=)P02ldY0q@g9%0dteNETmg}3z0RXJ$* za>=P}*KUTzpXE{sG%cU7PAnv3*M`L#q*j}6U$ARh%QXgb{ zH9pj&b@t)zwpnjYc`sezb6}AS*5o|9BO!-l=5Zw^%cqhzHXhhkyGm-J`q7nF9}2E`~FI|stn_A71z#v^ZKYeKS@i%YgUYu z>^@ET$!CNYdQSSYywIRP_1`o>$u^^3{!5Gm#LtJ#$lw&c@~CsUYvld?WfSdtAC|3| zrFT~;_pjiW54#uS>7M$2C8_qU-o?`=X)Kj^4`=l zK2l2B^L$M*YrEXZ_TG#4#GP~}ZSmH3(`j|@zCWY=(((CDr|${<;P+lGdEU+Bs=0*I zrdLZ|D)6dVE5C`o-xAN^rl+iPnDyBFT`oG#Y6_}Ju92pGa??D2OpJQ7aQ=tbuW=@F z8j8wYr#eK^xOcy?H+_Is=w_~Yn&yT;~2N}lTrUR{-Y zx3*}ie}<2ilX`6buRo_VlD2X6mR@y}IO6&&C?Lb+j%n(O7(?-Qru!dCh4w9T&0myr zRmWxCZx$i8CmT%cReW}dofTehR$5e)+uEAD{2u#`Ilow3k4Uc;{ui@&QG0v}i@!=k zQsU|z%bg4kANW%km3*%6S>SW``a{m*cVDz_Sz2mU@Jf#-XFk_2so*l1GV}S9HTTW6 z&)2`(clGu5qzJX+wN*x!c$sJXi!B#Ryg99O$L}uBiie9szqIpwS#Gxb(DT=24;KH7 zPm1uXfAh0Ibf00m(JxoFMJ*-`?D4;tCjVwvm>`xhX;IM$hO&jzEM7e>7FV(}n!zPf zC*i6%@pRe~FLQC%t-2LIrndfgpRFc&bVt@Ch5E0bf_VBe4s2gPyOFKz*k*3CgujC+!i=RRLJt%|YuC zJxMlyE8L~sKBsGMPdKEX5$dfyaCHd1`?q8afyQ_vxwqEvp!gVpt-6y8M`}X#B z@9jPQc0XCB$5pLd*zWZ>yhh<-@zSZ;m5hsYJN9Wu?a|XbuA;8)d?q>b&OXqTdHwny zZb@9-eXAB2xlY$tuX)nvUlMb%By^rh#r|Jc*GomM{ggAenBCcNOSI;fj(@99U;4I` zb4>}CmjBa^F!S_tGK=r5_+f3h@48i@Wbm|3 zt%ZWSC*CgaQg&oo9jV8Xcy(21+s`cDx2xix%#V!Pamx9=>ANJ`y3#kx^o_r1g`bI@ zX)sY`<{979Hd~sG?J_wat{21MIV!{&*tz_lLRpbv>QW)i1FGGGBD_I$^2aaroLP-{LUlMTb_j zhPMCS_dR@0<+*^E+Os-5{>w5`4e!59|9-A`f8U~6Y=6F=pMUt=U(*xPa}VuXctrbb zcH#Gg%5xVlh*ZXW2o=0nap1|rSEuKS?kK4-+E;tsG)>Jm+JDznx0*uD!QdLE4`XOAZU8Y zr5zn=M}oIl&1m1m@r$2tF`I+H(p8>nU&WG+`z){ZNMt_D`fb^(>J0)fMDomn?*HA= z)UYgDSUp>1`PrWj_pJ_aH@?HjUwO=9xtWX41dfIKUiRt!$T_!3Xo5S_*@RP^W&xA- zYddDTUYR=c=d}a!zwRHc-DY}sP5_%v-g3)Y`YtOi3{e;`*!fDIwun z^=e_J^?7u4tMo4jq?M>UVA?)mnuU+-Sc(2DG5+x0jk z?cmQ~!J>mXF1*ssKNJt2*mKfi;f{jo>@M*~>^Qy{usC^qv5&c6Y2RaV`fzLCr%l-# z)(F1U)H@oz+B})-yf(LnjqUee#S`z%pS5Go_qUJF`el8dE6TyeWf*>Ym&faX)f~o| zvG!lu_V4|f)tJb^$7w7sW6S&bT%~;9hMDCHvmS_Csr$)uhjqWJcZA-dWKGvY3ucvE z&tHFPTUhiG-5jQem8;nG&(um~Ex7-yJ>KTShtA>;i!aBYv;LZ!&BZ>Y-MhXZPyM(4 z?ORq^)$>fPxGx`nE@6LCq|i9I?$e8$HFqN0)bB^PPnea|vyjO{xo{ps7Vq^*?@BK| z$(duDsj~0;m6$g-N*VqZ8PC|)*|f5EN5-)V(EVyHzc)@?{m4z~N=WnU=Vz31SF`S~ zdt*AszS3Z8&C!e}X5R68w*B7Ho_z!;=>;=kf zKaBSmFYiCrpptdoc<0IXULoaQo0)Zgl)PlSB;GDD`GK!qBwtDLi3W`n-Wgqc^>q)4 zPBxx6d)k?jRSPAiiz(S&-dxrzbUBR6EUBmKpH|iKGe+GDwT;hzzhA$9<%CD!VPUh< z4a1J!3B7Pfpx4duOR47N6N?r{YX69?QH-88*Zq-p=eyP3VQ;^^zyJQJxu(2y{CTg% z_qkThfAK3QCPcvB;hMDQl<7~sJLGad3oMTO8f>R^JnEuxXW!-dc5ELCnR4Q{#kM!h zZ7^%Cdwoge;?k3=yroK3u3UL+;8xp=Hfz?;o5Uuld`uxI z<&W1Vr^zur3BEb8r@~XewkC5k>NZ5xuqN+5P|AL;Y@t}PPg-$m)AwHUdk1{Y?>;$u z{#wM(RXm=5I|S9)He6cq{%FYLFTFD=rPM!NUiCidlIHuqrcYC*EuC{v`$p^D#Xt7F zzglJ}n0x!H@AmHjYaUkhc=EM26)!V|8qbfaDIG!o+6p5_3RrBlJT;~Jl z@(#w=m8kw$xKXkAnVf>n5j?41xBIke z%snN#N$Kp@qut`OH$4rG%AR>^!6y+DGc}(X38&2T{SL?6NZM?{CK^ z+&MaNg=+Bij7KGmjZeN9KkHW6GSOU<^)>gmN9Uyf@lUVM)mgXeUCgYbUdLbO|CRlG zFQWC0V5fwa=Sitq_dlxtE9E$NkFOz_lRwi_Ahmzl&H4J~(;qcGRQz#2{*IUYiH~V( zGp(=pr(T@A}B=~}wc_ZlSyq24J{iohUz>a@ zJo}|xy3qM~H?1~Ho?c^a=My@=^8M`gwe6PvGuwXGq_$Z(XP)giCDFU#N_#2dXPU+dHZVZq2evi9V z{rbPn_rHF>RJ=E-oZgnRKmGrgwX@IP-CO>B-}im(^Zz9BO1(by;pBJU1vAsMwr74j z;zBU(sxW#>C-qNyswSL{~ve&YoR#|>~ec`>t+y%#clZCk0Yd7lp zdtRL5wcO;W_oNFUf5JY#U;08-{okI7pOaq8SQIdvo~~cMCn7R)ic#OW%XfWq6FHlY z{-18tH(lFfnn}h51)KkWKKrfod4II{`xduE?;iM z7N7R<$${`~t% zTdzI$towCqCc}>Pf?I!7wKhmq&Pdc%?6%r>&vS;-!ycBzD)n9q&N!7jle_kHG+WL2 z;}Nm=@b1#D4_y_$yr~b`IX(Vpt(JB8`UZ>B%#}(SF^Bih6Z0-rUtacM=J}dqg6^@? zbs`_NWE@O*((c3;zMWh4 zX9xeE$B#p!cR!z3J?CdZZSZXCiJzGpw_GW8Tcf}K)^fI`=j*<0Ugx{5Q+?9=?Dc!a z_-#Hgyxa5HPu*qDlS$q&zpp85&$(%&E)ZhDxkPowm!CPp;q3hT?5uv2#O;gPkl^UO zvvubjgG&cqzfWb0N@qCz)0gR!vhe9&Cp*STqxRpq5ax)+x^KVR@H`vdTgO78vDOrlKXRYe*fX{f8Rb!7*$-5 z6#mDR@1Gx{ky~{!jp_Xt+dr3oe<=PDm+N`HXxI0WvwL4Wli&Y(lX>FqnJ)9Ix+f%N zeL42%Z+FGN_1SvrdB%2g&ik;KJzCx>E?&%g)}&fZEt{v1XNGaqLCt6HmMz>-YxUWZ zM>VTevg*0qn|{RvjslB`Gn8i8r{^~{#ps^9dRyfS_qvPwCYLpeyKh*~|EbDqPR4eh z9jul75?p&d!_y1dnpdrR7E&GM-Lq&}zGv-B;SH;QrAifgtlF|#iOJYM;e61EMV9KF z57%$qS{CyE*D1pnD(0pZA9otFzPLThA$xw@gs>gDY<9c2F3Z)(yZ_j$pZNRBp}Irg z@9n?0@y(y;ivi6u&o2J3@nN`f_cK1z>w*8R!{_LCpAtR1ZGN?2>*mWDK_7N$7rbb< zcReisk3Vp;zKgN1zu9$`<1JgZaV9wye}5o3t1!jp`O^y*YJQ4ckyEs~b3@EFS@Thv z&Vh!R+y)x;GDd9AmGp{QdXJw!FMGGfWK-Yw`){&1B$x!VZt~80{JSW82J6Kwm-N5x zZ=YW)y1P$gap&_oyZxUvxGMR6=zUuFuk4q`pRZ@H@BW(D|3XeU(|6(OJ0)Lx4NC+( zxp~f%>-c&`@Ub~tSCMk=d-jjqj&eYk475X*n-)QJbKk1+kMApro=PJYk#I6Ed8TvuH)ur z^;EFt^|qvq#wspXldI~~?p6FYXyZAZ{nGeUJIjH(U&}*7SG<|^k;;q%?)f{WNF8|Tv7ml!@0HoBJ%o>?eth%LJMHoG)7us2hn=jr zwC?vh-V>} zekZ-da*ld`GZGMgA@bLd@q;GQwMB0&nO?n#(^y^o|Fctq;nu5xdlVwhUwZO+x7C%( zr!^KozoyMs{d09MOV_Ixzg9M%T)%Ul^MS`Vr{6d?)0n;dPGS3P)5XPeOC5IktIsLE zy8qQz?)V=~muLMs>0j4$|Iah?ck1<*_DyN{`fPT7nbZuc^(K3wEoG*2>|t4dE8@f2 z{95jAas9IS)?U}!gRQ6D-c_m{SNT-*|E*Zl8Fz|K>mC;@-D>wVy7`9q{vWO@)?8xy z`?0_N&6&B{8y-!4_Nv$X-iur7yFakh*Vz62%5v}g?DO;7TDWz3{``J-M?2?6yv4f5 z?_7`nxODve{_Xthzbz}jce4IRD|;Bk9=nsYfauU zq420|*IAQP_2RORugV`j*wbJ1(8g-ltLxU!3sZyc+`QRhD|&Usoxo1R;Kv_U&%fL8 zdi~BjGhcn0eCXcNOXdszM65XZWM$c^uH3s`_UhL6zjgo3+&_8Ep=m45O`m=5%i?=U!e`HkIqUwDx|Dgb zW^SyeoSXFXdAIjZ;V%t1$9Yq%WM3+$rO`#-tu?bBH_bm))t|U)sm-kg+ZM`g-KT5R zeaHBc^6@aAe?hX{7yrL>>F2uUeZI-xbndC*I`?JQlC6E8njSStWKfrXIkEVo)vND& zectu3T(()UU>BR_#!?$2=Qn%%GG`h+Z`ocu;q>N-TwStJ(pNivZhZV<Lf8d=0tB%@KT>AopS^AxXZ>nX zdU4wUNw)*rk4Jo(bMHnG2k%FlCS7gTV7F(1F;cy$?{nN@3OVz3ztpn%uz&sIquZ}N zJXLu)X5DJ-(}tBPYR~-S-p)&Pi%d6uJz=Hu(WMc`ipz|Hk~Svf=;==UFoSK||5=-u zVl3(m-JbIvY5xCNw^sFvO86R| z_ZJb}a^~|Eu2m~m9@BnZo)C~GCDwE1K*O9yJ^im=uV$=RaVTcq``^FIwu1gC8be_r01Gbj6&v@L%)UrSHCN`9CqB{MD6}j&?u7i}^Hvy;L{Px}s5jRlasI zL%99>FXyx$?D)xL@4>NWLRVPg^XGcMo{4H4sn1{BbC}`L_OAQle%H^}itN|1IrVeP zq4Sd*TSX_%asS83-BTMeU;h2__3Lx;&#bj{UNB#A!8z5mZRVN0MynqBuV?o5{cpU{a{C!YN(%XI0)wRJLrZxo%I8W*c?JpHDr>{dp2 zuZf}SJQtR)ap@boB)T`O=Cdxkw|`&e;)ZkF6TYo~75}iLZ9~kB`PCQS_1~I&t~m7f z45QSp-Saeh&aM7d`Q@VK`!4UderYw<$}b-7P%R0Y*V_C?dybja3g6Q|IXnFqFJ8T+ zuYZ$VNn4M6jn$|0_dJckoej6P&bd|S>Z*D#Zl~P&{eR5rKL662bx5s!?*#js``W=p}jDWAVMZwXgB=9<6fvx)ol5B~Ref7X$b=v!R7<6B|NUu}7#%zCrl%~`(c z(UY^jwMf5zo8ge?C_L?4@ADbLdxY!umex+(es5Xry7plCPhU<=zq{rUiD6YA;O-U&V&fe+xvnQwLto%ck1Jc{x9{q4I@`RVab7G|^-=`G^KR!Ng zvG!i<@h*Yr`1XmF&bL0yS-oRh#P(eKRbCZgx~!*-)%%McX7A+8KE1B?i@ijr&AgP$ z+iWE!PCm)|RdU6O)yMm6+YL194IU*6Ys|RdoG<*;iu;#v^Tm_?PYU(Te*V&$Rwm3WQj&{B5)96AC{vzA6ySY>9c^Zvd9De`PsH$DFK;pJV;N9*2 z6<${68Z=uw|FllrG^Z!?&WV$!4zv_5o-o~d#&J%TWhu9&zila;+5VY{ablL4G*^Rk zV90^bsn5K!V<-PA-u$C3$LhLQdUEdlD;X7r_sk8WblM!g3x0UJeulI%cct2mh_@H) z!#fMVCtBv$vb{N5Tw?HUQP^LLx5rHVg1WxFKfEn;_1(0`7IHU@vJSEE$ey`5^%LwY z0CT>Rl2_Jne(g_~=e^D}a_-yXN4}kpRmq>v!|41#MESw-U44@R?YI5AC1~{RoWKi- z#)LB=`!kp8xEZJxZ**JVWz!;lrD4Zb4D~d^;Ty zG#9Q8x>#<+GpE#MX3w;#(>1mq_K%m0G&U7ddiXcS?QfjaF`+Q+J=OPx+_RH<{kS99 z7A?K%aJPHeu>(T!AC5GfS^w$oq3*m#oChwIKASl6&uuGyR!4li}sRJx-slh?`01G?zpbymQ<%xApy- zznzQ1EdJKS{rT$h@XOuhH}4wUt4}X1H=kE<%WmDgmamC5bydRGjwgmYFIX>-U|ur$ z(z!G1zK2>ZSDyFp*7hm-e{1GnU-ZDIztB#9`Qo@=-cnhwAI)Dkh2cj8^R#o`342-I z|MHg8m2W$+v!mfxWc;oPGE4Lq=L%0hT@?Rp_Lk>9m;aivzES6wlHNM)O4Wy$qD$v2 zHh!+#l_mM<^40I>f?jIGl;8hpVg2d-{;%I|*_}(sE7`aH&*9=D=O#>jnc z^cgp*ogd^lIQ)(Ft2M8wH+ypTQwGNuZ5EUCD|0$xPswgrn4I)O$N1cXi=4gdR)36a z3jb=&8Bw`qCbz)PXEPYz-P>Dww0n`gT+m^Q3Yn$d-u0?F*W!D3e|gPv@{$R<>14c24YSkHs_PIr9#FS?P5oLPETM+QWw(@Al1fN}1U=t=K8^B71G& zdX<7Q|36-d`nD^c{PAhra9S|`>-jr7n;bU8K8(@qo%(o=ivv@vZ%WBmr&!%bdtave z798T1dLQ0h^Y_b|`E&N~@|?IL?#W+E&O4GCQ;u)n?pZFjZ}WF`FZYLjYHvCp@z=l4 zwR&jrr#Ak`Rq?_fe{NhAu!v-F$uh0wc{XcS%q3Ri^K!0l#kbg9c$xitk*edW<@&zy zr{2X*U0-l7XVX2~JAQNZ^%kxX@{`?DD^o0eYtgSU+iD&RXe>YJN?>? zUwjw*k}ln-SjSl(dgWd2s@HzZulwfr9e4|llpj{GNcnbtZ}0ave9xbE=++3t&*Au3 z^4a54^chK}wgWfY8{XePRr%xJ8|}`gHv}vWa}@ZLC@U`KYh+BZZ@)10RNB8le<}O9 z*VcbpQyr_US9JeV7gKWQ#KV5~la!J-++%OLf348MYSq__^$&Kl>^`^n-z7sk^_sHs znrGp&O872)d42PN=A8E)DvkB7%Ib-QD)qU=k~Q1*r`t2BG1&cn{b7$rWAp?Uj^uQ; zqVwDeYbLZcC?;^sIm+>abM^jtM_o6rk!DhNd9X$1WW}MF8SU>B63%RTw;-jChtc_f zfC0<7GL}0P;z<_s-#*>=N16$&Spq_p^fqud>^^pU-@L^f5{uu^yCG~J1iUl zAEZS^S^q8MxzTb!-QlzyMm{_c+19|>aDEfl<~LH1k_J6hb8(KG zDa>MSZt7@XjGWb>dggG0ng%f|T(z4O6F9y|GHv_5|NMe29U!;ZxGz|KE5vr;{>G!{ z(l+0!oVVRjdmp$2vvpIDaF}yo`-{8f8&gk-y!rEM|AM0Xb}p{&yXW)j*}7e2f*OyY z9PC{by3XvJ_u=-hL_r;Iuv6y9Fex>k`xCu8LrPk@-i@=3hS9X8< zPpnvc+Wj$#cJ&;yJEgew0>NYrN_4Y(Z}+X`QyiNe>sSv77g|eRV)YRBvGA$`c;m z9Y5aRulREP&el&_A<}bqdc=B&U79Igoe!!u9PHf=aM#a%^{U{-Mfbulljpm9d6T&$ z)39UGf$gifdS9C>zPz_S`N-P&?w=+ot~0TVvDcfGdKOX6o-<%dtXsJ0QCQeS`?F{7 zG(1z?JMrq2`kdHqPl+7uwZ<{M)AlG9_<_pH;!RO&1KJuCFNiY5H7MAZrZ9zug)CaO zPwcD64<$1;PQ#50`qs~`IohFkL~^EDQk~Ot(`HqTyhYPCv>Xv)TCSoVtT5+B=%sIO zZJZ8lpMB_%(~;xHw{sjir_8Zt#dAX@f7`Dj?{>ept9ha!}wb1g>{T7bj1Ualhr=|4_9+IJ3|s^W(3zM}K_F|F(G3HonVkY7f`v z%k|FDIeLFr^R4BH*BKb?>nd$*w(U(d`tjpd^1a(XYW9JLoZB4cD?2zn&5%3Z|LSo2 zhTqly8(-z$`rAMR;8#Ffu6r<7w${N-OvJL=A|uZ_POb#i}!+#&uax~Ka86y+WI zud7#b`_s8RP{w*95Ku32-)XPji(=XDCfk!1*q?v>;?(<-PhWg#H)H(p^7x$~6BeFE zeDTcL~zo$)^wrJ%#IZsZJTWUuaPu%@!1#^QMS5xyr#t9q3Zymhnc{$uE(Q;O7w3}YOO-V>1z5_>EK3;Qp116Gu)TeKw|2Oay1Mk^v2S8wwueYb0N*>l4i;@}$j z7hB_o2isn(H7|UyPJhw6t>uEHA6u{dSo>hl+%1z@f=qmU84Q9<7D(&A=Gw+-*6>i^yH@2fp4r%d>$`tZ#?$nj4+y*nX8H5PGkDdbM@d(%Tv3RW+O4@VPbkbk&_#LXgI-== z1!up&7c`y67q!$+su2{9oJuuL4)8@@`c*(+ZO5#zTvO{+%jZvVf<( zFEsJ^KchFcQH{+@O*ItvK02rNVGi?=W3I^_MKVR3Cry|?yX()wnG#bbH#IT`PnHD^SYELAJkS;96qT81_Ab^h-?TkAGjgVThcAXCyW3pYQLS6*HPFY4u8 zKR(ZQ|9qsdW2QCxS<$7xe0Ht$oqKT4{iiMZvsY<1JW(;xpV7L>`aj>*_3IBTsQy5`AjzGD5_a_P6TW+w-R3wN)b-9O3x zLeG^g5lcQypF8)+&k!c>+o3*xC3sHX(sXwCoc{jS`h|b0ch8GsiP67m)3}*kv%w`e zVfC)eM^hZ6XRqXIlG?X=4P)Ol^Tj(@R;*I_zhRYFX-xD_(?FT)-kKi^B__yp_ngsK zvebQ|xn!@2n!x#rDSgkR8XYV?HHjD3wl}Qi=6YB9CcZS6S7^4dfT;YH<*!2SAC|uU zTQ9ZyWr)&)muUz3IgVXzYja!vXKVWTICX9f9UZs8M8QhssqcOqSKG#XwbaSU=J;ci z<$IL(y*<##Y*2Kh;M>_LX1R|4Zo0(Wx1XB&^7Rg1<{j$=ZM7eL7VcbNJV!Kgn~xNe zdSe3{BQJx|O`YOBLbsMJDJZv}Yf|&|vbp8VqHE=xd0UxRC@=q!_4;*yuVX=JscBYr z_R5d5Tb@iwIWjR(PFA*g)~hH!4bcULCs->UB8L+2{n%>x0tG&#Brc0yOoY?_oV(l6w&o`D&Tea7m117eT{q+lqvWf(!n0M?J^)`~S`1i&>q~q{$ufh)j zoMrE{4;+(ajo7@H<8}E|#@U(=a+j>ynj9){#l}dkc+tdzy*|tuZ+bf)N?aGXGC3(+ z_R8eU!X49&tB6dN3_S61lT!{Km)|DMR(Z+ppUK9Cxn~%Bq-+@$yFE+D$P;VhJ9X?q zb9{c;&9?2`ul!$qa(~|= z>%f~<+>cL}+zDmeHSuI#MP}!&%Qhv(Yo~SGy8A_i|83K@$~PwU_rm=@d;X90Nsd{g za#i-xo$%C8k?%jRmQS|epR8T|JonB2?fHuyT~rq|f6tVcr}*}9+BspS2gYv8`1#&A zo|)&AV)rGO=idom509rezws$lSqVr!wc7po*Hgvv!RcR9-Bc#D1WuYN!av6drlJWsbIz1ff!W5G4ULW%V-n|t%I z4G*@tWS>0x;q1jr4n2In_G_NAFZlLneU`KP&xys|D`tergzk^i4(YPr^l!zl>!Isv zs|)ns`tNr*@ZI-*eCd_P?`(f>sQfIprsA>enyAf!`s;4+Ovz8IoBY%JdB2T7kP^K?EHwSTC7aAp0~s+w8vT`F%#M+mznFFDjji7~?nUer);524@c$Yu zhPb6-(Z;O`&O2tD>~KoTk|`2eG|@viyfEgCS#f(6^W#;|mx->86I%ReLusjDfD_}% z6uq7;3dHYa!1#wiJ1P8Rgvy)reWB+35o)Jx|(SkBC~ z7Wl08Jn5qAV#7)&JvTn-GaomU&Uw2+W?jPbkMdV@w51oNJIwL9F>h(fw;%8LbJv(x zzVMx~d3l&$tl!~h^RoNo4o-Bh?`^Vv=Tcl}l~jCu;Y=yHbFMyj%eB=PZU6Y>&?Gyv zy?cdD&i`l8_UG>16SIu2vhpv#x%NlZ%ahwV#rL!`%{NPwbgX#uLd*K?;nJtucNc2) z%{z8m_$*Q>e{?zS?(;91 zV*Y;l;{2|o_4b8zd;0rMKiGfEw1?sM-e0??`MhbE^my9m&)b^MMr>Rrm7mvhsBbZ^ z#=0yv(ccp%NyyAx{7>@nv7Gzvf2T^d_vm?L8wyR4(waV{c=L&eZ4ysZT$5itP&*^d zA7f<9IJxb(W#H5=-Lhu`YTkB+SgbCqcVaoR|LdVx_q3b)BSm$0uzfL?_^v8&?fh^1 z#3#=lZc%#ha^ZX7)+=vn^RH&@+3-g6&!hVI0~g=Eo@klG)W+-K>{X=ndg9}CyEeVr zBO4no^D4@2omJj7t<@`zP21WYxoqu@l9%%z{`wx@*E;>o;SjBF9&HNCcUT3>70dlP zDKE_MeR7vY=uLrzTv8j^q>O$BoZifl@n#yYiCS0s%t_7S+=h>v8a3`P)-1LUt$dyT z(M#dPyE?Z`Pha-+KCb27FTX=O^VY&OYj}*DSCy@Goncb$`eP~QoAMIP((CL_qJm%M zD8x^UJJi1I@6qp~oKyP6#4cP(6K&&>d&9=^^`OwKdEHCH3jE3n>SlbGKay2{o{eQo zV8Z)*drdyZdarIcDPfiq(JsvF_yySoH zmgK|x?cJTehlkseE-W~xJGt9{?dj8}S8iGROinC4vFPQ*h0dQ3&3}7Oz(QLImPqm+@|A~o< zY!43;d+1Tfo96FvsHd~}&Y@pCyl*EmeZ6}$`9-ph*2*Kle5*g4njQV&czF4Px63v5 z$evlB`NV?Da;}yqlMQ{>Y`H zn=RU&?y#JA>BDfES1hrBX z8!f)5@jK3O+N7)O`!q;$?@xnF7Sj*UZ*TW{JG<(^^l9!Zbl3i#_eA+k{P6&p=TkhE zELI74d}4Q1UeIT?HA=iKdKypQ_oO-T23C(wQ|8J`dV< z{`q6mmT*6Bg4(2KYIe&sqCx{#U5R-dvDR+gVyj1wQ+I7D-S@Ee_SR&UD{-a^wmrJF z)4uX;2b;Fb?=ty3`?twC@3;T`{?3N|CtpTQ`oF_3Ti#oLuHVL?XLb7j$~yUk6K)q` z{O=yHxU%_T$fmbBH?B6M|GU!g{94e9=!*@Cofk!ZsVU8xoi2TIdFyIx<_KTk{d_W0 z>m`L(GXE~$EVcMpmEY;49XFRO+s5dgHS455%euMuTC(-Kj-I)Aa>3M$>+eKjG0d~5@^LEaArx$6?gcNR4pe_g8;I^&(iHmA~n@aIv%S$9L+7;1J2+TVS-QPj-UbkUwpo{OuRZv=0VWfg6= zIQit=iKJq;WC3l|aIO`bYWAq@2hrS+) z*WIA?!|&VQ$-*li9#NC~@iq0zOu4mwwg>nHckxfFsyeB@_k-U&rSnrmr{38ApJCG` zBSVGs2JZNvpjTr2msq}4es+9&t6uO!sp`Tv=VEsow58c|b$bN_#k5RW!m?!9l0u^c z#&b`^gha1iv&NN;_3zB)qK$ugb9X%aRDW>GQs<3*Y7x`VojJ;U{|{3ezvuDBz19`a zN|=Kt2TycqTckGW7H{0Svs_o_Ea;IiY)U^GvT(-&f#Bu7@Afl9p5tlEQ+V)uqR)r= zf1l?cf81~1cXG1&#w+&_|E*=EQ@9S5>?kO-!ZV$dVbEf{o}3q+a67{&pU8> z|1IvGN0X*X?OXBa#nxV?12;Q&BpyrfkzUWM5}9}SS7x_ESRl-OOl+w0a{HQg%WbY;@F(B%7#$|hS&Sbp=1B_ICg zq;tQ5=Xd&cz`(RtC`L)-YK2PXd(mXCb&r}TOM@rO5`uKr;E|GODm>hcBi-iB~LaND+Z$`qD6 ze_OLNI90bUjj=nUou7B4d4C-%>R*{{Kzdo!_*Z&-%ul-DVLEY!#oVi&ZcnVUClnr+J+b?l_lv?ubhzue{9zM=4SU{v0NV~UN=>i_S#zC0m)>73@{VuRi- zdlv85bN@r>)m^bV?uzDjRd$#PRrA=der#Db+k1D|$0FhDQ#ucScs2WWMO-oFQvM|udIPl`u2$OoIO-32&Q}X_%T{}DN@VTCX9ey=0 zG@fm2lx8{BbLIf6c+bc6{kz#pWfOkgyJdUhAaAUZuZ-KWuXZ~w$G?@m*d}js^>No} zHDz1fR(Jm?k9y0$U07pyyZe>Km9UsYES|}}Njb9XA}(d|zTDw6w^3Yc^7^Zj7DcUz z5ATq*_6i6IIcqq3W}0ipoo}<#mdwWPMs-~vXUVF{b>0MIIw&2Zo&$gE#k)gb0@|wqP{bkj7v`orx z-UP=g^HhzOPd7Mv_;YUAy@hd8*Xv^SiXzn%=_HaV!)5BbR+h_;mKiGq*1t%RT1s%~JCd z_wyBMNtz0*Hggxxn7FIMX6N^V@?V3luD`6EX7Mvk=9l_w-zD-FLv92~x!)99w4&w1 zLGDF`kEgzzF;Dz>;N-Qm-x5mQxqS( z4!?D0{oZX%_kUlke|+-zzYfnW+g6m$zh<2G_sOq>`zg-3CVg*%9)B;>`YUs9A8&p2 zb=ejl2mIJuzG zt@gFjebbZmEU^20m=rKTG08q|>e|S3=BR7Kol^Jm|Y8!tzjDsfdA+i1&v# z_u0AEB?z8ix#O~E={lvUs~R<0pSNZ*?kIg7=2s*&Vfysrn;VP+91`O=TQAO(l*~QM z=2`lCz5JV9vJX^jznR&#PR>5KqW!1E%@4Mo>o#vWRO#>I^)yMB>-LU@Stf}xi=Y2I z&l{S;R%mppHP-8#z!DzMLkE>rf4uwK|FChrU0-H+&w*WMk7opJ<SS3 z|FP@D7AfBLG&vmf;B@PvGi%%~nq+1D@-Ue!xwrJUosW#MOsb*ly0t5G9_}d#GmGzg z_v^imTy;Lj7geUL=~??I`}F!&>G%lJyJUVj$zi%RckU zt)sFe)xvLJfvZl<3%V_J(1#e(OyoQ>wUW;BSec%OdvD)-7MAAN80 z1swRM_V1~Bb_HL)@ucGgQueK>w*z`L!&4vMYW-=$Zz=!Sjov?}V#+>-q%2|WF}okvG~?H^_5GXoY~tdt&sQ~=`uzKp!guPq30db7%0=J(_>!t; z*c)S;X=r-o!0&^#HvSnF&P9GFJ5@I>n~?F@@lJ)W!k+A zC9ShIKG76m}(BaD~XT7~$_~qmMg-_P)zPMuVna}B;b@Vr7 zY5wW$S~{WdtJRXa@75>&KUseBTK0zb6XO?rI{m-lh38_&PN~xoo)tT!6ijj$8ylAT zGIIKfTt8QHJtp4y^e+*%SQ}~4`@iMN_Uzzse*fRBXkDHC`H749<7eg``u^tN<=RY! zyepH`&F3F^E_EF0+W!5KzWraN{V!IqwoWhR zVBLPME5fku!-J!K3^J9KhfZ%kZT3k1eNFQ}rbIPsi}$K~!|t5wHksD{Ae~>okm*5t z-B+=?pMUSxJpZg%uYUSikkumZU2YAJV;}snUb>P0bo^dc$(NZw4!F-(pS#Fm-O>Gj ze(re@r@MqBdi&jXEC*^{T&c7QhzxD#|8v(UVXoCI{rcYtr|ui(-28Z5m+8Uv|67FX z|GiBA5tn|0bN4sD!ouRywc;gO40%`obRT+Ow_nOU?!VCCA63_`K3=rri_V^!%F~&J zDq`#HKPoOyJ;#4z_kIrZ*#GYLJT=s8_5|D5)fj(z9+LdIOS7hYQ|XJx_B*q8oX(30 z@7f+F;}96h`$)KA539L|Tj#QldoCX))N_^`Wmvaz<+BSL`Q?9J$$8Q*)p&^Ml2F}r zhPW1&|4%~hPqb$5?d~m{bmtPQ4eQTNwR*o<$6klMe|Y1Hk7I$HX}h+D!o_3ET+J`s z4<)pIl+d=Fxoq8{qf?_U^*nhcv28z#x<=reXHkLzVT+1Yr|5HzP;g3*Tx+=VFv!z$9P-HZGKsq%O2giGDPy{F7cw;;_vNZkDl`WF0?nFx&E=_ z<<2_`M329dKfBZW?Wwyz4$Y9cvn|7jEi-2E?ZOot`>V3GiyRS5P9V_Ek-iMkwW$*7b%m00n zzT&E?lelAeZ2PH?~Thp zzW@GT%>L&~`-h9=_a4lB@@>zQe_{1&_r6qd*s$O)e`6GvX!*P4ng`A#an;Q~-nCZ$ z1IKm?xkA}?M#IHBBY4FA_C-v35fU=xVQ1+6Bf;5|4eI{{osr%yQ29}Lg23HA%M0C$ zew{4RZ`#IrDg5IPkGm|hQmX1t=H=LIoAhZqn~%JS_+exB$ulyN?!NlfmA0kdo%!UZ z?|qNj{ofz`(718OZ)IV_tbz@j*PE8^e$C62b^DUp=~JhQ4#mBdm~3Ftdno+vt&0|G z8Ka!;YGj%H*mW^9Sio0n&*$%t7EgS7_`1>6BaQCe)|U3)UR$#-N+=X_74{R}ka}87 z#;!)fxsAus&(Ew+#`f7c7QZE(GtSNVbZ;iNn!wu3E#I$)Mm+Vk_qCYfZdw2J?x(o?5z+9oM-%w|SUrwZThuRe zyKQ=0B|rbY|5iH-duLRA^;lD#rkuC?vy#r95=|~`t)0TWJKjEGm zP3()C*JqwuY{fhM^3=f8<@*a{cU36O$haEi|5jqEea!rG{eKNvsu~*J2OnoZU^|7YemrHE3ws)^v!1?0w^0lw{iZne7C1wfs_wLr3I7_V6 zDeEo&QUQ~Km^62*p6~KMFXZblvOVP6{nXjr`@;?4{DiyKdEJ1uL_Y%u5 z+s%8AhT6|KXk6wV?5x@SckA0fOBd{5n!o$Cpv~Xk%o5hNqD!~lij{jX+pF#3HFK_w zZ>~E0c>QwC^2cuve*7v?r@!k7N6-(|V2`ECn(LI?`4^g9;o0+kQtgbN|K=+dS{&D( zmd(@JS18hCxBZvIyx&jrKm3b!dw6<#tQ+G?5xrT~@{ez+TwdJ1V4;ik+pdr^C%hdh z`HoBGb@ZtJy?aFQ=5*^zOLocbe#Ievv^nhf#Rp}t&6RqS|I9k8DcHO9+KP3%Upd|R z+AF)`|G}*@%uFSxUbz)K`%2%(6?YE)_z^yT@wOKl*PfqfxVfM|*5YdCs|N?&o%U8lg;dJlPx;ZEO78|5i390dPxXVgLoXp{u zUUgC;C7vtFL!7hxgJ$EIBEx^n`#nixvJKTK4+eMY|Z`+v!^8XT|K_K5^Fl($~~{^W{%$f7$w zDgg)NkNPgqtaLW)O#kt2zBNB<{BN#T)AsrqU)&tv&-=m6=&#Anpy}6sEeJmTGtgLf zo6Fh7m6=8}`QoZ&z4rYQ<=OeRYzd#N7)x;7%sT(M8T&I%x#cBPJ#g25e31Q{L03e| z`JTfwSQ!sT)?G0>QhcrdX5k`BcOIo&rPf*hGp`)!IsHhc@1v&rm$tj?s|(Igzy3gO z%^~+Z`M&-C-Z16eIaz-5%j3T42lGXaukbx~=Jd|O<+s-R9(lr7v!w9xqgPMAdX$(P zZnyeqdNlKDYVxmC8||sdlU|+3Jr;U*Q_jks{I8pIX6@s-744_?`&mbcR_XCYW{Y|~ z3;gF?;H>4CcrKR9+-^;6=W)@11MBwLB*$5G^&Jh&IJb3*Lw+ISzFP%bmrjYQ$vf=T z@V&EWWySO!?_*lmt}mD(!8QHR$E=)y=$=E2nX-j;?_z~oy+wi(e@#jWnebk@cVoe9 z-(_YmZcV>&U(@1+hI-xP#tJunyFY6C3SPgKu+^XXxptf8TIbszovv(Kq&d^$>9X~q z`eBdG|IcID_i1Uifywl!RTFKpbwq9VCwMBI%GkAK?c<3YOBAh7%`#MtKl4FY@v_;M zl{H-FZuTC!oiFyVH=JKVZJ*hK(o2VuUq3NX+)>pKX~J2rt?d;USI8p2FH_Fk_}QZq z4~xv%gKzd}&#zXWB*4MEWgFMAM-1v`_kZCw`E}*o>y3@lg(+!OkES?Y>04dM^f2R- zj*3OrJPl#TAZRlJ0A@4253C-1Li-@j*@)O0`D)z@=pg<04?KfU+$ zZk9tIf8CIiim=b_GkM&;fAz7?(piRD+KiRVE6$#`>P-8)!_N0g#qCEnrJt`)<6kIU z%iYAX?@xU1`d$2K``74H2}%21HET&uOb*t0SGkHud%MZQZ~V&>s`6~2^?N0D^RR5W zy8UZFQTms#ExsoD1#glW155k0R#(N&Nc&Yi)meh|#)Wv6eAX`o)@wYT|B>>$zlZzy z;_@o7KCZ=IZ#h2tcIo2Qh^>jDc{6t~B!6}j%1JtD`F`CmA)7DH6!ZQ;$#SSLoMM-*bJVIp?3%Q zRV~+TvYzlBnDS6E;{O@1Kd(;iHb}gsv*y=jsaKXVN7?NQh0WIAZ<$~F{QrloS8a@i z`9GLX-M{#c=*Q)}3V{*^AC!(?=w7O@Z`!hj{4y3E!mFPyQC@VL@$&Vp+ZNoq^1|Y5 zPRZ_;%R!gtT&v7=MU|h7^acb}mzhnCk-&^Wawbm-IW{+9W z2i;@Wk9bZ#sq?PpGE?&`V-_n{hqvB&XJ#1Q*ioo_ukyL9&up{aWkt(&)vd{YwR>&f zzn}GTtik0Q`(>APZrgaJM9TN_rgI->*Jy`{chw7>yz}GD)yj&8{p}kT@8gi4F}c%H zyodMC>aVAZkF>sQslPsd-8{q9c0Vq4@&0&SU&|*w&$jK)PtO~!>w+VbWdD8r?|byO z{(b@BV|_WwUqWwwx%|lEbKm=aUo36@ex5sHiwbM&RFnTwiE_&(&&z*0=kdJXX_lMM z@B6cF-Jj2$>loK57AP|wN(-SE99Am^+5McNkn*cT zWKC>XhrQi@zOCQZJ-L1DL`c?EZ`HH@c0X2|uW&q@tSYf@PWpWJ$%|hHUTouC>&&!# zyVk}z-vw>9{^R`=>lN3r{*v0Z^AV=Ux~}y$to;}LKIZm<`B_HhS}R+{)|P07Oqh04 zvhYyw&uPhb!!8~2d&qr$;g5g%3+v=x|2m}EaY|je?^eaFD;JyAZ#rGoD`z4k`n^VW zw%k8Kw*SYQPwf7b#S^_lVkW=^XZ#T?iu?!Y7Z)}u~a{YfLE&6rHtpKU{Nm9uh zvW_~|JpaA9@OS$92Wg5~t~+;q*U(tIV6VtYmC6&HPU^)mYtk)E&0p%D`@S>uy~v}j z)4waJ`Z9%uEqTT|v5VhJ{gUvO&|H=E8p|{PJxkv4b27JKfrFW8z4o0d&s=K(4fj*> zFSWb8YeS4CSeT0RU1k)HKI?ja%e|EUswS5-dKNM`?b%iO`uhewX@j~;0_zS-Wk%|} zcx{(2`*1~t2UlQB%=yLa8Cqel?b6&c=d3?>{d2W7-(%tWnC6I2V(TBZEmP|&d=n`n zo+;Dx`hU^7>ehI!%mB5*-A2l+|G&Mfds19{Y|jyiEUwAN5B3V2{31NhzqL^GoaLW& z8>eyYl5ml`u&FlY@MhoGnP+yT*Rri`{(8owEFj_IPQ#fq41(ORxxDI3d@R8}o9VZi zuT63DiEW#*_P8y47rJte`KMaV%yb>!bLz#x;mXgsd_`hnT|VE>_L}wa>i_7@W)s8M z=}Y$1EDealJB){n3LT&_}^=3IO|v#|3=x47AZ?>8kSCYxWl$dg!LXYFnl z$$s^Z?)^I*@_+m-uP^#I!$M=`4%32ra)A;BqLK+$rH@1%-g2+yWLm*`^!CD`(MtL*6&z(ZBgR#O>DJFJ6^@T zKhl3`@3SjXQ)TMA!oQ~9-CeLJJpN1VocY#!uix?8`(9(?t++~&^>1T(OWnUedUf!z zVYx}`o~Rj{-cK*s6SXf{w9T}r`2B|(SIwF0PfrQU*;P6_+vEM#R^OeA^)?HIwU<84 z?mKh8S#v?rD*3}(IS$=j{Cn}9_WRkqYs>#F|MatT>x-T9tQXs_-N;t{&|;VLvRawH zPb1&DKb;=={QtkBhj+ZacK$(AWw$~3HIArr6K?)Bo*0~0cI{a9wfCyt&mOHz&3|bA z$M*l{_YW_%7RR=Qu>WPPo@_L?)2vAAa?0xag)4;aR~Lz|n|bn>$7TDayjML|EbZ(# z5-4GwCBwCv|IyiA{f(b9rbjzi1PcYP3^bZHd3KlbN5 ztx_f5DJ+v~#Fus7Qx#efp`GQuG3onfjkVfGA3U)+BfD>h>*pQ21xyNxwyjODy(S;) z>2xajZCgy&AI3Yrf}V?ae=K>`UuZU|AbWXs?c}n$?n1F2-(=H)^8n{SW8v zw(IUXE1hx3oPFcht1|m6cO1EJW(CWklxeQT+a??^R_rQ!cWj~Sl|O&_<*kYfv-ef< zZ(8@yxM%0DUDJNluubK^-*&8jy5)`JqJ7=TkI;?;Lo+^r?TJc1&cXq;J6I8tJ@m z6B25^yttUR=;7n530lin*F}|t1!e5}f56V>|Dnx0UM$)eTMjC4muNY&M=S1rokNQAA4Xw1F6?VX-}{FXYud-%xc5p zb4)gWR@;A?^HrK>l$lEA=qpzau zd9MAV$^%#PHamG{a$d{7;o?|hW;(^~Gmql5$v?${vSbB|o_bwzDW1LcOuC}sZHL4% z-t(&G)bnm;&g{5c)%f4UH}#;*wWJ%I%@W5nWu7uEW1alK{;OanL;jsTJD=|Mzh1e` zzRf{jKtT4Q{+pV3?)}N1iw|wu*{t#9sl{5>^>c2m`TqXpjvZg4*6_>D>hr%l>)6>a zlWw=OOE%QYZVm8u%k)z_`*S1zm+t)=_NY$`mh9Z zf8Q*>`;cx@?JllLqjQ%FF9vWBo0gf?b8OZ0 z%wLm|&+TYkx#PL@>W?Ritv^1nk8k&Wo?Yy7+sc0Cp1GSgDD~VeNLs-;|DrP6!`ABc z$1l0^2WQM~a58#!MQN$2bzz8*+|PevI&(ftu}<^0?hXB@VK?*pze~0C40=mMIUnif zvix(GIvbX^aPO|@e`z{-|2{m`n^$l@Q@$`;&~ID5L5)V&h1}mNw{5mBliw4TfBzSk z@AXNt!Y((aMT-33`agAlM#|Zx*G#2%WXIPmHj_|4`0Er`o{BaH%YmBvh5MrJcg;Ie z>~q(9ZP1$wZtJh**St7%G~vUZ6r;Swn&l#E7lmi>Sgzi9;VsZazQH$zA#BArqsD zqYB^N@2<@4-1chNqiYk0f4<$(BEC!Oat?)C+;TKhinOVqv2^^mpXn*8tM{DO*iH8Ovn*E?K( z{a$g_vbnQgoS#{oFFx68*$&$&leV9f$tX_MT=e|BOUcJXnH@QtTJQJsE8Bg|Ji;%x zMB#4HKG`?7q8onBuM`S&PBv(ZddXhm6TtpcK-Yii6{U&$v-)zQvbzLV@^VYYq z;&bTIgv*m}Ev@@xtG{W#?d@jA z?g^ap_Hl0IJC!_nxA2R;^V#R0FX++Zs=9DvzMRIFUo_{%XPn}6-v1%FLH$5wN)oLsbhZpymuP2bx6_nm)x-+S|_)BK7v zpM7lp>VM&}4c9(Tjq|q@Vvju5oweBe<3<0NV`s0fj47Y$dhMXlzh41g&Q#l4)|B|) zDGke)S^7(eZ-VIaSKc39Mpk&8(D~UgEj2Kt>O$pAX|p#^tG4o8PVY&PyV<_eFoMbE z=~myWQwc{-CWW}RvYgx^a{v7Ey>{o9zk2n$GN1AGpUu(}ubwELbaMNO1p(rR;T;Ja5y@l0C~0?KfWT+ZVN1 zBe!cxM(9L$*TUwrf!CfdoaM!nXq~a7$w!s*_PJL@I&%;D`g~EIm(nv^r8{-$ha731 z^DiQ8x6$VBR=w(xb{h@wTS5k2h{xFzt2qHQVFu zLhCxcZlsBAl2zICcb&$m)puK-UH#;`ZiGR9;n7Dg)8`$Xh}) zWxM@HhT*586WgyeMSqLD(s`FdcFX*4zRPN3E8|u>o!n{I68`h@-fM5{dgguoyeH=8 z^}QP=Ot$|Rmg?y8{KD(mEhmc->y}qv?Ehb3=PG*pbba0bXBBxw(-Q4NE#bIAN^3S-PyqIWHo@HiTD|zq6C#Cb93o5T$33|#k`6&g& zg*Vi;Mo$#9=eT?$r~hax~`kE@>3`x7PP*MNzPzoyk(BX3Y(At)iaYb_t07TUzq` zuZ-@ZpL^54KmO|5x}ze?Ow9lCy+l5#IY;hpso?lzls(Z^_jIdqCf77!r}+7@M>F61 z^)$5fU$VRUK<%yP)}>~*y7K~$+S|lG-79b3ve!S?L9G1TRB`c3Z-m(k>bkB=#!I<- zs3uz&uUo5s^xhhun5ygH6CK~)U$lI_!^Q7)jmf+DlU|&e>2XH(p_)n7Eyv9qYH?Yo zIXOG8oRD!l_|}fg=y;&P#GXx$g49!{mMtycUH+c$Ovv)3J6o5`3uSv6|MAK5=hnQt zOtY^&cyO@U?{x5e6@{tye|~;$9ehMcAlu=(gJ$FN6BCv1syMt~a?+~eL&EeWTY5Kd z-aPlf=Mxi^b%oiN&U6>9oT>9(F^Vl>UyY@h?yf6GRekRW`Azzx;#|llWx^p8m%V6V zjaPN}bGhdM3-k`I{KyzXtyLS4lA@?}fPR zuPx}CwZpvTS61G)69wI!%B`w1OjCuPos;Z0mF|0ZplkVr>Z2Z6E^!C;o$q|4H#hS5 z-Cbw$MbBTHW1cQFsd8EH&sSG9v~?adIrC^t)Vdh-{>PEl)IS?+p7_t~Yiw>$ID2dB ziKKmtEgN+sb~A1~690Uz#uACVzL#!$<`(oG@h@He=w+?x)?1&a={!thZM)8O$@-V2 z;=|8%Z?iZ`8X9gzb|?Q1o*!Oc^LFd?52v)(Ke*(rUuyp~`1$ppA9;=)sOOyd^Srpp zgo&4WGEWBXuuyL-mNfLZ(QMJCcI?ESs0n?K{$Jk3WV7)RN7kz(gJc(xyd6m*;*($T z|6OgVeO~MPxxMa%$8Gm7eD*HRXNL`Qw3*n$*YUd;=KuKcdxF2PbJ3^OLc3%y=qxUe z+x+}(X!Q!u-7?AgzOI5#mCmM^Y~1qaqK)CfTfee6pY#Cg-2N_WdDK%`}}koz?p{%l`lJbh}|*pw{^v z&ywc!%vMS=`F1Jg&cEmSkD6XCHb{SFaozq_fBw4r0w>t(|8o8Na-*&%dXk^+h7Lhz zBMq6^lO8{xJO8)K=|~sH`LBKp$%-%5vUudQ{azrJ%?i16iWhL*OiA#1y!>?04v$~YubtMOu)bTo@`BOytRz>Lk3J{U^2B;0 z4FsN+|Fzw=?}JUz{*S&-&dhY~ceMWS(0bP@f9>o0YjQ--H?J+0PT~vyB*8cJsOWN2 zzNK?d{IcCJzvQt(?!@kGaC~U6%hk?Mkj!dIzk!N6*8mQn18S-n6$G9vIm=^y{!{f>;ILxJj!SEm zMLj;goS&_+XzQw`6V`rXp3DM=`m_ z9X};hhTLco+^ILsV{#&E&{{0A z-FG{!y(Dr@wD|<~)0$henU}`s`+7f$NqZ^cBWHRhvhs$%;}8F7`A0q}Pd%Z=?-Evd zY{K`CTxWypCw-pGD9N}#e8=2)KdDP^>UGLgx&PhB=Kb*~Kg)3b>`${S`X9vUmxX`a zwc_>4zEg%?!Fx2KZkAl;zZQ~kbkX~O;Jxg3AOZ>i^PwBy${`n|9(XqQj_%hq$ zbF9}tmP}}@Xm#IVTbg0cm9;A4s$fLm9_ICVv97%jI3>(dM9d@J9C@vM|ImG%eT+Bn z7#y1PfJ5}izb#v(embYDSjuR6@#PBrwTJ$^)VvWP(fd~>d41Frzt>I|=S)4~blmmy z%BwG~&CFFld#$bi(xjlM8m~g9+>0s~i!T;jQ_8>6Z+iWD#f7eg8I?2U{Z7wS;9~k) z|7{(!!Rl8z_BX55RTzafu}dGi=j>2$-s;u*u-9={SFH_QeJyJ1)u`z3*tL^)scUTt zbeLf4ETPyqVej`p^Pk^&uO@GpsKK>O?nL?ZneQXtSE^s$Xb^shZL7eK3C|P0iPxD} zOk(4EUdx@?8`B}-DmL9DuJ8PUZ!7Dd&*ZZC01G|IV2w z&7V&D$}4GUa2^giuGAq_KJ%vZ$6uS&0}MB?JQnhESdcF9`C-&0-=lAj-o39a;Jo$9$w4G&*PUOIln_(bV+&3$LRvz51o zMK8h#l!r=!|Rmxs-w}?9VuHY6QZIR9xYmN_OOD* zvLh`DE6siTUd|8eoqwpjsbNOS7#k<;*mFI}&caM=FZ&nw*Xz!nsQhKfa$cr;l5F>em%Y~w-^`M} z@a*B?8&*Oa^kpZz)UN8a(b1VRYuQng^q7<_)v=WmR;VRkxE2&3f)3p5aS@YyyUtS7adLlEg{$J&vN8Ocb%h6eO?7q{h!D3a~C`P zvsu6ISJte~bD8z^_bQ)1JjAVkWKHDe2@@weem-j2_EU%Vwq^0NEys6%x#V4VQg!-_ zU0e1)Is5f`eEy|=8A~DOc0N;|NW;#hoNr{Vgw32}`~T19x$*Un<4PyHeVU-?%=bfW z^Z84&=9y#)g{_OpRC&U({M-h4_hnbo=hvqxx*y#4weAYE3qjVth}l0b~pXh zgmgCCZ16U3kY`crbBk#Td^%*o8ZKU&=NpYwX@MwOgMC$-DVe6#aU{Q3FW zF!hwk=bZjv>$!Xe??tvfnk*&m@}Xq&hG{(U*WG$}Hm5hw?fn*_bwk ze(l@7FKcPoAGNVz8!^KrWBl{stNZ@K*1xl|!`sSlHN==J$&oSVu`9=zgy z{GtB2&%?x%y*=$If4)5||8VVer9>6e(gW#x8?V18e*MQ-edeEBiPG@-@`tNSXP#ZM z|IZ@f56`+{k6HQnb1|OcS+Q$XGSL(>^9$O-tl-JixShrQH^6&onzOEc+ z_2oQ0yknaq)%UbX%sQ->J*7?LxCW>6ECwYb*}M-^JN>xo&;2OYI%kvl=b@VM$7TLE zdxO{4cAg3U^x%$XfJ&pgvH!E!(;3%xUYx=8J8hcMB+U&k)jTXrCoEGgU#D~UzPx@&z*QXB&yZ&BIU+{?kyW+=9rys}* zcYoRa?%=*e<$#jYsRi-zJl74CFZif!=zb|(Jta!v$_k^#ub21!(eD0s&C8otZu0R3 zTNT)EcOL$=|C`pY`Sp##wK6Z~=tX&7_2D$EG0^9Kr=oPKWnB+fl-k<4N}sPyKeGF8 zi1z*$TLNPKeGYu#{Loq7NG~R`olWS(ref}o=Zr8 zJ5$R_^q)nO;-^*H+9VSM)wb@_i`^$IeC}sY^9s4n#d}ZuncA(Ky*4DKxGvSm{M=Hx zqByOyCd zd}L>4=H;wuj872$rRJ_+bEf~0!$Xmpcbw+yj#}N0I>eZzzxeZche_cN-KxSiB&ynY zFTOt6gdsdjU{Y}6nOE8M;>m&k>Td7&zgkYHLNG9{V2ep(qwUR~$5_5}Oq|HUz5JWn zTN`O@Ki!mfvtHiZrxp41)6zAzS3}H$IDVh_#y9z3{lWfT>)dmihb~)tUA%rp zRnghg>sKGOw7vadb+Gy*O_2hJ?7y9pzrGXfVl1>RyzVYN!8cLn)9+6I4eKkWR<|{? zt_ykVXm`Wg!`({vlI(uFTAh!x4t&dBDe@{O?_IXe!kN>*EqEAkMM8A5|6z}eg$1)_ zCeGXObc>-#-|G{}DOECg3m5!2|12$uH{OGrIQsauM zVqM8g%1q^Z;}3n^J;5j85p&Fb&xdJi&ZR$A*7&30IyI?vFPoP4-R~V;$9g)I1-xdZ z82e5S&f)hx5?kYOUF2=p!VL>Lwix)Qyxw>|xG- zT_gBbm?33era%@SO z;meNm;tka8<+--KhNv_^{{e#<~R~L`ZSNin8p7YQ4wZ6Q(OpgDm^1koEKQ1~uoM^np{PWJN z?aLTgKmEV@q-~bgx)?dz4w+?%um1(?_+X;^xqh9@1YO>L9bY^jG#XA@=H&JA@wQeW z1KXVqf;-o~Xq55VcP8>H+p%T-$3N^#-l&=_d@uSd6DRxG8MDfS&dNqC%ihgAPi+Ee9|I( zW7qZ24f{pI&6198D_ZhF;g*z(J=5O58C<&$-&wnI=LC+m=gzE|{pMEphTB<7A7`s= zxLnfKJ@$Brf6*?Qfg-s+2OtID@C%g(OJ|} z^!UC7I3I-2A%7?wfy=W@xNyk~qQj z>3HQOPxXcQ_xByUv+2~-{c)L(V=ErAu8CiudEez(|EXY)#mibAbvmy8#v^5N!k{5F zDvIaI&CThv_p{5_2$jkgtZ<1&R;*F-0W3x=>~THJR0yWW24Vxu>O3pTO(|MU@K{<(B|oYAel zmsV}_b@jd-{*`x8+sSovcMG`YrWjjaooaY5;?q?v%EVQX*oBY`4=>tx!;f(tnt<}_?n8?r@^8d&%r2 zmo<0oc;0A#u(#z>;PtrUdm^%*i8}Nq{BLCDO$@4Tl>Y7GqQ~0paoEyv@ex;Jgnf@!=XP^ACe10+$LMk(z1{l$wElh*`Qv@E+;{b(wr~V5 z^T~{t{(3RWRWs9DCQbV9)?*vyPHNzLT5)b!r;lO7+dpf5h|Sx$zeU|7i;cD7@_eac zPVR!E+x~`HoHSJTJ$U@b@w6AYXK%H8hVSi@Qz;Ywk4r;i zebWWSQ$KxMS%3a``1_}UtGjRQzoN6Xt%a4}U+%}I&$A0&p6v8cFbscqVaD-B)mzyc zAFQp{s{Vb>ref7o`H1 zR`$mmXQw5dni2lce&#HfEvJ;#xC4Ebxc++dcKPa$_^N-xUdic(u4wN)0v zl5?e2a9K3n^P084@yvzV^GH%bAnQl~%mxdQ)?xro)UNRMfEJ> z#qwNO#GFH(mWZlIK4|)VPy0x3cwmBM#EuMiftdOm4_>%tD?K_V?SEkXdWDG*6`9*b z1J_4y_9*uGe08$V$M6^bf4{T8aMi0zdu!n?zdI9`|JlAh@I#Z@m;D;YjP?5t=u>$sALGQcerNT)TYl`ttEs&+jJEQh|FJKn z;ldfs@B5aqU7Qxur96XutF!m?8f){Xczj1G~VYT_)%_p|XPL z+iVf;@=0zBTAck#(SLt58nwOyyo3+`Xwi1`|3cgQKrFxw*2qi3<| z^9c6Y|I)5I7YF$~t0o+l_d+CWT~uSsk$X3GYM;Jf{PdCk zG+AA#6tS&!+6GBa3{+H9C+(By`m!Zt$-DLL@qtZyLsQpeFEtG0y)Q6X z$LbKXT=b^^hs3uNnIB!465l?@R@FxP$VHKAS*;FzF|qB6Ehf)@#4Y@hQK|U-LdL9w z{9|pt)h8MJ%%5}RXIc5rvY9Bxx7jf7PR5zPId*QnQh6`7{A2vLr6t1Eb%x@a?dGxk zQzUn-48HnSZN}|8uyo>4>l ze6yNO4^6#vs}gEHmHgPvTHY^X@k-={aEqet@kJHK?Q%4uJ7bR~^DyuD-NLeW=1Z3| z5zo)EuI|j4tntF0K{IjMc?U&jF{{-p{v7AMT`6?){+rc~6%q2kf1a?qp5@UmAn&t; zt+X)GP%KFJ$CE!=My;7_w^r)S{k(O*==7@(_nM}*r5V^-a(vwDEE^c9%syw$>cy0oUO6+)boN*iLwNtB?7t7Klj-F%mpcSCWu-%~o~qnQu1_HOv0r{_(*5 zBfOU;cf^Zsbt#ssXPCEGO>w=#>?7A4SiZ@3sMi0NKIi4zUY)UJ;*UW28+Vfr`<{t2 zluW%A@pY0)u^cgd|R&Sbf)-wC^#%2L^!QW*=&R4V?2MpuCF(B;WI4x|8;%6 zq;LGpqQ0dII_|Pnuj{M3>j?c?_MqC8Fhi@waf{OiH9?7ZXC5F1&W;>BfP zzqg(H@0QywQgYfM7g>9!GT(kfUzoRD{2syYcQ%RCW(w`tG56={8DiN-G#cNmIR2ny z=B~|rhjjieaI~Cl7od0RwhU)h#=Pv)-(qSuB{0|hf8>@BEZWrmQz11-A+~$Vgcll2 zp3g71>1vth+`rtkTCdZY?QE}Bhs3fnHuhf+&CTaH=9-oN`F77$qQpt!oXu%29d~&i)Bkd_?TcICPo1wHyXURmFV|rIw^pUD`mfLuKfZ;WMu&PnTs56pu;<;U z)Dsd@ngS1}aNTNDp77|)cX6?V+k2c;`WM?f8A-GjzSwi`&Y7uqyL%R{_FwL4`19x_ zPS3Y$?b5fTi+6DLRoQHHi_ZJKqeQCsu4tP1#Vd9l&t)f=7SLM(qQzw~@@U9O^Zx=SRzdiHD_^9gPb)F%|<>an3ZQ%I+>NNA~ zgzH}p#F)m5uGwcFGLwDT+kY=Jo?foyWdHj}LO{stbN9mNg}dJ$y>~Hr!vEK^AMUI( zjX7~x?o3P$EIH2mA;Nc#_E!Fwzbi{!?_80JITOngHY+_>b>YUTQfWG}xyH*B-rSl! z!Jt&jDL80%1oK*}lCRO;_VZ7uFK&C+rt;=W=!M&C*X9b#YKK2pFkC49^YW#Cwg%h& z?2Rq>#=#YIB|-l0-l~oh=M|jhvwAIO*>m;ARMoa`mE{R#_a6)YKDkn>?Ln^B>lgbg zjLi4>{z&mY%f7SE9SX>W3fv(XUnaFuiR%fef{{<>QY<%zAvilejlCQA^S4*%kfh$?q8YP62I1% zD{5AWxYxs`prTWs&89tCdVTrhrs8(1Z_kzQdi!iU{^Q2ZROcTh{~c7U^Qfnm)Z*=rIk>Dj*93M`HJ&swcNx1stt zQ!}@CnfR}k{LGaL7v$T%-?~n_?^{N8?(;2Aclo;UpPnoh*gbQ-Px`4s^PW3AIV4Ki9{^;lv26@{)L}i~@RinM7Kz<@;wqe8DZMX0Lo4vki&4Pf?>kX#A zUre6dQ$CaX>w;+vG< zY2pi?zACLw{@-Tju5-VB!EbS7qvVbPnWe`fn&zE4X6KwSr~90c?3?yI*Mg2rDI?ZjpI{14OP0Ov^9BxPJcbj zz0vXEhevg}IyNg^`m!TuNy|$%TBnOE8{Oblp8WLHi74weGYfKd1tp(e_H`v&)Z0Ba zy4~DtPB|MIbsxt2FLb>fb>2ZsZ%)~*%(k#w9?J?;b$rfuiM50$K3xR<9O z-sJ8rS(*GH_WX3`Du-)U`XRfPeBgO zFOA`Tno5UPJaCTkVaxn~miLMDk?PMe&po%x`ih*`a4sdSZu6B#Nm1=f)V4@mpSp$b z=lSPx4psL}LQ>uuecrNU#~d#GxF2(-aV+<>Z=5E*e5R@Q=bc?WnHML!icbyd2@~er z?d^W&G>`hF*4L{xuGZi$6cOO~#J|WXPEzT_;*ZNcE3=P8He9T9eBJb7fqPk=$%5Z? zbryA|miDu)<-_9(_1%2!F3za^SI1@jYiE{C=6_j(MfU6V{> zd@=n_ZQnJ|1;5|h*IJ%aOz@5JEA{Iujr_vwr70foC8T!w-0xR&#EwinVXl!VaLDF* z!s)bMUzf0WWqm1G6YI_^QIY&)!M!hMZ;S6rMFp z?itU5Uj)=fyvfizpmeQF{>r?jSG6~ScQ#LqnjmA+;Ni8#GvWDKR=@9;f>vj(aEbIa z{JUimr|SZa!fz$t-8$km{_NH1br1GG_TGwP(l2X+8)v%~L@v0v@?b?$D5uxw9Ubph z8>TJDb$N9lzdosI_GjfJ2W?~;YqS@srlkgU&C@6 zi4#4u_|AM)bbL{LO7fVvR?+5-Z{@GBNz7OSiG#)*Yk-Ac9hW)AZS%3WvlJ|x)ta?o3zgub$Um)Z2zhR(F9d$;p>&&_nh#HZ`a z1Wg~OwEaA1{oW*MitxopzhK#z0c>9a`t_@m3>UVP2y6Q z{@Ga8gHE@OR;{<{U|h2&$8CLaUDx_v-^?5r$EeM}E^nUk@zm>8tJfLzyjihgMH$Nl zOL^3Ltik@l&}&^GIe#^TI1Mn@~Q33?jtK5}DfWY)~>+dhZdJXhGU+V=7B ze)G4rk9*B~%!=}rCSH%LUTes!+nddrUVmuPhERcnfwdVqGm6&s{@<_o!rr8}uF>Lo zm%TId$76y%^3uX>myaDuKKjab$B#piAC@gil&fXb`%$E)WDuUfdU7 z?7l4FHs7zDpNGXcY;BpC*@b47Dkjg~*QvAFR^`)GlYrp9qd^|WyJrQkE`9pJ`hU8I zkH4$zae$nHaXgj3uB+fz?HZMXCmC(sjc-`6aV{wkRV@x+cjbT{Kq@a;+M-e7fj55G`B34zcw^_ z>*aEmxBp*NRR7;lxS~%Y_P*vm>Dx)mjd^qWU&T26KFyr>rYz>;=anUQ4`k?UjGhcKhEaxqDTQxV|VjIwqd{r1R(Lx>ApsZ+sU`_?BRFK61K&et3$W z#*x?W=k?XC5t<$L(#4Y%bF9^pIp{o8KkJ+~qylzuFHxF9gIH*~ekwqsG7Ws*;v zdsmQ^cx=;Z5BW`>m1IJm%KOPq`F-&5&EzP<-P~odC$$nqdX3pHcmCe=ckS*iGJpTL zFf9t&7Bo8~d~$Ec(Ywp7_UN-8`my1XM8S##_LzOus(h<&IJ<6=C~Ps1+_=%$->IO= zKE?iH`ISFU1Ap)=-KKY5K~Kahq;zS>`KznkY{|2%iA+GGL0AAhUAdCfW=*K*uQc#uYe=>74AInKNWs@8|2g*@SaG7T>qqrO#{yw}^|j&hoZo`Cq-$ zo|T6euh_k2jo{L{eCDT`6MY_v)E|Db@zb^SuU0&8o)vB(dElyR=&|+syXW>K{9}#s zVvC*n(0ic*zmd+`xjjrj_iTQted=?)V#McppIfTG=y?_V{c3-8PESksdJ*r6e?oO< zf4Z~ti)>gBu+d$vt~OEQ&x#Wpw;$nsomrTE@>)@r|8M148@BoExcyoy@id>2yH4C$ z`?$3mAO5(yYk~PLt9M^rvzd3#-nYVg<;mzq!;QKUGhANFT{H>zQEa*X>~dFpob+0+ zsN|5zv9<5q>>8%KE6kg_SH5=LJ6CUKxf=al&$b_6?7zeyaM!QiY_8wy84_FEUeEf@ zHEUIlNvXgqiR*`E|6aCq!K|iZo1&h(RUEbyjK0 zx_8D=M;4WOT~xNU?R~AgR=J?@>w{Yn?#uo@a*e;#^2H|S-Yn1FdsdfXYz3|wGfh_S zIq11LZPGQVrxC`X>Tmz9<0$!h=s?GhvRkWGow?Y+FfTOLCPi{1@5zhPN<%ss&zzYs z!Oh}+m+E`pe=ZEGcAVS4c>}}F=Dq2aX7&f4e-;;B-5UPj z>-BpsEH9@AiAC+L5V>prdlvnzR@Bpw4Bc{Y|Kc2GF70p1T06}5TPdFMv&`6- znX&HpuRl|-Fs*Z3B7at-ZCTO7cMh}Oa0Z8k`>cKBlQK2u@VTz9Uj##(ifv1$Bz$x4 zD9=}6S+20tU22l@rHAh?ZvB}ddiPlG#NrEC-pjw;=!g$`&(PDgx~J{mXCHmS97US(hXD73Z0jHG=1V}v#Ad*UtP+vM01(8zpqP9 zKlA4;x1(IuK0doE8nJybOSVSij>&b5k)l5WZ(AE)5q3^uo;XpgjnUKbOTI>@{?ugM zd!{M^=c0p~p3d%`C?ni(`MBF+f0cPXlPM6M|>jJ z)6A`B{gU(fc%P`8jdY7&I`ioiKb}KVHz(B_ux*fR&S{ruzvLpi*=WM8ZE-Om zvL(KmY~B59;_r!HnYP~46nPnT;IU!ms(D|QI?oK)F|p$9$&ZhPMA~>?mnYvjEYjj!6;+Q!RbQr1N|E{lEg`p3d{IiqL0ucpmxoVGK4=I3`ZOL%oA-#FaPpMUOvEz@Lzn^+pUt-85ru)3po^f}|qnYiS zx7$S@-Wk(y_V%Wk+Rw}KEZ^1sC>2`i@n`iqla9H!E;=l6G-TSI?^5b#ShH@I$nt;h z_>3}hjsG~+YAWt4WPTPfduQ*1yrnBLv{x@Z%$)0X*Ws@&={kr`ABWL5KpsegYUnZ@bv-#Mc zkCC^TvzHp0RennOoL+y?=E|(KUt?bPo6P#U=KI1U?&p*iMvFPc+_AdGdiJ7_k=<*H z{6m^N56_x$0*dK1Pd_`e zY<11P>}MpRSDj-Sw7f#OI8^gleT`sJ^;d(}6K3q^`W98Tp=$59bJI`Ej`lgWV1MGF zI^%WRocnXCTlBZRIbr^L%C`mQc>IIKUZ=KO$q8((JQ3p?zi7VRy|(cEi#q;jWoa$1 zQYzFDmkrxEiRE;Z+$~h5I})z3%`wY968J)Ss``#kTF2&CNL`ut@za(WkIc@zwJNRO z`s%IbGTz$@!cNz({rL3wKHCt1Ijp}gJaDk7`7L?E;$h^D*3O6&!J-sBi>W{EUi$y! z;me8hAHIv9+r9U;X+rNpkd)_^({*6^J<3ZB*&ZIJK{;)$2e!bz& z&fM_3ue2a!@$D^lLk@bK_!F|OSf=+YbDTx}mAz@4*=N5+`{cNpCBIzIX_bEIWn`sH z(6yiq0<&DEJ?hf}I8MeQwuJMtRjQ3Oh1*d3(B@Z^{4bs7-cT{OZ-`&d(D% z?GjkF>c4oseXh^7K+E4T3(US6q!1=A0z0iw486S^LZd%^7sp(bfweokl?Wg~Q?vfL9JmK;6 z_^vlnEk85fd0aRz^yc-7wWZLSW zBi=JF@Y+8yr{481P6#YE%z3`NN=qiI=k{hNhs_Vugz8qyYqLLHX`Su_);>$LC z6Y{;w7izzDY1D4%Os21$;$n}VtqxOc{nzh(GGg+#Iju);PgSjZm{D$gJ-YtUaigo7 z(^FOLq6>_c`O76K&9d9FDofqQ>^fgS&E`LO`!ef0mbmu)o_~JH0nwQ=lmARSpFHb9 z!og@xR(3;+I~OK1t(xh5y5N;-1~YIsYHdW7Y{M-S{lK-*oBA?R%TQ z7Wg>V%KDm2a&t1DEK_yM*s5XW?-wf)E`OW!NsTL~I5yDQ;=S(c;+DnVYWEeJ&f5Fy zNP2Vdi@gQh`z}YRu6TXWt8dFbThl9N<@^7raa>!(edWSY&qPPonUY73)Mjh`@p)S} z@3~a$mS-B;&s@uP%S8bS)~=uwiP<%s=@o2R+uV zeJnM>m%Fq1<>Ba%4lTKQ;}t6e@@DU{=b7Qs%C^v6_wtG9J3dTqb_{%4rQz?+8dD+m z{d>rLjj74`7ClC~HVve6Wb>hmJ=XdfRNv@p9YF4~= z>ds`jU`+w~)FJuy4B zH~Om&rAPL@@P8Ye`Te%-bsx86j;Z{1`aBM=(wFY|c*w&z?&|(_!zVM&U*wmXeeQLi zgVwAR*{N-7irbmv(`BVA+VUSo#yZYgtH1Y4zD~p+RaTijz5DN5%?i_7^zEI4R*=o7 z6Ne+Vm+8v=zAb!XgX!s6(m5H4sk)1t{}$f6x%`3n^w_Qzi75M}pH3V5+c#Igt6@?; z_QjbYv+EyYkWA*$dv|JgJX~f!(d>tu+|Sp}C95ZxpZT zjEB#Z+LOPQEn9M-q*QCIlS%T`@Y98-eZyyp)}>!F(|XZ!c!#07!q$AFX}a-^iHF-b zO?)&Pd9@k?D-1Wen=pA?-r5{C%jlAtEBl(W+Di`IFL;x;vdz7g^>~^5mZCML7w*n; zyKHtTyt%pQV)vO6?)!@JZCfI4Kb=4KIe+cdimNdbq-QUmSJ@bK`l`o^hv~1>7WT+r zc3N7gzV@@>%Z(MkJDpFZX2hqJh9*ohfdUQIkDWoJQEiu=^R@X z`RNSb&3jhOQiY$`s#ukkvt+hSS>qD+H0w#&TSJ}%<3fI)OY^qPQq#Nkbo~M`7sg+$ z=N*Fj_dT0!#$R1{YW`1$SO z5q_MebmjYlf9SLAp%3pAmT361ZP?0GdUrz2ti+!= z(W$_LISRj#v+yBWaz{^-w&f-3(xwu)_O`kqrt-+bA3Mc|v7 z*~cSZi_E20)=CJ!N?>@Ma6PbG+HytuJo&X62Tot9(3>ohHJiO{S-+xoFXp{^)wFG+)=O1Iv0ELo?uy$QA3QkR#&3Tt z%cy?xvR+fQhN##Yo}k#h<+3l6rwDxJa+K|~2wh#KG||K1SkKBe`V+T*jZc2AyubB& z1Luv6shr3DKdqeA#O+qFUxa7(|G+iXFTPLt;eYtha=GJ@^;Ht<6sP>##P}*>M1`-;Q|?o`t$%5X=;3h3ea)g@{2snuzrRhwEvfF5`^HZ}5u4L`Eql5?D!FAp zUr^SuQmev!!jIJU;`6rR+wT;0e`L*>uDO3-(yCi7EW2xy-gP|8+3sC=;`w@s1D6=Y zdPJ7^=46}B7VndPy7*J+*3TvX)>ThkouA~^?P!*EM&fXQcyjDhugy_BS(#GypH3*Z zZOom$W!vYV^()lcroHt%Tg0{e$@{Y|41$;D&!3;c!hh;}-ZD=E{yCOPvz&AuRy@Bd z-Z|rEQjwE@&F}M@I5gLIN4uH)<+`>g<+|Dz&WC$;DV_bHq;=wEpV_ZFOtn+EUIu>f z^EuX_K7XOwM*CGW)#|PY7}Yy>&M@0__s*f!s{{6y*_NHFYhE0?LWWsT`BdA597}(( zD{>}M2TWuyJ2fp;ujSiabS5M(#{W7)$~BH)(Zm_-Z9fu~C)%ZQ)tuOo_w3Kq%FS*{ zkE|->&L5OhE|a}_{oMOE)zvjO!maC`ua=E}KlgFj_j{ImWsmQ(dj4?E^kS*!)z))& zX8C+xELrY1an9#Jo4+sT+HO~w@$g|njn+&PK8b@*9?ZF>>0Nv~ZrePQ_cBjke@uA! zibk%|J6u+d}3Yw;b~q}qQYWbofE9)b1zG47EZZUdf-dOme&QJ zB6jI?pX*yS;pTnT>-R743m?1D6PPV;8zE<=6SnqtYxMir#wDElzSycHIXvHTEn}4$ z<0Ai6=5n>A+-iM)xHd2AHxRmXF4aSL>5?sNYTLXvWc}r<*{Ue5fBy8s&U7PBp}U#) zt}!=GX6muOoF(LWrl9cL1L^OtRHc?ay7gpjX?D1%-ZRBp)3Y~y-j|@hdFFw=i<}DI zf4y9AO>?v7+Rq2A=j$Baa^NMp^yAssFRvO}LmuF7lhC zo1V(-Rn3bLsQZ5-t4H!0fA+QaPCpOTsQB|Z?mT>C+nJf$Cvdpl*V*y+)@9w3Rn-gR zw|tR*^myXI!*L()@Erc+arxHUiI)Cf=T}`n#`HGd{>;@?mcOs9V~<~9cF1)%|J^O& znY(^osg3(4?%sIoIDgbO+5MkGS&bL&;8gp&eVxbip8dZ!f7AHa+3?)6#^hhm=D^F_ z?Th69D6jhemCL4`U$M%WNx8H0?$xOGXU)5#o3=&$y3EtnaC=6^l=y09De*JTPu{ZznQgqziGAF>#`jO?v@mzU^|SHHwN4CN8axY% zr?&c9PFJh=pnLs|f__$6(B;)nUbE@MR2ixDN+apT&LUv|-NVwNwiUN2_0!CzVP z$(yMUJA<{%FPnGyR$j$ zut)bq?rmuCPoU0avu2-HJ9`;NA zf4;F~O6wc>viY<6tA3U8K3MR5k=oKGR>k7qz4E_jpLxsHRp>tBbVu*EqJQtrGF&*B z1@2`(oXp;Rx76&|r{-hgpD(zIrO#ni+wGM)MfS_Vbrs)n6@d<yB^+8Ou+5u%>%<39=C~V6zVRE*J$2&9%jvh8wbeA6 z=hWPq&$P0`*v5{d`B9TWaf)i(oajz}vq0~OnTPhi7LdH)W;Izm^S;UY_wK(;EE_k) zIn^mJgd^25ae8Sw$s-8V|Vc(gB|r+GdrYq#H=nk_P`?V zafHvS$F9%pu8VHoyV*@jK`r3%)W^1lIuiP8Zgd+qYa32mwy7k}GR(1rvwH95*9y1h zi}bx&@GEoPiS$)lYD8V`uU@_K@UOEoJ^cL)(oJVZ^YL>l9yVsk-}_fj?&s}bkB;7B z8xC$+bo|ek^Bn!fvUOkWY_T_AYpvCcWiu_$ri2y5nBMod%M?@6 zSP~w6w({z6wak=HTo@7Tq}{lM>&EfJ(zm(4CtSZ5Yq9jbhp@S-?b^BL(%*l5CH*$J>HkLVEY81$ z`Vk$+9^14$mAElIZo|v>)F*~m|Xa}wm<1fN8+8w$(Cj& z@7^|ksGaiXtj*S0e?;oe2yA%9rrI49aM)L+A$o`PcebB8AC#v}j=tw}vM;Ac&X`3! z8#kP0 zU%5B4-EN8awRdr?g)fZ_bxMsS56E9$_g8|aOKN56`qPX$H$`S9`Ek8&Pgrjta`nyO zcbjxy$h)RLJC<_Dym9@m_c|w+aAp{lc1C~a^mK2j-*Pg3qp9bqS6v@GpVb@WpRYEF zbrQbVDEZ=cvWZfyaOa%eftR+6SzgJCi{HXydWEC5{B|%KbdNnp{o8Osxzx&nu zY{`W0Cj|6){8SE}-Q1F^as1mIuO&y>i-X_Q%n6d!+z0TFF?3G-`}nVC z!n7q5zuw)_YX8pZ*@@3zzh8Owa0RonU#2k3nc}#A zP2#6!P1LThMGqwd|B?9Y8axraOJn`GaQL|%83VxPbAFQUuM~r zaW40FG5?|7TYG*tGZ}u|$^YQF|1&M$lr4okS1;$ql+?&<hG*YNX>)}0XM!C9!8uiaybLJRvHlN#jB4^FDvOA2dSA*@! zN*P3$!_LGTN{7bRX5Zg=bJ>p{6({bmmzY-n`}X~UZ#UDWpKX-bbZO4i`q<3BnjTT! zJdvLK+V{`R?mQ*DIr#o`oyeq18vH+1>z>ao_lf(oS@H9wRqX<%nUB0~M?~#7wYxZA z9@nyadsfA4_01Lf9457`EI{VB|NA#4yTa|Nu7!Fmn!A3T*`bVI0m7?;1tuw}?Kl%< zy*={#s(zn<(_gkU#V+#+I{p1Uulb#Z5_NsYz|1f3jUVcj9P07N%SJzbz zG5E6V6ih5%7#7WKd1~#yc^PUOUF|xvqW%>8e*51gxOU~m^Sp~!KJRpqIJ+YwUjD?N zrSo^(;(a~A`CvnAeVvT%m*Pi~%DzR1_BW-@E7YoG`hMwvgK#aw?uy?N7%p}+JZZe~ z|NZlc)wlCkzRzRLRsL1nyNGkfi4vFiN>R2yf0VlPgFnT#w0vtlIq`wTt`+`sf5(Pi z-cjflWnI7hxa0HhWt*+`hu8d-<>6D~Gv2^|Z|>)Sdtwtilb3WC=G1RLUC{UWY~cDE z*DAtntk*r8*K~2y^XlI>&t0y0^US?;^W&MHtge0xFnFzYTe&KCyK`sB`m#R{`RfhR zK5Q-1jo)`?M(+N%+iu^w{U+u>o!p{$-JEATmWh}?zuHwL&N6+=qepR8J&{L*wfDJM zuU)c6|5*4;Q;$V4VZvM6yfWE7>^;i5W2HE&naqZgbN@5$&yLzK_tVcE1xLkZ{ZjSX zw@)VB-gr(0<6kSwub$yKfyjuS4@P?j$Y8#99TR%_ZKWKP3XrhU-kZ)*dMW&zPyL~%Z zIzQUZU0k=kdh5ZAOA{@MuYG;bWX)sRn*WwH{HAr(3p0A^7s` z@AT^bWt0CM{}8oS{r$x1-KKU{*CTs$%)f`dS-(u-=NnCn*Iyo%Xs7;6+fsPwTqfVQ zJGNW+r@gvSE4xhwn)Cv$;iKlVd|}K3lfkYw4S}7WZS`t+BI@u(eJqxg)FdumA7tz2{fSE=t-t zaq@icw;#;KO&3j<{_b#2_U(=!#f@cUufv%{>gGi6eG%sI!L0s|;FVh*yT3g-A~i*% z<99N1!K+^~o7Ge<=tc;vHL40Oboi1at9$!**UOTwq;1EtT$!&=;4-rQ{#M`JIhUI) zc!utoj1`ylq)ok4S3EwowN3cW6G1r_Zl8r`GZu(4|Ku!tXS-Q%tJy?8(Jt}lQx?U` z$FuyN{4(bn?{2m=2MjsNUM{Nk`Vsbb;exLxTcsym^Sfvwx`q9uZ=Ax~8o4a~>epX!8TUz`sn)C5je}6a6K+Sb~K7~KY-*Hj)u0>Xo*AKT18)81L zWZ!!I`b13`$M^&C_4~x+>%VBO+x5$+=G)EZ6;CeOC;sl6>*3{N;PjIJ-^)Oo?|*{d zgm=$ZXcTDGx@6PZ{p<4HOK!W^_xzi6TR?htm!-V^p<}+g4U;MsUDP{wYo6!nu7y`_ z^`=xh-pSv~t9xy3)S+M8if2vxf8{K!o7Z7Djlc4mO04sj9R5pUSKFm#HuWZ~ESt6W zmQ8_8vEYZqxo+-97ppGfKjkT1{`s?`&t`Qc=H?T|C!E(GFc1k3SLoPsaBT>eSC9XK zh8p&Imn{)%dlxO|G`r6xF5t5-cf)T(`~3{{m2Wb?$eT4To4?=l_P=dE%l(#{b@^X7 zW0{fQvy!VirmXLG?7XSVKb^lD)({?FFT8)}*YG9bav%FX#jZ-Y^zR76zjF#Uc19~y zloxJm-RELs5vlt3c)YHN5#z=Jch#z6Pm;eJuz2!z_0dINuU?s_ad=0M#Fd~!&pQ2! z3!OLfxAoZZADkMWRQv9C!FL`d<0fvMnFoHK+8(gWf+w?cWyR;u(K($|Fg&DN1z{X0CV?%r&h>y^n7=U2|S^gQIt%ZW~H%l0pJz7-G{ z-gnS-@rS}^t4mC`%XXL5ckE~oN%^Yjd(4jle{b&^Ka z0?pL7$ysHlzO1@8W8BW#h0mGt#`p4>Y0uK0H?{a|d-=gZ_|CR(%R3kIw*Gu`Bf5FI znAoCTpMR6v*dHGfPP%ArH$^(}c+*9PMY(QOqVs+g@K4LrJ-T~!#yiEE{KD;DOj`1v zic3A|-8d!S_T2N%ddH7&x|Vu$ZJg0pX20^D?^)d|-}KxSw=NE8Vn3_2?$-T|xxY_% zJkoo<@N&}f0AHsMVMe>JPrv%;&J>4c2H8H5%H=uxE-#)@Yb2Z{ao~=@T^Z@c68T(8 zHQNi5eWh($Zn;Nq%=#!^^5i1_Zu2!qmYCZ+-kQM~cI4dtDSY?L>+QPYe>2zxpZMTC zxA9_nyaJ#7w*CLCuHF4@u*ZE_u(t7psJXrzvy6D+@BX(w!hg;o!OK4H%oP||E%s#Vq11r6b~O3(5vOtbU%{Y-m&{&OR{+yUA0JBbprj85mwuAZ8< zMq>B2|H+1~Z#PX@|L&{biD?qEH>aOB>j|5xIAd1`Pm}*!9^dx4yzctXxSnS}-^}OM-?QPf`ez-s z_n;GL-px(?bS2nd^71XC-+O9*mo?XDUh*}+o3f>OX{*k$9ogwG&3%R11ZKJCMf_wf zyH~|LEBVsJ_YbRg##JSrZk-;Sr7F~Go0(R7%H+-OT2gJ_n-?;s*SIV8^YtolpJpQo%SjV$H z|4P;uu4-FYyx<{>_Rj%cp-F%IE>C~U) zoF+HYu7;`~4ZQtzU2I0<*MOU=RzGV`Sh%3d>%rm38Hd;HJ~i!tTUpt*kG6Wnzq01H zsE3rND|VeTFrHb@Z@;Sf*|tCPv;SVI+EHg~di|!{?e@K|^0#>%TC^wd@y%WrIl0?6 zB^&4Xu+}W!8@jLFs;R2WuGve)#5qwutE13znc05zQ>$k8%#<^1nECa))wkRm@3l1! zdv}*9-@46eo6f3axpMo;`wtJ^+#)w$KdwJq?!42llwaSK1vl+Z$d;En)7|9v@vrU2 z^X3_XO4XBtg$^wj|9kX%(Q-Ad=R%D)9cEnLv?As!M1tNT7Ne>C$pZa5>p?yRWqwars^*gj0WyJGDjPNqM#A8x-+e`G)3CjDB{ z;rz6Thn_Djy3{?3h0FBF(Uz{4njO^_xA{)}arLfq;isOD&wls+J3ecX{i`&YyJ{9s zm-&@f*{DodqxiU^?7(5g$^TX;74T)sbxJ%t`Z@EA>h#0&dv4!p|KHITe!uDX3!W{U z*Oz^r;>;MZBt(xhL&{LhDm2;aac)nYi%XL*9n;;?U zu4wpZPH~t>^10Q;g|Ad!e?0Iu_@e$^;1>NO-Pta;har8Q>Exb=0zKclj;~r@91s+f9JA=;)&AMmuTNFJ(^Mdpce9Vanjdqvc zdFcE8O1Uiy7YZr{gauzPn$Oe3l9gS~v{v?O_5N88GkGt5%RRGG@7(wM)v0w$SZ}0r zHwH%32|s_n>TK?ez1yUeo%U)dXlrnBU$7BdeU>Xq_>gAK%FW$kJmNo}rpdgvSz@Wj z$jG%Th%xQd2fMzIbK=u7e)%nOZ);6Y@o06fxUgmO8SD06)rxkT4xj3nd0eN}ZPD5u zlS*GXo6Vm>chq{wp6?%evrSd~zbU!x zc=E$TOD*2-DK;#=#`EUpWM3;6dEw{c)BiG^>@2i+z2>q(^0AU+M?>psel|Xt7T?+C zfeTfdrb)0pUNZUIa?|zN1+UkdPu6p-KXZOx!y4Jy9;XYI>fgT_v0rbpNw1dCw%A_z zN7LhL`A(kn{N&QI_2$OS_iGP*y~7RvTtY1Nnbc)RT%UA`?aP8z za^C!|wD_Z2fVJ!)S$1^}QJ#_7~1KwRUgJcxTfy*Jff@pP1Y4*zRj55MD;WZQT3u#~rCPagOzKc^?~CK22+>{^nx*_vJRzYX-5#wI?seYj!pq zw7Xcc=bz~v>Ae#rEE&4D@9+IHE5_+Ul!sOGrF#iZHHR+PnTAF^50>#n#Vdr z&8jzb{*irBbA&ZujI;uJ1VO5T?CXhv~mwmGF|#7O)LG;H;!fg zD_rcSnC(n@syA!>(v?2X6Y^L2n#6zkx{d4CP6g(cOJRvuxIQf^`7rHH)srXJXQ(vg zS3fxX?M~L46WMMPX3LxQI%}k+DQdAF$@VWO$$wMz`hb>O#|#N6^yKAAmj`aCP(7uUJ)!Qcu8je&L$<47)M>7ZQE^AKw_13g?sz+WQPtg|HNP(J z{a{_FWORMak&fAU?g zjTgTswyYCqU3X9O{JHnm_VTM@o|k=je_#HWv|&<8ecHGqk492!gbHr+L|55{N1xlWU`txJwBg2eq&>i?A0HKFHE||zw>=f zgOk_aO4X&G=g4;)3b#Kn&(3qjduyJXUy_3yg6-!`tPR+iqFEI7-YGh!OHxV2`9!L| zV1$r_MO$lM;PRg2j#(E>{>SXkV%=u{C0*y&&7C*C9ZCM+a3=M%2gB@jS&L`dIcTl0jNF|f`ASUJ?e3(b8nJsgQd8DUJs;oERmmOr@28W= zyR%EfjIN9F-B_VHc|zrJ<`b$-uZ{(`@(CVKzOW&u6pK(m3smL8;yUKc5SaNv06Emkd!k8LBwxU*Z@)SF9K+qOv)%~k)#55#@^#`C zi`sMYZX15**C$%meg5HOWW6WAvsM415$LweS+({2D^~^8z$06y{^t7V<#|lrGoW%`%C`4Qq$mB(f9HSlo66)r0R~~x zwlA7B)w+IMt}C13ZQPYP>Gcb?bN1W3e`NV?W-l}=pCZ6N>34VY->GIVt^ev6&a2Vg zb+h?RbeLbe{nqk;{S|*+pEus{x;v^xDD9Rwi@oRZ%@U6u-4b8(z*DclbuRa!mx~_% zI-NGLqJBZZ{q1W``Je2wWZ7a7QQWgzWM%c11CP=kX5Z!XDOtB^Z=ck$R!IYyHFNB* zY2C2=R)2o8Nr7qqmKW_jGCfPw=Q&&a-Dj#F@B3Qg&fz_OWm#@FZ;vcKx5oeM6~5es zX`EXdU)%rVFUn}s|GstlMVIfoZ9h*J`Bbu>f45=(t?D;RHfBcbdX)2J(XJaG&5!iw+G(L4hiWmKy`fu8XAa}8*e(R5S)Xp_?tYUt5>uv*MZPdmO_r*Sk zTO2jyzRUc>I@Hsrz|R zKV7R`ozW|Psw>uxQA;2^PwFU-!r|`%$Qx!$&y0rhImpd#4;?1); zk9*Jl7cuSVg3!LC1Fy~~M(w>8bzCyEaK^f;OBC;&uZ}dD!m7R5L9*qDUQc-1Q^nOR zC707b75z%NTa>$4C`e|l@V?D!X1x=*A@_*)K6~(MY1i^9#R!iL_jYn7F_g2I#eGPN zc4f{Mx_n45<*ZMWRat^h?)xxnj@Ng0f4k^(!)(o;EbXl9tj=kr7s^`vC8HRxKe)Dy z?T!AKr&e?Oy!EXlZ8Ma1Z&+}H(Rp>h${XeDF0ZerNks(}6ii6`*Oj;6pTF0O=6bvD zO7rUL%p`YA{lPxf=HCAg&g(9&_OQQmWYg^*`)2Swdimq8ZFzxyhtlV5T>opHiC$`a z5oD|@%YVuBDcrure1_0#rin}-VU)kSPyEED;}+~!}U?6$y6 zZ{_1lmmci7d9^zF!xwee2#?bOuelr5?ez~f^;TyxUb%Ebw88Gjm*P2PN4G}!99(2? z^GB)d{d$GPGt|B67VlFyzh-U8&zHXOr~dYwHs5EI+@&GZtdMgsCjGK<;H$t_?}bdl zuH?769<6xy)O_V%>r)ZC{_0iU%2d6rsJ1&(dG-r8?-i;ccUCBMK5Y8E{*Y<^y~g16 zcI-Egin`4>pdoEA?~>+O#?N=ped$;q6qKNPBKl_q-`b81d+k*|hhN>gp+kAy4}Z=+ zbB-TBFVyYrD4nynFs)?PP3<|8&sdv3nRYc%bK)=0#ghwt*W6jjdAeR{ktKV!((Xm!0W!XPU!3b)^|no4<18h4;^4i+x0xn4 zqdWGbP0e|Da0^r8S``mARq12vK5cN0OVuk2S+~5ch@s8J-|_tgmd~C+;isJIxvH)$ zn<;Z`{#Wm#yB5_v2~Ax*fu-TagnMtF&N|WlBd~8(lfG*CBu|~M{JE~qzP8uit#Zw( zF&3=LJJ4q%vVGRKU;A#vcpZw-{^hn?(e&JWyNa!z#UCvMY{a&lv9@Mkt#fp>LSa>8 zn&h`jC9juyK9q2ne3|Q%yYw8-WAeJs9tD2y=XZ(fk>3{+-=>pfa@B-guFv{AEr`1!xJ>o$uS@eqRo#70_H{kI-1E6_Z|RNm8;h;BRthWCZrr$mOS|aR zhUT>O!qq=#Tivkt`fd96-#Ycf)dd~g$G$BuGdez}Y~s1xt(R-$!+QlYdpsA1s>!%~ zxs;}MspBHkv+{DU{o=auZD0BS$tqq}Te!0;Xxo%KQ9pj)7xY}jv%v81f*(`5uX~+8 zx-;*)*$+4Or2K1YU(|wiYR_m~W^BxCE^thnX1M=~o3XZy-~!A20>yRJ?0+6t1;2i< z{)U(E!M}cXlXYz5_Ejn*ANtlB*YiLs>z(=bYlV{)6a5+wn6#8$-l*lKyWjz%yr*PvAS^w-Rj_K>doc5md21d?}oIW zn_F9_`m_Ef6ZYKsdy*KsH|n`<{$zQJMd<3`%DUNHC0`G3+Rc^Ky!NL~{IR*sukKlL z=zS{JdG`Kx{{FMgKldKHvbBbBwO!IGO^@Ip9!J)x>+&|5)q9;4l;nMPo1b&airasW zCW+K;Wy@VYxATUvzvH#l`UxLyT>K#GARKpjdBRKU{KfyzpL4$R;NXe%>m57S%d_#y zb{*mj4)Bpz``gBUT|=}g>sik!!H*MPG=@Id_xD8A%hH^Gm*rPD#&FyBIo`K0Vq0;M zn@jG^V*UrajMEc8$iF*0p)>e_Ys=QD99yn+T-#7kVgJ{BmhPvNyE9kL7RWm^r^BpY zMnz&%YK(N0dBNKMUxX`KSU+x1S|pQtb#t-6WJ8~=MsLma`wz<>^maT`H`Ay7$HVrG z6(5sctJWtcCH0tXh|7>W;r=zb-!{#s;r8#=x$Vam)oNU{nXvN1^Lf?hICwPn&X^>$ z=t7k8LXKYh%=`8~9yF)%X!bSDIGeOXOiXN&!=ZDG;wvZa64uDuqvKWcmK zUzw}tyP{ZKSw*MX9`gwGOuT?pp+da?r{quRN`b{Q;@^NeR zpUOMfSDUHJJteO^IZo=}x7|A*_P<*9Qz!VnQTIE}dAZBJo8K=H{`c>U@sIQM|B_9b zLd$NK&HHF~es5cnwZ%*C>iDShM*nq|?T~oQ^z`k_{ilRI9aqdhV*XH;%Uo1&x`p-< z(ctP zZSmg6HwCe@2rczr8m4?`}fMf-euqNe=FXsd;jj0oAAu3GY&{~q)n@ylgH$d zz{4rv+?dVl@1r8UA=kxc*-9Nf!LKQkc5RsOZqthoeQP+q7JoP)_^kEvbKf+nPw~s0 z``wS1bUd`VVV4&m87Vhm#zRfVd%jc7fAR8O+){n$#qn^LP}AoA8F%I0E)>gRfBQ7X z`)2qXQ=zz%8sUtfpKb?0>3WqPLhZp{5=+5MsROTGhlhUSEO&GLVP_kVcrKVg!UwN3}v0#m;u)-P>hd!=8 zvpa#R*9-%WKVAEH`}_HQH<(^U@4S6`#^t7?H+dz5WRGm_J7;;>@{`U*ly2Xb*|F1pNt-rU&H+q}Wq;-E~mMy(}Zc(GS$g~IR ztn-h}nVcq^&gD>eQBkYLrX^MW!rqXWDF@fOP7Smy7fxTdq99|%CV|8c+T#C;@7+vK z{I=$%hqwQd`Um%eW~!aIP`2*h&9ggxy;|Mj|K*tc{|b5U=dGcu%^#dvy>991vn5<# z=O?aOq8J#kLB9U~Z{rT--goDx_8#tDXC$tF`uQ#A%|{qZ z`j1ycmAkCJv1{|Rcg#r>gXi>G{Wr+DeZ6JlU(ff8m!AGr^~->xMiY>oS z@ce1|T34>idhgeE$<~c*S+iLR`d6lYUVkgJzu?n^phtf)dQt10 zGf|mbRvfF#r%#@_QBvJkzJbsq%`T5H|EW5O5ZDb^j8uOch7+XF9K5-^p}1Kw&M$%D#2E; zJ@xIB@bdml&cq!%>Ur)(hPTzPw{2Kya$dmirIuLJ!N|ye>leu{3J(`aEcTUNxBS?L z7mR%={rhCOPyBzsYVXx62R<(fjm&&(bt!0W=dv6w=1VN^yw&n^!Yn5?smUzaKZ9eI z)8$9HCl-i(lKk@bw}AQHa`VuKEgQeqJfE>Iu=?bY&qYccl~X!o{F*NJZ2XvVhyB6H zr>zmrFBi*JYZ)f{*qoie#dz~-kAi!1f*aqe$oR-ewMU2Q?Qbv78SI{XQnp;F@`r`X zr8{kWS!^E@6GOrb8(zPdyk=^xwx)gKKI?L`%;kTsP0!2A(|hv&)4l5VN7rt@=T)ru z*Z2OZGi%RSoz__^5oo46yUTUQksl((5erO?9uYcn{J3=6OrJG=GYlBD!`GSkgwDKF z`|V~rZ}MrQ2HzIBx*WSCt0^1FPS&yq|7|M#)qSGK#mo7ZX8t}L0(%x9T;;SW`Rte&XEDD1`i!Qg(! zf){0lzM_Vuhb86J1~yWDbttB&<&qVFc&N{*Kk6My6Ow=b8Y%h&AX3HEt^ zZgK3&ul@Wo`~SvTJ;%=U6H7$?{JOs1jK_Iq{Is?mf0|F<*?zBIMLBNSKGXQLGcyv8 zt?E$U)>rl>@79*ipgHNKE9P%`x>PiK>$$HVuZG8)K6dAc=M3}^a1J+2Ha)-O=IU~z zc%5e@_xIJl?0@DpdEK?xr|NGLxG(M7`)pQr&$G3B?q1Ht#m~>py|E#Y+4ty6hUW)V zjAl*Ue{9XQ#_aW>@rR$(pSS%!<6}18&NmsJMyqUX9C>05>)H8aGG<)pxBImsG46C! z!?T7n8K+}*ZCN&T-?Oe67k;fP`##5e-pjgazx#skD4saE@(bjN53%&&%yj(RKUwS-d{N zXpvVk^{*YADXy>_~;^Yqo(2Uv^dy58q-5n6ugmb2orQ&ztO7U|1PYZiSg z@ZJQo2XCrt)V-M$>txhp4j<9DRXm}0 zo9}Az>wI<28rN;S_?w$@CFFYS1nX8PCEk1_Z~Ju3pA@6|i*>t zviGkGzrQohn~^;#=wP4O5|y1FR`wmVJ1+cOVJ6e1MJI0`vJL!d=F|D^_C8x>S&vZb zZJcMjReKg@v!5^BX8R!Uer8PeKDNtiuIpYucXYG#zrLtnTPGdo=VZ_D$w(DvbkE&Y zTFhHl_q0b~3ef@I8)$(|jUcSc_ zij18*HdZhG{msPryz0}M0AAL+Z(ZZ=eAZFvncwh1eV*gJ7WIJo&ubUN%T=@%$xqII zu$ZA)@j`Bp@$(h`r+mz)oG2yQZ`ZscJkCk!qe1>7$*Ae9cc(tp*ks_CBjx4Ua{NeK z;Ep$kA}#(t*?6NWnQ_y$cL$eCe@hO|6E=IRx^1W9>#1Vwn;kxQ9XzmapGo$uwt{tn zn0>z~j4dEs#X-Pu(?-qgJ{ zxOc<;N?p;Vu%Fh=$4akn%>8`gq;1FLx?fh?)@r!^4^&J^2&!M5T~NO0QkgH;*Ta2V zO)dU~)Y}yQXZ7%XmwGOlPw|%Qm(BNO)czk<%{pG_pJ?a3$w^*nMfUUNPdCt#bl_S?ZomN^r zKK=JkWL{3Eo%fyO&d;Gwi*-_eZ8}u6|Dlae`gfgp@5Z`^Tyr+WhBK(w@4YVZ$jozf zf(V=U^icQf^HdiK$gbO$v_fb3?8RMfEdd3gVLTCs_*4TrRo?hdl`#6@^zq*+Egxw~ z?}KsT&hNGLHZ66%?bOBiCgMv`RP1M8g+1-s`ny`3*= zzAq0k`dIgCbG($)9OWwqw@&;U}wyl$1-cZ3RXwU)4Dl@ZWX+|82^~kZ*ivzkgTz9ImkN zpLG5X;coH0ZP9hb!t4INH0=@Y^SyE`cHf`in9q}UOJwn%t~Xx0MRkV7Eq$k%N9QOe zeo>s`fBAr?NJ5WW^iQ=PCTxKs)~ydyzP4IuoR08LT`n?3y>6)*Sl+jMg_2VKZNA;L4uire(xNfX`Jo-KAMzb47aYBY*3+x*-?`QPSk zLW%cyEs|3dPVsMjuyyB|Bk=w3=O?n@$;(r1h>y8 zc#rH>-IKniU*A6 zl5F(`^?Y--9_c>EWcSCLZrAmt|Nq3Yiu+W?G3zUH&MrN@v@Xjy)3}y5D)+z}{>_Op zt~VtvEP3es_V2GhMLK^!C?969TeTuSU_sfd8{$(Qd_P&URX1Tdln)eOltjS9eWThBrPu98~!2L^>z7vIUufIlwSZGd zQli&!qwVIg{^E8zfhx17+-o?fq=hy5wcsj%E zajcP-*;`Eq9@Do`CuP1U9z3S4IMG$!?~6x=@a?YIPOJGR3K{MHlcDxzg812%Pa8@P zt*`5zv1H#I?@6yjg(KdWX1ZH)?^HZlB*!0b_eC$8#hd)NBJQpE>a}lX);+JfS&@{)FK>6p;Pac^=fVwdS1Y|+ z!Mo(=Z#Lf@bBa!Bx*1#O>z|+7ve{^-{Mlu>$2$4yWwL$uY}w@B#9b8N>^9%tw93@J zG{E2hi-nGWuIHgOTTk5EDlhr@`K%rHbf$|>6t=suV4e2;i62+-?kYN*mZSXHJnfpv zCDDvqZ5`ehXI)(}(@bjS{|c$(&NFSxmlS^5wm>so+cc_U>!m3<&KVX>!ILjkZIDQP zZB`I-`8?; z|J0gg)n|Q9y3y@e`RC(tX{GM;ou+;!+nxkRfB16QUpj5MN!{5WMPFyiW>5R6FMMu# zT$QGp@2nQP+Fue*{j#eseVDp3nJ|&~3%REREH3m@_X$)id=ba|^w)c)R8Do#OlZ zu7`dMshb*}nDQvHed_jmRi|f6{LZ6&`O>z#pbG?RemrbXTNhJu(N#_M_P2S3cCY_V zi(PtS*KVG}FIU$&?3V~GyRHAq{I>q7;3iG+_?nH@+MH`oyxGliug226HdU-U-gL8; zCqr#gy>{5eJ9g=eOXC`|A4MA|Sxv~iBx5JJU+l{t*J~%2-M)ME;JF+5of|EtzmtxO z5AOJTdUfWsO#&x5ZNALhR3g6l@7+V@*ArgX^CceWNthCJ`Fy13t^K#HPyaC0UDU!G zuzAAmI0Z=-BTId!kMCqt+C&8BON%rVFIP*tv|HR4zZ{kpIpS<_eg2=O=89)i zzefCdSSO^+9N-;u*f@Un^jI^dN{ds=9d4bdRJ8cs6S>X9JtzHPP?Y=kC(|Fi+}@$@ z)|zmALzY*#`mW1Al=4E#?Ei@b?fCdE`k0dK)C&IV!52%;D7;b>-jsD#JpU1Q>y}AH z&p*EwIBN8IZSF(4MRMP^zRG!4=4KT4?`h7Q;#2z#64F@s0#`*ZDC1r5wSCSiwJ*}| z`s3pYH$C1y@%MfX+54P7YycVfAv67PT+32W@9%&yHpH&3Y@- zmM1)&Uz<}kB+%l>8TF;5Yg}KMJzf7(_4&+O2ZIY%FI^?%yQL-YyzQ2M37oS!^*e6~ zyLihsmQ+4+SBf?``-XSlOR+ceEjWMIe=Xi}QD=+3ul4qz2^&JE)$EvL`G41X`OJWr z?KdRPtls+HV_POS-<(ptRqOss2Ce_6>9ixBOGRbXCRyznR)zn#zi1av7E9{f?K^wT ze#aeMrR$eB6qrf|Or82wLvN+S$Ht&X{GujVAx&@Y1nJy=*=xJH(rohA{tWviU$~## zoSEJs_bWbqfwRd^c{3FT|Gm4|xzDY7xJy3i*5P#-QJ;5c-BzlMaW%NA`QpXGeR0Zj z(lzI8&bWR+cH`cPb36s6?Z0;`z9^K-IdSUvkJa~_f)&5B%sQaIu1F&BUBleG9i@sB z-*uMNgmkioyFNU)``oex)msiqR$0lHcpa)N5&kvzQz>8asq>q6FRp#^CHc9*-1$p+ zizY}dess5d{;JouukYTo^IE$6f*;?dS0|&RyHCqWyKyHxv?%^3^kt?*o0S>cMb_~9 zK|4;guVy(O61te5bx)>gdXUDm^OfA^_s8_Jru#oLNjhIFxarJ>b5H-5*;(tZteR6{7j4Vd8YEGr>#5sSzkv@*y1L~8ySsNDvOhp{(U*Hzwp&c_2fSmQRllk9u;o5 z_d~Db+~25IQzjPKoS6~O`ma0D$BpY;ztY@^%L%`s~+h$vNxYUre93*tjxv#SgES z85_OZLPeThKe8$Lewv|3^={m`cTBa{?`59beD2PvGO_Is7UzCpmtOSQ_j=W;zdc7y zHop^|zaaI%+S{KEN~h=?D_o;-K=7Eu^$`2_(y3a#*Syx~tv}qUndtWV@=e(}^FsJ` z1$#U+6I|%{LuI{)>QPY+PvPYLYs?XK{&SoQ_xT9ibpO1ff zHLulRUuJA;;Er>-Yrf{i2THnKYMsBJu_ScoKW|UJBP#?CZ+vn0dq$J}yr#{!UUQ6gQ_ilNc;&~I)C+5b*Y+Eg*d$vTx+W^H&NNZizvR0t z@kdACm1n&sQF~75Td7Hj#}`@2{rMc5^6sL(_4V1CK5502n$|L1R(;%lI^IF(bk(Cd zmjzFhKK*80mpo;4lqJXSC5#!Tv=(tx_c`^gv8%A2N)gY{=_d}zQ{oMc*m_+p9I4vy1qVd|E4y|_TMf` zdAu|I-ti+ZOXfdMw;EGxf~HzaQS4-#q|ZV*Eg|U z-FI3xwQ)cHx3f8nKNr84E78&zqZ8$Eq*%;w>ea{<7PY-!d<_12yw%E7Yc4lV^F4dS za=HJJuKvv*Kh3K7wPx*6j#=&=zTQXr&)IiM$H|txy>WzBja_%&(J!nwyIMK|CCsbz zR?YsjG3~Vb6{~4ixD2DzXDgfezq0SGt4jXbGct6Kd_S6D(d85}%wat<8 zKiyV7SGlJ6e{xv8Nqco1G|4PnIw7r%#J^9Xp3YW{_>lVywIqbiE>f)X=S59&^ zN_d==yDhKv=wid%KU+miv(*$61^5fsuh%(vZI4#iML7oB*Q?4eY2_ZZGn&`DW7C#T z4$pHIn+3P3GuzvV7+-FhI5)h#boXk57N6T3M!BUNx1wW?+Y9lWXgKe~?JRTFVS;Pt z%jUx$U#wE9*|UBc&wIAI;9%>Xqq-)`H&5+J`C*>?rlBA&!NzvhoHI|ge+zyNk1DWg z*eQA7O3n2fQ!-=k`s{teb!N|-=Q=jgtG9~j_D;F?mD^eRw9cXq@#Ep%!M%zTepVJ1 zi-fK5OW)0Q;mhhL7x$cuC~%wmSv!a$JAaGmSq=`)<9p)ow+Po&*&gqb_f5TKWG#53 zR?{#+U4d=|>CJu3A;(<520c zDcN)VC&@Sk<89LvwRJr*4{|NJyP|sLv}@(sjp}O;OB$!mFqmhbv?eN`BJ=U89;2f= zxluFMhuX64691I`dFw|VW#3!dy!;=o)l7eye|r6|n_F^Xs;^c{pWF9&&#l8{G&gM6u6t z8}EMkMPmN9Cf6U`Vfk5L&YkFZpR~18@?z>9pIvctqfBmfCr?}r@3~)>?0d3LEbx7Xb+GwiI{Yrnhft&!A* zX+KwgT(aqv|6{+$4tAwS8N@CJ`y9EQxBG0yrE>GOBMP-oCb}0KWEJ1hs+Pm6+N+h; z{l}v_Q+q<%z8QPAtp#n=G0(W5u>IM-LteWh(oV3>x_r%~`u!G@#fodbZ~L<=TuN&7 zye3hz+Sbc^Ha}Y+8kfDGMR|)_)w0K)Q>JBRHTw9RzOubpno{Clcj&uQ3j zv}5YFzkhyyzWX`)>5nxBvNqN`6nmTQc)iocIRDz7l)LKlgLPL|bUo|2ufOs*L)LDVvLv1QzEv{C z!W#NhO{cW)x4dlh@zP@Jm&X+a^!M%K5e9-9X#%^e{SDVuXRuyUYY+In zz53buTNopxustn|yrcn(!QM|KePeW8&nT zA+^}Jhk2QwT%Yv&I?nTZXSd(msM2*&W{dibnpW?Yg8JLv3pwA_RWtHWHB8gHReIgn z?|Jpw$R^kKc`RJ7Hm(-h@wMxp&tXaNv|0uU_Cc)9TFDxBt(nLAKbWwG7jw+p_1wQ#RK=0|@wp=^3k+(qISxN_{cg{5>6C%4n(o9da z+8LK0hg?rof8sQ`Td2OrJwRhhwY&Dm0PP)*dg7NRM4gSTG~HS7Ynxh>$HQ4%Sq#*DHB)5vj_=p6n}1l}`b&teXEszAB_`js`op5bGl9Qt7)~aYzHJiAA9t))pyBn9alEVJzVkk-#Ew2?_t<{ z%;Q1V&kHhJOqLoib9vZQe9!&oz~biw%*wMOWb#vV39+j=j6nmwa+wO zHi7YvdDgV0muAgjDWCNs%WL_mwI|NqbX|BgQN@aV^ZHX~BQl;=2C|!FGR$U7Q0q#Y zys~lA2L^Tje)0dJ+qcCpc4{uX*|KlO-)muKmb!G^1SwlUpyn7q(582(XbW}>JPUl5gFOvE&A!1fp z+1a^$p`p=Pe!qh}m+{S1tTrrsq@d1myh(aj*~Z_O#p@rZm`&=kvX{Em!24TDK+vHv zO>Fb(2KnPU;s){a3b~~JZd6?_^D>3OTC-s853b)aCbrIp3${)@w}bKD+e3HP9en-9 z`ADKp2V+jn#!s!W*`;6A`&8ZrG=5P0d%1>lfl|Xh>FmCmupW4ef{^d-p)5WZT4A7zw<@UznrXMv`k$wjc$e8gV~b?J&2RlD z7lNW)>rCbL{rB^+e<+fYF0N#2%eHR|+pm|$BSXG*FTWb}XqQg^56Qqa&ZU)#kD7Og z1$qCt-@WaTN#w65^OWvf;!=q|Dl_%tX%=g_?RmEk=Il7W@}ud7%F=IJ-W6Z3Qr8LE z;{9-P>6`xS`cmE`;i`*^B86Ao_@?^Jym3)(7JEMhXkFfV&=6~A`)yLE*|-{^Mi!Ei|aQfqY}BTR_BdRxTuORnp88BAM0S&x{lPV}jCq+Ox=U)kc{h1)U%2NbgXGzl5_4>tSjyauPAtpW zqQ0{6rSqai|0*Z%%szN#`#I^EVYT}{KV%H!cIMvts^?{x^h=5LWbnQ#CA#?czWg3jSahJ-ICIknDnNf@nzpmKk4n+)3huFy;u!mkExz3U41ls z!KM0;fcEX%CI+mwisowle6z*S-YKZU;mS|tSwe1sDj8dvGZp2gIUBaxb=sd>d$`DG z)$`tdL!Jj|dM?>Tr#8ArsXmN5v1Hn2bN*$FHX-RtS}tr!W8gad(mSW#xbJbN{e<>A zT)$Lr94(rCz|ia{!?cqjr!zt(R}>p(eByKnbJPr5 z7kzT`2Jtk1*@GYFxA2FFCOq!b`Sm;7g=glJV!v5T_IYo-r>81wmvc8UITfDjoSZ4w z=2J1tL;ucnZvAW3JieVgCwvZi>+kIq%X?*)^IdAzSKIP`o+8sY4n^nJx40R7Snea) zDI(N-ieEJN)EaR?A+NWW^>c-fZ#*R<=C;gIP=Nc}g3S50>zy)=9J%Be_|Lss@Sp(4 z%1hSHJeO47vxp_$@^R}tu&wvqQI5&^iH)gyUd8>4c)9)S>+90bCe=*3wME3uC)#j+ z>xMhU=WTE7t=|4q@7WfIuOag}j!0aV_};Vr`!7AWZ9b2=4hBShI<2h|$dmi`qAHO^`D^YQZ{QIhQ_lA!jmm3tl%QVqFZ&b9WVzOiK##HN9*Yg(r zd>*pwagX9p%S*2wpEL=Xx$ooxvnw?dmMnVr_TJ*^#$R7wtzK`I*85fGZ1~Ke_nawu zQP290ifql)SmVRZSyWVXCe+?&vCf7wX}t{AY+vvFx^Zpq8O`%^t;4s!E0pw(-(LOg zovD+=Eb&wR$>Et5&vKP^)_pnKmwnz~*Y}$I+Xr2eWu{&wQ=9>&(NqSDQ47 zy3P7@dYZ0rajnVUh})lbb`_rye|y^Lm3QW`Rh!OnH$SS~xOxNQ(kWTncoJr>ID2{> z^DA+~m#JCN;cI^Q=AKK{ZC0K4_sJO~w?v+w zXU1a~9IkL}wOqf=9^TLC`3FuO?|-|kw)H)ym|m3YY9>*RIf8z<2J3vP-g-_jSU5+< zWz(daD+Fd~O*`TKE>13|SbBniwuJruDh0K^QwMHLWbU!_sb3o?x1enM0&83KWA2aG zukcj8t1o(J-)z^olW&%5*ZsG0%QlFtI{s}>)t@KVP4=3WuJLrU`{L8JZewm-*{_Q~ zu2kIFv6Nx|kHb+sODoT>S(<85`cB1o-Tn-j!&BOyPV%g8{IorJfAB>sn^n3Y=hQqk zR&(AsCUtqfxP^+ZHG5&hxj9oh+uz@8IPgUw`IEQZf>W7dR=rXS53_wYjFk0_w9lW} zXSXl7zL)vy7UQUXk?6vl-8ZX$*DTp_|H^wU`|q4lPYPbCy?OW|%K2gL+qr+|`&;eb zGK=-}$_*2m4yzrvaA`RE=c}4=WT9xBZ1I@|7CkwOQPWIWwt<*^<~#y#JzygMsV6~tm!`_zc* z%>^HY>x(yB5ctPfxbdNcjREWCW&H~xf3{Y<(663oW;0>dym?y_F6kK@l9F22F4g(j z`pEf&T|NoSn;ym7zOv@ebB$QSX1EQmQ6%p4=c;TKsP3x>-uwq>6v|>1^e1-EMcQ@A3IKmj5nMPr5!V zeag-C*f7>=PtXRv1v*dFEBzC>-&G~Z#>%TpC{U{bG-FA$Mu%?C*S>>Kd&yfj6TV7rEdNE zUAqpJs71GiZ{7bdXY0{FR|OrIc9-RBc+KN@<5+kV)AL99K9gSc8b6y;Vb){LUY)Hy zQ$}Xm#*Ldch@JT2o3S+ER!s4RCcVazBjRTdWC$6b594*77Tu*F#ojh^?a$-&=VTt0 zbK7YDyWaGSBk|dXx*x`CcinX=Pv7kH=Y^QtYcJ_vffths9eMw4Q$L<@WYynWHy-}A ze0KbjOF8rN0L#|&L$$84slSUDOg8?V8y9ve_BqSd&=?-eujb71swF-vWxI_QPZkrt zv*3(1o7v;5Q|6Wyt&>Z>CA;yj+v$?#OzCNX{4(vaLb?3^=I*#WC*=RdhulSYdwL&lzW~ZEalgwQ}8V zuIK)3>u0PltN8uNM{A*Zv}xvO_g>?W&NUN)w(ORaNn1 zqPkC|-H!yxQ+%O`4)arZWK3q5T+C_-N-mX`Y%@JmePct4N!azIx69=dA8LCW7Q5No z?0DjNW`^nM6%|K%x{RH&|A|QT&Ar9H(9tCIO#QOVh_i`*l_KlqT_!nrunW#G-63vt za(l+pO6ObWmT5{v{GRicKlq0JL-*QMHLqU1dTCv0EA;!j+25sWRF+&5UJ=uCvi?gmg(+EzQJ3WHLX*Et$5>U?WOe-{kb#+gS)@%`}pHy>*WdCYxT?CEUCY- z#!6&+RWj37*Wk=g7E|hsTJD5hdGF?U_I1jH)WF~7J!v!8lU(jga&Rj(Hzo)se!lS1 zUD&$elD1?Z^Na1_|6cJ0Nn1+)UBv#;K&)jh`}U;xP`*R8Nro0_B1?m0j;&1Jb?Mnu zHPzIInHOgAWUPP3|I#cwTF$p(Yr}f;iD`L!^VviCEoR-9yr#}`^7YI4p96%qy;_&TconDSI_g8$?t z23~)Qif_kt$*h{;qx!fi#eUY-GDY*w!i5nAT5SEgx=T0zD4J8CAoMrGPiuCN+wAW_ zuP5_d{;8aFr}S-zR&ICo7z_iqD0Vnb^FRBnGWa704bCJs*zhaL&dS8R{n)Xut&iC~PC+pAY_g^8qzw)#4j+fWs zAHA&CIo@)Hfk(nZV*34GHgfx)$1J(%^C`Q#Txq)jx4p$*iz@<_KVC2X-@U}q^Tq60 z9i8cSn!eB9&)EFC=ktz1ShGgWWK$%_1WZG$AA5wy6rW?tO--y=1Xiy`gLmm zhvV|~IWruSR&*?^{{42lblQ5?D{t-yeRh31!87Z1e1wnL)Ic9)!y9?~ex@nuH3z)E zBoL;UQ!~}qW7^ldtMV@ug#Gt)4!TwMsanU^EmMtKv0 z*qH@ilsIQPxpAKI zxAl4|zvY5{3d7PH(|l*=-s6-F(%W{tR=sbTr;w7oN`^;Pzx@$|W{Ybb4>q2k{jyri z#7c~PUX@JuyFJr?T77Ko(dsoYx;48}Vwz{L;_}=t;Yw{m+$$Zo?X5hle_y9ydhgLq zk2e={in8>rVzT3l_QMxnI}pVA9^O z@b}v2?XwEk7cR5^DK+gu^Mi-&@@8oZMDHEDT5bJ5*YeA|h=c2_k^PeC!IjFj8}q^?{iLP4{!NJ}T~NE{<_05A z+nM|N?SDQIF3(G!Q^>}dZnLG}?3RZmGlUX%#A|SxewiET?B*l=JlQqac3E*YkNKVZ z-|C9gzlq+9czNr}6Nx`>+axW%Z)ue<(`G8J|7x{u|CAO+Nt4IxtTO*>jM?^o+f$JT z)A`pq&0neb1e6Q7fR@Y`q?+NFv#WyZ;UAh+@b@j}zM`sULzF_?G<@ogC`IjB% z$KP7H!fO-vihWYwkJ@~Rt3I#o(VOjdtxfHh$t)MOuMWcZ*5t<~)ol}hyY$-J*DHhf z_RrbWn;rgG`MAX`flY4~72TY|>$kYJyI$zd@3iJyN2mSqP%Yj1cVbiR>V3sx66+QQ zZ(p3t8SMJ#=USoq9>L|w|{c~*ENM(-$?4YZC0DV$<~Er zElu7Xq%f;v@Zmj3CMkyop!!hwp9Gg<70LHkK-m-Sn>(B zEmU5#z{-!sKh9Ln=Fy62mn`mX*&}p*?;fVzWk$4?CkUyl^t$w z%LDvwJ-Z`#%_V7B^Y$Yy-48X6EeVt3R49olUcx9Nb))N#%&ZIlFI(^U?3NYr{gsBu zxuo5S*}v;z{@*Uw?7f~+wKDSSs}Sv{DRG}`GiDUGU6cFqY?96y`;WdydOsRJ6FQyg zcFW-R-Ie8g1Ml@lsVo1j=;Jt;ou3-GdD64uR+)mlTg7?TXPlG%>Rs#1>o;SXz?3BrhcdMNY^7hqPpZDRksC}pLZoM4u0*`gatD@dj{QO$_<7w{f z31*5%ID*TkFMB8)zGcDr9|nh?l(%2J^{C0uvZUhmf(25#SE^>3^X2b(+a2r|)wSj0 zoA6n3c?#;Mk7pJL`>*usUfChFqIp@{qi3(LE$mSf$^ZFN#-*h&uj1X~b#wNWiibCw zo-{Z69Z|f6`NPG17p2~?T-QImd)D2Vn`@4jMm#>#UlA4_pe0w_#(37=Rly>=*<^R6 zT8hE(N&c;?ZTuvb|982}VV1V!X;+tfdb4__y}-Vd0#7#cL*j4bgXP2JmYvZlsntEI zQgSR?-fS7qe_s16&#j%eUTwO$IAd#?Y~H=7zL#4L2)i(9{yh55^|VE&&HUBzu4%zC zKl|@^H|};>x4HPmySJAgN&Py%MAc$j^^}*)x2s;IFW>*g?X{OpX2qo?m#=U=t13QI zp?!McR_7c0V{UhBTCiH$Chx8FRPB~C^BDelK2-H+K4r_7v*O!oyQ3R(HZ?6SoOhzJ zbcyLk+i%<7`z1Trs%p!zd%n1_Z@c8hln=#GCERn~w!Mq-bX*_#SIV&Ri@`oY;eW5^ zx=00|-4bQ7X}kTo`65l?cDW8pnU@#+ui)d}e9fRhn)R15Q}c#8{_Vum9(2{ms2G>1o!Ss#7*R zZ{~ZR)?TB0ohv`??<{W%vlU;xwKX$4?N+Q=>&PNG)5|5hQBZ5s*GFGZvuWPn^Z#O$ z%2Bt8|5kiUk>oQEh`nDT`1VSBT8`TUP3@=qzslG3$ZB6xSm`g7ba}F%zuT@UNlc5J zFPtg0pD*^o?#2e@#Xruj;eEsXvz>2Y(EYB`Y=ehKUUn?h{CH*G-iNN+wb{$w9J+UR zci^sc`&fI?#A`Q~EAIWT;IpXhoAdfLOD@P{{_TsLvp8FAoBh>>iLT;J)8gt&1nuKj zyq7#MfBoNmf*aq?=~$FMTlo0*L+#e9HBTPkZCKqQwpZ@}N7C%Jir{O_##tY$vhF;a zrrhjvKvVg$!Ng~&X1S-`-)+m0S)+0A*<3q|1I}K(;flYG>$~6o;pM{0=h9PemFBzjg-k(~XWUFLN)??QMa zVq8}Kbl`@Uz-PbNot%e%J-UB-(}UYloyN~E{E5zHxR$SZcqw<<;w`&Gz0Fb{ zub+PI=!3e<9}kx9)|eycX+L@4if4?w8iSmToRxI7<(2FMxBS#sInk7U`(*rzEg45| zO!G`N+|Ih|)Sb0wHgO%9GuJeG+Rp8XM_P2B98*i1aw)tfbNjO8%V+;c%JH3Vch{i) zsKqxH!{8$!qQwy(k7@)(UHZ0_M>F&O%LQ7`rXKQ`9FaPGWwc?vsNb3RpAu91lVodL zZfxgRAmPOnz0V@czN>LDZ@`(%p9*51zsqHbY4bLojqWj9s=U_z==P|3qr|r|^Lz_} z<)Z7hZq1F}+IvgI-v0hyzqiU~otA!lGTHyprqgSh)r6Z2=qFUs^uvjo{@}E*WJG@DI#0%*3RVDiI;!r zgg@P%bJOVXjjJ)6vm4TP-hH`hj?8hR?KzG-2?rnEI^OoSrc^ckgRolmvXG1o@_N?A z3VhQ-mCdZq*xo-=u3r5#?UqmW`Qr1o=@L(~{#%;ttUReYeMU~s&#TX_$-h$Y+7>5# zyJP9nnEJ|ZvrjtT=oGnO#4bH~Rp+m*|IerfzG~lpqpSYU`#hD@Uk@)u&pT@W?l^(Kk9gV3e)0Veg*!iQgvi+E z^8EVhX*lV+**w|qtmM-Po9SRA> z65M`xY3`$q_ph|GpUx_{EgyIElP~)Nf8W(-HrD;P*t*&G=Dv=P`KNDP-n!S!w)Mr2 zeYShvg-q5L@OkvsQX};&x8RzRzl#pcosu`B?Dq_dBEGl9yNd6Az4P<##LK_cS_^b9 zr`?m~eHimO_>8K$-1B8E3QM*g-g|4y#@!411H1zl%v|`aMp5^(PGtq7(aC_UCEIqI z2==p_if7rRwX1B$DOScx4PZav!P)giee+ zv@NLktI4%JJJ)SsPStA{YU9l4^>_T~zs~WkyS(DhY0-kN50@QGxg#ds4g7$_`|IV9xO%{fWEaUG# z-ktx}F)NATmByUcXI#HlUat#(If=df;VN(QB-!(d%jc?m{<}rT#jUNSF*{>p#@}a3 zcYgWsEplfM{ITnG-9n?nbVaw5A1^*>|MxdaL%@?a(20w+Wr9>k)z$N-?+fr)Z!zvx z(U#WyTl?{d@z09<$ESaMJ=$!bv01!xF5{i{)UX|_OH+9xw%W;Wx7{+Ar8%w7Re#rH zCFf@bbN1ZRNYC&1v0tr`!1VCfifr0+fAf6E8np%N{c6#3YMz z{YKg%;AEqJF1o2}5} zwGZW=Z!eJVHO!N=de<0x+@(5aYJc`b&zq5xuWbA5FVlMc{_(3{nK&YZn{V{Yo>&dg_X(ruM0P1q!5YKs0%>7P8kcJY>@40%iV zpT%UU1lk0uurJr?x#DFdW*{|_`4`vIM?1GnOOMF$^LeU zrJgx+^PB{YW&h9L`qj5(TAp&%9ueD=LdlyRHcz}?`z-tXyDMt}<739Epzv3;{0tkC6=A4r5cMa^j~}RYE{&;!?mBRIkM!f*+TX%+N8Ei zZjHN>1IO*Y>W1Sr0kgT*Pmq}=&-&t%=Xyt#H}w&C{p&`9GTX zqki?vee2d%|JwFS%P}@yEAj0Lj%5Y8szQtVrrE8%F<*X;>G{QtGnc$5XtYr`3pmj9 zC(`^!pn$WNLYv|-1Eb41u}V9cH~y;=aR{^Eo+Wl`nrr^V`cPZz+H-YJWY(z4MwCdi zUpail;DitF(nBG>xuUVJGuD?oG>L0XcUZdakx|ZS zc)xSmwIbg2nN!$S*=O$DQV?;_wmo@OXYm%RZA_Pc9hF=>@7%iun}pSqB)Pvmf2^dn z^^N|W_g@TO&Mo89p8w#1z?!)2^M1Nb?2}EN(eBI^w6m{d%90ifvF0w#ty3%JGW|Zg zrQ)VrfaUaQ|`aJWAo<5gm%x%D=eP8YCfFyvTKE9WN=jD#L4bLXZziC zUwY>Md(Hb~-KjM7pOU)&vh$f%_+D4p+3h;*`um+vk$%F?NG3_>h%g)`PX=Y zfl4D+ponn6TjO@!&99S>u#gnT^>|Gw5t zoA*`AhmbGbGJR8z<|mXtt(tO0RB6FE{@+@kUOaxLkmM{pQSS2mb|=}^T}~6~4Ho_R zU68nL*_2a?c@>xZUQ2~>FZi@3d)3nUyP1r<{$w^a+P!6p<(LtBbw+ER=)Emdj{jb_ zbG!b#zb9Q}uUgBT&tH4gYL3U4%uY}o$1__nIL+4q)yqzr5W|;Cr|8(YoPj6F_{8WWpR&J2JlGdkMTzKk% zg;CS3&w;PijY1t&H9Vgo+?L73Ce`U&{d(|gP&g}l9=VjOWQ2cqH!~BKJ55;BL)aU&Z zvEKB$@OE>4(naIvi>}Ug5mLH!>(^`PtcS~;t&f+dRH&@m`#Y7#%YR`R!*Sc0Monpb z8^va=3HTw9HT&-0+1v*Ir@0GW6zh`r^*r$P`dr^6SKh4_vjaSnrV0rBZ7mS)@9#Cv zeBthVUcqyZ@T26jr@MY?oj85kwAkYe@66e;dnz_2CUps}s;JWce3U6uf@{f4ZGpuu zJ#v2|Cq$+g)@^yIF;C)bl7;7CzX?;PrZzviTYmp&;c?mYTcP^f1EM??c)bi`MdLr; zezrRQQ)kuH&~VAKQJI{ttK;J4+3mbMEo}Xai=S+BY6V~KR=F?t=kt8tWS?j8EUV@x zJU=)0*(&*|v43?xm?Y-LRs1nAuJ8U)Y4kQHMzJT!!uxfEUHo*t*sK{oW}Rneo6r1I z{8Odl#SzO>HBX!MTG)&BztB(#D7NTte|>F1h*FH&0_jV(u8C*cZ!Pclfp+!cn;sN9Kfc6%}cl&%WC{G@9;&PSz5`+vUZl$N$k@X3brwy{g!<{$iJyY2k(qOHy+YEx6Ddh@(HQqgX? zK7F%N(T<&mXD)pHK=9?umplId``!DMQTxjxqYlHrzh1AG-ux+R_07%cvkyOD@zUhw z&o^s7#F6C#fz2w!8~dIr7KT~Z_Ei6?DBB1`aEm@fXwyH>Dr1e>cfO!oYfB3*XO~Z`Q4^I(6jS#Z^&jwUbmMFD!Ur;q-QT{_&}=Cvl5! zdluCnl4n?dv?OYOrTolZ6WNn{!)mV{GoD$q@uU60KQfw{-x{yk|C_L4!aTA5Eh0*s z$2q=ku@QDk3|i$Vb#UY2v%e)a|Gd;JJ%87c{$Fvwl3jY`nrqANHM#xz_;op3f%aOf z0^@+>jj5*hb}^b-?yufxyXS^j+~nhn3V-h3Sbd|rqv~Dc7rWOoOXk+fHMRFT+-v^6 z`02*w53KWcWW1m9=lPNsMdw1|H?6;Fzs$bXedF9pu@78ajt9=H)Y$viPvn#S*UA19 z%rb?VHwviLm_H5H`lF}zaOrd2!`=Pw+*0C=R#eOj`L$NXX*XNH=P}RICnM`>tNnQn zJobNo=<)Y-;~ImjyJk$Ev3IIgJh#$|$FWSTm!53ZebVFfJW|Tw-X%J-}}f@9}QENUyg3zZvg6dzM9p zPT1Js+_l&~U&VicD#x~9(c@blF8s81U#G#U_gTT2JKwHavU;wt^8^((lZR)^&5Dx) z|6e-WpE&JSnfZMF-;0B;O;)&6EyQYAI_Ck)*GZXWM(57VTU1xLz00@j{f%(Po(+YW zI}{yWd*A12FIZ>7`y$|hPuA~aF;nB`d)ig}>6}~fr+@d4zA499js=Asy`#VN!ZH@6 zS}zVS=@T`HlDl{e+b%^(xisy#m3HU_kC^9k=WUkK=QE8}D=Y#$=gM8bu(|q$rg~q( zY@zG+g@!@LS`}u@VRQ9Fn9v}K}Wj7?I-_I^yzUlH=`L!7ZbsNvE+A3&uA;O^EFM8$6E6>>MABMhN_^o8!vuj7fEoMr- zl{0CVov<@~rc79!n&v%EW}lvpNzPv*woN%y>#=-;UiG}jpy1|8vs%{uJ3fAwu*|YJ zbvpIont5l0qrN58bB5Uc&Ft}5u;}m28Z-N}c%^gSFSeIdPo8VLMhZuHgm3J56Dn29eQa4$-hYq7XGHDR7H8?09+%yqcssfO zy>NT$=NH}~b6omPvt@lrS$1UhgLw;MIcrwypOZ-xwfL|#M_fK@VN%yL@{<{Zrk?Ym~JT|Hm=Tm?PIAT0Kk9GdFE*?p>zi zv60*_-yRK>xY+;uM))3v44p19rDro8w#-Q2O73XWU_Nr|ZA-hyM8}?3Z|{k08?L$k zUb7?0(R6#3^iq%g;w+a>8B2C znb~9V;rYT)JP=D+6PJM&71-~v{jSys8QQx(|be`Mx7rxD} zd6#-^Sn94udHDMu|M`6W(X0wZ z&mHzNC-~m^eOk-Q^YG%Ov&FccOca|j$HRX6lGLL?m7aEeOJ#zBeIJU5Em*WlDtcSq z@?{00=P#V}`xy~d|IJzQ<-usPJh!SWu1#i_pC$$@@YL2i^GUCz)*|~vxYCCOZRye? zqGE>k_rBSzxJS;`<3+vw+70tc&K9%;YO0ri<(t*4=eFPQujRUorwb?My1aexqeZ1+ z^82Zq)0k`j@VVSqY%Xx}>RG|S;K1PN;uvzW_xhvx{QpGf@A+tVZud*CGw}u60xxKt zy4Sl&DymY}l4ar*xxNQ`JpJCf)_*us@OW90`c&1^T6~Inri{$Td5&DWIy)nC;x!9i zX1~RcJ}fYll@x0#7t>9Z53M`TU{_OI`+sXO_YFlc(P!=4X(~zDzMsv4v!@g{a;rJt zW>^=!w)55>ma|h*CY5BWoL4gyHQDOk+4+}!)`l{7%d>75@AI;MYPk1O;zqW{+RjT$ z7?&R1RP=h|&%Jv+__B|lvD{SsUc%+WiDRC7PU{<|C0&`XBOW8>Ce1fODa~)pXRTp zBKmddjlgZwe1z;(Se7ZOT{&7%+;!+^@NH{V&6^s&DkfP*QTGq$r7ZNetx!;IG`7_h zaeldZ!<-X8)T6z7J3E>-h57V-J6tgbGEy znfovCP2G9lE6Z?N*i@wnX#t>J>@t};-`$g#BiUrw z-2CC*eQ|>`8GF7u@-;c%sMo1c*lIZ2)8JDm^L5k5>EeC|*Uj0>;s5%y?_}vs4Qj>A zHBB@7mmGNLqGjcOHPryl1REp#)UcQr%g zvYS*_m;PF(r>kvJ!lKUTIhK`ebNuz|+gt8T)41xlTib3fHuAXTSsJ;cU?Jyf`OJ({ zDJ3?aLn5CxTj=VZ&5%6pv+mi7Q%irmeECxC54ZlFgi}jC%uASm^iJ5!Q2nWqxmrtt z&*(SaTN}6c){pxWI5U2#OzRK3>iRWorpW%ak!PNzwXn4>{_@y=W7|U|f!?{N!xIlI z;ruY$K=`b7aYUZ(9+s^Oi=Y1y;xs+4Boq{E-uPJcdEf1TFBjFOOq<~2o?8^pmAK`C z%iIInTg?~M6 zM1DT+T6isMmioeF8z#z?Zxy{fX@8;qHRCPiLd(usa%TQ*3rgC+u=8f6#Egdq^WWGM zYkhkAcWbhfX~6wgJD2aOYDX#wS*S3SdU#(vM zXy5O5uP0m)_P1gD>uK@u`~LrXXBxL_m$#p|Yg2K}J9+=|U)63~+s*a{@0QiR@oC+& zxSuDVarK<%InW}=nWlH^kMB;4?Qb_9dwTq}_Xfq~LdSXe5573qx0G@Av|DHIou0nq zn#R(kTvf5Eivl{3WSKlgWZOR;Ny;s5eQUhfEhUWJ_edR@2V1n%#B z;var&KK^je<>ePnxfzJ<-7k0}lzINWFTQ8@o@{CpW^LFhUa43eX=s#o{PD)t^uWi{ zFKw8TB&yMK%ll{TH0HUFR^R2D7WVjQ`8H-{jlI4v#co<=2p;lOb7c@bHA_tBZ?);g z`;T6#n6MR{4V(Ap9ivwJrOVk%SK38=dZ>10=R?sSmuERj_~wdz4%q#1zWtJwuYAhw zt5rVE-5Yv4;=>Np^aUnqt1(2rXF&uVt}d_IRgJ=ak9*3|ad(V`3+QMnZd z9;I5ktYgxwczNr8L{O&Y&rA7n%ip~>+?jujy)WbPhdK?-wZ^%MN$X>ccjXJE+jxIY zKgk~bVRwCwN}(c$sftWxAoGpcObt&(c1d|m-o_YH+|TjEChORY$jjGU4)rw)d#wIk zP_fVV`poC|Qf^#~p7~7K&_A+P$nfQDj=nZ&?{jsXa)v^V{DAbN1C zv;9*Sy^1=x*MaAT!@B>yDIBMltUR|ps=xE$qMjYgy6$ge@yiipNy_ZnxTNd%u5#6L z*4a&w>$jd~XaD(-J)QT6w*NcFnD-2C7AGuBW|~}RId87ngpM`SFHY)wGEc_r=KS|3 zb<_mcY@PZ{+SsEY#WLmH&Ph)%*h>a%QE*GsKKs!#IPj(Ghd0rCcJVxqH*0&&;Qm3q z=}=Ek+Be3JS~5y&d>@_&zZz26{r(lh^UbgQvRA&0{(Xooad(?=`?4=A@8^6pDP#Fv zWKdYLZR4v8S;rVo-%E8|c0cai-zkg-+jidaP-FTpyrTDJ_`4NMfu~KhUak1M=fZxW-YymIKgx*x%cqDt+XwJE=zLUWhxGq#jeEOFa#q&C~<-_9OJ-naGpRM68 z_$m5)Qrd&|J#(0^uwA}5>3PH~X48Mosz+YG3ZJ|`E6Mt1W#YWr9q-@Vh-|8nl!dxI>sc{YU^{s(vM5ob<$b>Uv@z1!kuv9`B=FRXoX zd0X~eld#a~@1-*OZf8xEQTlrQO!8UJt0DHQb`~#J-}!BI-kKvbzF28B?wIjc?a1}N z&UbFo<1>~_xhSeLYL-$IcetdJR$zl=8W=r&mAtx zJ&{^5MNhLfGj_?;TwUFmxstD6OL?Rhd|S(4)XDr)UA*I*)$=v^btzn@x6XNKc)4_0 z*ptwTV2frCVNvNL>q6)M3VN}77MF$5LLGxcReOF-nkMVEolPS}Qo=1LbJwxUtWnG} zPpn;gWPYaM)!W}(;m_G66fZr zoBDi@JU`qNeWD;ur_VmDTU>w5E$2jDubDgx{;FWP@AD01x+h7Wx_uCkJICI(*g6505X^T)^jx)wo^3?G00Gej zY2K@u4p!O5``_N3n|`N;S9VV4(f50NUr+zLGrfcD&8nGu3+47tiJz;?`ja(@Vfn_l zw?B$~UbtL7T+-Bzsftxe%kpAR=ii-`D;6uwI9GJ(iT<5hhT?U$(t=B#PkS!3ggaOCNEo-(toBNbwIqSS@i&Gf3=U+CpD0sk-dFk(2iT5j4 z#b2p*Z+X$}_4aqkzH4F^m{zpD*`c^G!eAp?|K9!mby_d@Pfq6+W?z(D_a(xO*U5A0 z#89`R+uWv1xx7a~J-MTvx2R0!kdfDf*{VG=p4-hj)w`(WY^nX*{))F|Ey_#Zr<@5m zv)n&Mjm@RsJ?`n|8!=mE&A;{H_cH;f+L!;$`<`v?IKol+mhY#>61KwmD;}QEJ9}u> zqVI+#jXbNLXzJ{aZJ2u~W8vDoH3xPr@{f%3nsniR{``)E9emxTipTsq|J0r+c(~o{ z+UlOv4Wcjg^3~bAPg`Z^%1jh&J(v{oH;pLf}(HES7pyU*BG^1@S&iF&T3`mhjKQ5 zk6pb}qsb!>knVF^PUB8a*Efp zfZfcQU!%^(oqzA;&J#DYTrBvNfN9pzH?bQM8q*EF@AXl6z24ZPc$;yDpz^c#ZM@Pv z#-UGb{{47t&2D`D+L_INR}^{fF2B6Y_t>A3|Ns8>Zu>MdeO_jB$qp~&Umgl+75-m^ zinnjra3Le~^qj3%S>DY_Q(@)0w7mb&rvA+aFAo`CcrSnc;f3Aa8(zINpJ+IF+05r> z96p{}`eJ$K;eCqV5=|PMJ3dGXGzG_X=bqo+wAcH-;w16LUxI6Ht3FS7)2Y6&@z(SD zUB8)azS#2>+r9nq@`Y`&&~z5gn-*tMGM7jM$mIz%DW{xNT(>n~(#7dwGA(^xpU&zl zN-Y+fbIj=MC@?kg?}O**WWy+UtV^9qO_sF*}BUc zUHev*b*Ud)?~ok3Z=LFw1wWVkb$iL|-M?=4JFCUM`zt@E z?fG^qJ7QbTOviJo2NVvr*8h1dpJw-EihKFbs(qW!#7qqqW7*Ot!#QO=Yh;*(Siv_o z{Wr_XF4S^=SDw-GbZKPhj_D_PUOt~;5f=GHeZ$+0s>^x!_XIh}`^H6VTrBWCR<7ZS zifqBHgKbmeOTHdHF;ThKlyU3&TY=f#zg)AsW^kN3nEYkC`WMstnKCPSYJ(PkxD>B< zgtvTugSgzuV=IIg6&&Tickt5c^5iEQLjJsr&lWT{Y&n!WYbD={HG+<>6?SWT+`Sjj z`1`*V@ALVV+$T+%RW>|6vblHejQMZNkIu@e`4VKuc815fa;{Hv5KHUpu3M&4ey4w{ zc8&OQkAK2N^{Y>E`O8lECOf)FT)lqv?u~t$CC=~p!T9gP?@|eyd*adIR}(+Yaj^OJ zTYJJy{kyhucF~#pPet54|5JY#OZ>4PUmqpzpI6}(6K}s~Pm1`oH8qnSPwcrZm);W` z{?_o-<s#Ai$*h}{^s7+#P{DI! z>4N8*XZy~rIFgiIFsGa8%m16Z`3`8U-uyS^y)9>Ci>TX;Y7V7S0)cm;@8r%cE%}%G zHXyrwZP?mvp{uustzBEau(YX*scBQXLJPyqYW4r0=e(cy>hKIKi_xAuf9DLg!B(=PdM4nH09I z$vDqup{)t~Z?|Z^<+>G@8E=@q3xDJ#)14_KBHQd}ey4}|v0Bpo{(bGwzS}k3-_lvq z=#s|$`|U%+BN8HQlfSjfZ|!(JuSVo%zJ2Sb-E!`)RxVe5e5gCnFw3Oq{U6p-^Q*-E zEjH@4_b4q}xbdXG>Wbrkr}A^Q*wszUxUpS$Yc#f_c_@2HVd8(leqhxXP{-+h^1;?@nE@Mf6I~T9p#1s;aOR zk0Q2w-v9a7&((EL&hKLXVWv2PsZrWq@!qRbAOE#?8yXz`XuICF?@;IFw&a&zZ-2O6 zU2ITPrm>@E^30R9Dy>pI{n_D}TERW(r+j7@E=vE~W28KDu5LlZgCD*J1s-Nza?|$E zS=%eSKwFmQ+d;|Yz9#p1_nDq7;Q6ufU0q7WN>LY+uP06&d4Eg(>4FC{+wW+;7v9~hRevOiIbh_3<_w(EGXWes{@pd!w^n~(z zGi|5H%?W?@=!?iU#@narjNV7Mr?1sW{l9RkN!=IKwWp?D5%?#aRXf2qJW7B655>G4 zAK5#4I?|=XmDA^&GpL;zi<1i(`55|)4uIrs-;hse(ibv@#h40?)ksl&wa|!-zRlLIBj;k|G~`9 z*3;IDnICFfq2Ri7PJf2n_LEIKf5S>Ug~9F z$@{>(Z?^5%4mUdf4d1sS)3RUB)n(!&g{jM)_x);{yzcowsafr6(u{{zOYDeR%+<~1 z$<6z)tj8x}-tDK8bX9K#S_Qsr{1PkU^EQO_Vcc(_*ya-zQ#%v3F6CTziiMTsa=Y%| zJ->{2C3kdbFJ)i5v-jAdF5d-(x^H9N-R7UNU>;NSrCDE}M^@ebcGY4-epBcD6F;{t znZs0fL~P@UPbFGPveRzLmXY1! zd8*_qZRI=B+^;_VJR+^f`W|hLrd;_3yxHu zsAaijL3ns@|DV6?Ck|iwp%y#k=k*QsOH+9kOj>AfHu2%xvt>VXj;f1uk`6Y5@+=5mDh{+lh03z@KwG1{lA~T z(=&$SCX=(zy|qZ*u0JWGldJ3KgBLnATg+S7_r{!^HHBy0!5JrJdhon^FSh$@7_;vO zSGHpbPWxX*%>K@I$}-Sq??XkA(5Jz|6-Ix5pE}dIdE)vNx`&TjzJIWHPI%>wRR^Bj z5H{4RjLB|W)9qAKAtbxWUAXUVM16tircde$e%m4<<02UTYGg8gR9Z~0Y!|GVF7i0%+wLyu*~^Wt*{=5T)X4XFu(JN-i2$4Lm8}2%IWm@s znPnX%$Yl3YV)@}!R+`qPr0c8Lo*@Lo8*e&>vRYxWc#tvoE~#}?_;qc8XGFw?K} z6U`C_oY`A0====1yf|sm-VawMhd2)ts+CZ_n6aOg>Uk}VyTJ)2UfL%OrmcKc zm-oyTDX&+rHmN_l=ghftd7bH>FPD2C*;x5v)qFGl zuUGg4g}r+MXD*l;A7j{Zq@#fUl)HVVjn>+xlg+c$f3GR`QfHg)<9zzcr(l2ER#tAY zfJ5s~?M@mgLJ(k9`1i=pf1?-R=X67t6{y_>u{5bQu+RIim)V>yzqlZnyhC#bL-+HZh5qX!VhXO!lyJM; zn7rCcP(rwO$iOKOCXPg zwUpuC%MXQxTHn;B{x}-jFEC5gBK2hMm+KR|=iJ@NkrID#kEU@oo7k}jJCEe>@J?*B z^$%yYHn?ppQV<3Y;TS69{kf!g9*p6{M=LwQoG?_-DB zP$!OGo(V}WFD zg8zoayq%i!c>kU_5cWc6U+?Rft0z|oy4)`>HCZh${VvHAe0__Jo)+s?E>-

    &8Oy9dz*JqXcKU!^C|Mb-s zkLN$P*KI977ZY*(=aDn!XO6#o{pXyxSy;9w-#j*zi|;f4J7h_}VtIO{Z^nY(Vtlv0 zPMz_$w{eS&b1!q-wOzZPFZ%th=zGuQyU*vH*qq$4oBQna&iC)~)C!*!a{N5L`NY4^ z%`1MMJpa&s+P=oWniIToJI)#039|bh_Jr-A`sAp6TWkVKenqa>`&3P(=ChQ`1jaeP zp1VIRKDBa1-2*w3jJYPiS;X}!-=E!#K1ozK8rNXnh%La$J(-A;~zU#8chEB+YQ-Z`^**_Cbe zSF)I*Tl_9*^9uX%JbA0?v%~Rqvg)+D)%N>}|0eNB&&vC?`F53K7eluV=I z4jb3s>pa4l*unMfx#Wau-yq>oyZ^IG)F!_ES73XtvD3$JQrOW0JP!-2FY5*Qo^+`% z|0%@d;cN1gyYAAqm(|x#bFA#RsJl8=<@W7IeJ`@AHfQT-tAEZZ+VoaCxbxiJg6zYW zJ}*(Zt;=tQ&AadI>Y0|Ymbtn+)A>o)qQ^PcNv8!KGEUA~WM6hMH{_b<`J|(pxjjCdgsI>Lan@47OE*Ia^J3>t=iN32oVa(Q?WL&VSdOC$5g! zSIpWh9Ok*zD0g9XvDxEL-i*hZZL6Zz7McjguQ_|H{@$&G7us3dU!AhL#KPrSbN-m{ z|BCLYo#%rMN`!R#eoCwszW@84f5EFsj}5a*#3WDOyD{HeJlXowoUK!zewg7fV<($% zSo_I0B07J%6&F-RtSt%kd>rxo27{6Bw|AP)<#x_GbT27lb>7+n>z#kz|0$LCKQy_S zfBUb^2j|YbkokUH(kV&n*xt8c^Nz2zu92I6tM*M@P3q^T4|Bw4B!5+1?Omj+m9#e13-j0xL_a&za7f#=tY+A|m?}Vm?Vfu+DKLp;~+0rIwC1bT{?GB%p>MBP9g3X%6 z7&0pxtKBu(&e$f}wDC)+{IomFuDP_RUog&ShicEAtyhZod(0J3?#cgT{CU4}%!21Z zQN1eulRg{E&pFw;awh-Q_M;488V_c^UcX-U$j#zM1%Ew7p5*bl?=Psg`SKz;!k}DC za>l+v|VHcBy46m`N z<@vn(mBt>gi$^uD&OF_+Ud2fFYw!$aITi z;7sF>f}dF~M_Q6EP8C;b2owKQ{_K(9tmbv!7ps{T{{7f49S{}a^6*c|kqLSA3${qD z%nJFp{<+?kZJWBf4cDFt+%P?ES$~3+XbYoAi^i*})cq-E;^cnC3*FlHB=%5)+3k-L z8F!Q+w;|Rq2!iXJKiW>jFd6q%_zEhW=X>OJ<5t6KTQe@Gasedc1$j0xqtOi ziIdID)cdxj41P0was!rKobznfXG;hi9<=)mHI+ z%y{9VPFDV;jqlskdk+5T;r{sNn*G8JHS+(qee`pA>#^Y3K?S*4OaXqyvX)P0?})fk zknwAA{SyPLX#1J}dM`(-8L;yi)hb<{C}t=zyL-Cw?i%iQ(SK`QetcidmMd`X)E=S3 z!pBP@R6X^2mxz6MvxCWKM^4?y2g!)XAk#(aPOWhmX~?GGjKt1dZ8;PlebdlGo?u^FE`FO zKEEkboUhSXOfLV?$1A6tYbHd#Sc= zjWRxe{v3a&wf^7d$i*kqZlC^nYM;x3(ig(Y&t5K{Z?;}l_xlBB{);77_VZjm>~X`A zGwRmjT)Q>a4?jFy^umA9xvuZw5A6T{?Ek2#lY2NiZ|6~i^G9El=KCMiblT%{=w(*( zyxf1gx_&CfFK-I83rs!r?ceYB<{vcI%~-W+Ij`B;dAU_TKZfjhzwdXC=WFZtdoCL^ zP2Jv`|3R%qK#zO2wO+1GZ0?1kwXGXg zFbE&>KXAUj%v$W6T(A4TpK5y6uU)b-V_J60?P_t^rP!e^xbgmki59<4ERjn)^?d(d=e*X7eC+mV9WIn?YH-N2Dm4l z760$VW%~W!-#5lPo<5r`D5{vNc<|j7*LvUh$BFm$1lm98WvR7DRStMO^RxfrIlr`+ zo{MuSev+Qq{ic6b+jeD6w0ZvFW`4VlZvCAz;^)}C>vRA7N#ft* zd;B^xs+L=26lb2%-)-j+;c~F9eDAw2Nrj4PuWoEi?mZu=8nA!r&yugj-ZpP_lxO!> z%gpxs5HTZVU(B-kssf3=&Zq6a&#^4NGkM$2@LT7cOrFdA{8IO*Q{Bg;{Mov6t7h}Q zXluQ%v1zwOb$XsHoNT{sU9(0<@kyUuLJ{F@+G#3DDq9773Z$1;ZTq;n?bw5+m#qo!z=PP;t)srH}f`@h64UA}zwx0vvvXD@I3RaV;jN<>t$ zEqa}$Xs|lpLI3xa%=vaRn;kcAu{(WbS(swFxbPw8PkQfo^Y&?S-{1W%EHBrioyzOyD%u~_J%TDp#!3d8K{Qy-m@zEpU3>hhV7SlZuS z7VG=OHLLXAjNa#Q|9Q&ocTSyhL2K5eFNe?Zzsji7l<41E&e%8G@SIFUDZ`eR)m(Mz z^4IU3@oP9VP3(&@&oWh?s?-(opC4Jhz9XNwEO%1jzocn?=O)>eAAH}n_~E%_@9GRb zvxxIf4m*+}`FYwjA=Q)2F|1{iR(mcxx_oBc9x07pzr6J|v7Hi%oi7Xu4b7$|zgqjn z*iWfXSY&?X?xy19n`ZR&q%@mt+ie|q``Fu0q1+4IIF5JCiK_CBV z^BJb1!7`a07Cw?ouV!CeJ5^TwC zD|1bs^YFg^%1`{}bu~q=Yx>^i`(d8K=Ch%0D-Od&VwPW8cvyCpxp=^c3|(3pBfmA4`5$*ld`1#~|y< ziAj@>#bwKhO*`_#t1Hq6ZG^REN^CXSd0g?$ z7yav@_ou8rFgY{pVp*x!(pI}CVIR)>6|q)Mi``=)XTP)1?pW_RldT(`vVS!q{q z$H(*od0e7um){$+?*Dypt-xIi;eI3K_h(oSS**S#zx|{Ac;~cv9h$=Kv$kx@Ju~N+IUnQvzw<2?b}|aPS6X*WXWMAZ|7pgFgnciT zsdCgyoj;X-ZHrGPyf6wBx@%cwG@8>A=RQ~-{b*=kr zn7x6i!PNY(kuMJyFX(u|HA`@--AS7@yIfz-d697P%8c!&7EPL!yfM)5$M4DKKbKeU z{>sCpv^nvI%q30>z6`H<%-o%S*)IJG(#hny6t`HjAnIC&KZj$UpWt=zpNFsfa;V>G zlW(!VYF$Okbc4#t=M-Xg@6uUbw=Q>y^^XnxCX;{0#sqXfT2y4zAiH)`S>rGHnwMwP z{iOf#hyAZ#bt-Ck%A)X9R%!i9Z{22H$SN##@|?r9dmkdWUM-!~yG1C=?$Vam%0JFN zxh%NkPH=&q#_EsD8T1~{DD5(Rvs5qtx-R$Jb1ddD^|FZzLxulsxzDM_?C0aF>0lZ5 z*5lH%>deg3<{NZ=dUm+#{bx&Eaxp!3(n|YsnKkXf6VIG+teCT-)wZeItBz%dPJZ8`D%=%q|#dZJo4pW1!92VpfqQrtg?p7h0-YzHYO>t=aPY>D|z; z6%QXr-TBNWd6H4pA}_?mE#Ts+wq>iDcRY{yc#x|{c6w{qDK0IkH3v^kU2TwiOT=fc zS!c;DuRESq9~-`uR1`L@SaR}Bk0bNPkLubRGalN!QMJu_H|O!kd)4oyPqS^33UoO- zC)m%jHOx+SsZep)W2MyZqOV>%Exe}7K7Gy7+miRT-M+XdOILgS3MJ;~U)ScAJ##)_ zkn8p1?9`tf_tGm2&n%nx*L&GaX3dD34p-kC`pbUuOz)Cw<+i^z`%j%#V1N2+{OuJ| zTv9SBht1ng1@iup^Le^s(jTUG>^Ik$Oq5cXyr8K!SL^>KtT>dodgUi)hn(-N zAAC>gZasgSOMQ#<&i1%jx{3TxuTDQ}*u&?d4T-tzgmVSMm+3#nd1ESmUAmag~VH zdh3HTLn`{ZRhVZin`5t6*&LPqvE!59p$RhrW!4xu>7KAUXK}!sV>7$nlc=|?qL%9y zZz!|((&~Ppp2-^g^V4xh58v$<7P#9;LECDWo-S0c=pCQ`x=uy=YCqw zsi>QyDDrleqrKHuVKiB_VnO6$tn)Te;uQ$=ae?#c> z0>7rnl}Q(VFX-v^WeDFU`10U6m)aY3Uw^;5;LHi1+5-;ni;ju%(bWC5 z^ii8*dzRZL5Dy1sVdMTXjXdZx>!uGY|0(OmOyN|o@QceN_B>NxXu z{FA;jVZwowV=GQ&zvNZh_i3`&0tsI(BhlKIOQ&yBoTRdg}6Bo}cpsRG+)`NE~Ec%VnH??#Z&$ zS&6519Dc|*|J~I2TV^f|)x5vwl(Su5>b0n^Z*R5Ysr}dNd z_qrDd2)TX!dU@F_yMr!QwS zOa9L=t~+*Tp+%vWsp_iC;FhmBjJL~zj|EQ;m6};$Re!NSM{TNw&6ZN1UE--*4?g+- zeQx=^gX`=6Wc-EQ{rD?yiuH8s%l=<17(rD z;Y}+xI(96+FW*`GqiF7-zN#$mrHA6}URQQZv=;cTAk(d&al|Sk?0-@J#gBV^SKDo^ zE9TStd$ihP_PM`;zE8Bc*9I-LS(AG|y#H}p>w|6Y=QbO7J=D6fbrkCs!^;N!oMvh$doBn3Tc$VV* zSA0I_zslHW((E-WdwSs`&Yp{ZI6pa6EZFjC&fnHg>8v}-UnniQYqa(4`f$IhckfRm zBxcWk?q^%)A@|!qo1>+zh6AvMX;IQspLVyE{*kZCZXz0efwk`71kZHNH5xE z`ZrP1?DOMAkN#TTle!`Al5=U_y2A-tcTa|2JNxzOn!R@(PcObdZF3F(zi(%b zN*L<2S_I!OQ@o?Ao^CgFeUZFXyTIoeJw{45=liHWpB?=~@7}6@mQ6bLLc5$!PM!EO zMk_x^z&C1%?Dfmx_nrP`@bzZC@bif3Wa-N6IGwEFvBCYX*Sp|L&vYGrEGVD&{dWAq zSN-)(=bv1BbLa>I>kJ;}xuF}L%YWBevG>Z8IGOOTUwGfxrrI!NTzz`r(dB^B%e*V@ zf3Tcowyq`oki+FNJ4cbIe;KA(mG`#1`jEKogCHB9{h!1;k;v8d>u9}sM z`WdP7g(iI00~bF{sN-Z6=iaFOoWb{-Xt3}S!PHO_OFyQU6pN3`7&32Jl5q~6T|XcWVwD;|D}61su5pw=j{8mZbyQe-z-xRZTq`T+wD#q zTy-`z;HP>R%~uoBty6U?107iC-Vzoc`E(BH_%ehwYl_#~-;wU7KlQ z*ZsP^m~B&S-1X>nwv5-~Ud|}aIolm6^Hm|nY^GU2pj}M#)%!5Tn~Q6>-=qA$n}_{&n2RXdVGxLSGJZH{ZD#7RXN=*c=^m=Y$$rN~;=s>bR~>Jelx&f0oL^+g7t!uYL*izkg!OqxB2#2ALmbQ9F8LcCqsAmY-=4 z%dVxJ_1>qUk@ujkTEK5cwV0&LLN^bmecGo_pUx=N=GWi5rAse9Zb8|loNX=)O3JSb zAM;K(Sj`qw@^E|MU*73SUv88L{g7=uSzGzrvPOn!=XU+f(vZW~%{HvmoUvgN?PdEn zHH{qCSN7ixZ!J%m*tR_0ec{x|H(Sy|LRt!#c+U$R>XAi?5uB)B&Tc2~XrZ-n@~KssE$Hyj=gh zd9%lUFHg^BKd&0L#`@gy+27)lY`C`3D`2)+-U5d|VIh+vZE9T93Lm#88Ce}=Fe^z| zm!D?)tZLz}qV&fP4z#jtom#c~ZvKtcoh4KLb%X`G$5{XVwN5um?bd0q7Q zvQ%Fl5O=el@x@nv9;@nsuvpJV=cu`XcMdf#-BEJUCab7D*l&}ZXNlytf|E)%pHFO- zuu$oJZfJBvTdQ}%2K(>HeUX`ux?g&~T&CLaHa#p_IW#c;MJeyId#xu9hd4hD5@JqL z(f-0V@3+K(_RJ~kU!~u!Tw+^wR&u7qoJsBJVKN79-@H19V}+$xXP9UBjMj#!R|0)z z$NqIGxG>vlUElA_LvI*%f93qRZ^q=8&8o)6hCO9Bw{~P*DOsDn{pcd&J2$SMJR*Dl zy#@t?A99>TKF1DvnEJRZ{^;+?r{3<>TI!^O+pJ%>41jOGTR<6Ep;cTY6NU7gR;KRHl_r znRnIP^@G2c*P(NFZ>CKSh;}~v;!pF3WtII7Mj~4#et!1oW?Mn##IxGGB_I05oa{0t zY!UXcH_KkSEbrfArz|mVy%}e(Oqs6Ft$fwZbMc$GyEBrMJ11Aq{diZ{yVoxBtLBdH zfgYkzgs!_xs%6-JNf`^poZ(#(n;|>9n44 zk5H|6%)1SxCGY3$_g%i4H}Oi_j*rKr-zF~)fBH18Z{AUseQ&qjw(`9$ET6mc(?Kn_ z+4J67b5GxQc9!XBg9GR6e(Ur|nv0p&{^p9QJNnbYAzt`5|C{6Q=KQUAIQ4ts_3wGE z7k>P#c(pEj4r;W4*HdxAXT;u3f%AQ=Hr1|H^e^{-?ROFHK8+{Z{gOM4edjl|%32)UDH= zsE5s3_-gub+44DpCIPiMv)*0vbzXzhI>u&$r@PBO^mQ*fpUSRRA z;KrAve_9c2o8PUiOul zn{6B%$xTu3kN)|)|Nn3M$!_Q8Rlb_b`|H|)p8@Qm#@)Momrk3xdPmQ(2WPhPs-&EZ znb;KfdTqz$+{fF~Qa+a_F>g*k-*#-}8rF*D$!J)@OQQ-Q&fA(Jr_j7rt@gBM%_|is3O{!a0 zP~}#)gSOkw^n`0X&-$OMe}41ezUS<@!5z`>ewcrc*s|^*bGj|-^&hQjMtd{PE||%a zVgKvR-YL&kKMr)$y`MBo;M_^w1HXK$H@63dS%$53ZRe{q$MYo^Pw9ZvOD-^YhDNLbBQ)ukWi? zdDSwp^T?-@CyJWBUAS_h#A?Os*z0;y?<=-T%#NB7=p%l-O7wYG zO}-tSx@3YkQ?yUc)#Zy7Y%nh>y3o zEhC`ORDOc%e13x~ZC%1*u3sw}ugv*<_WcCoTq`gAT`azm zg?D~04_-6BcCI7K-fvBDuhpIWicMpGU6A#8@MPnPeedNe0xuu2t~2O#|Cg~&!|Cs= z-VguIt@YUd$m_`NmIFEQZ(rQG8aK1OdU+M6+U)JmJ|6j@@mbn5slhX^O8WQu8P-&?G`e_0)kIj}??x=F2HQ<*6&pnnX;qDF&H<9bxmK>4zWyhOqdHaUx z0oiFkEWRF2R_0i~YO>p>hAk|gt>1sCGJ2-zFfTsq%xkg07uy$Xn3KFlZ0Z+njp^)e z#x1!kzHzAOsj!I4iZ;EN5s+oZI{Bo`K~w8VJ!L`}vAK$KX4hTtyXZ6ObqB#Mh>sKhOGpdU(3<{KxYvJAK}&{rNpJ^vvd_XKVlRY(BWg^v?0{&}$0G z4h-x5U0dm8yJS5sU|Lw(?&pMpV-?qM9_3`1K8p}GZ zmAY#rl00TLzV0f`iOE+1Z%~7F`srIb z3$H2V{oMXO+aXPhwNOhs^WQ$P$!x6`=E`qBFvmLd>)tz3diNtbCOWS$JX02TcyH0M z1r9yFR^y%DN9Xwl-PRdryvR zoD%JP`oce*Ifo8DOp*F_p66ifb@#{V^*{=U zD)&V14fc=jP;_RO7GPR&a@Utl-DiqawOdbxiz%F1@j*mPsIMhpRwLizs5$cz*GQby z-*k>C@lN^5tEq+o>LQ)1UWPnzf2}PTbNfv}fOKZ(rG0C|nHdXywHM?}xV!Zc=bDV0 zr6u)Ip+RnTJ}OO0hgM8DDt9F3%i4vG>6x4U@67Ygj^g?IYgJay3?rVu?8`2?MsD4B z&C(*7qpeTM^WUk>d@P5UzvsMKze#A(-<8jVzNXr9)q3v;t7*;JRrO_|+WMHu1sYz@ zws<@KJQdUP{Lhu8N8BYm)o<+ku=NTe;B?lQ}W z%(?Qwc{BHvE!TBU?ChR9A((OLb9UFCNp(paY8U3eJtC+mF;URB_m;!;15X5scpLPa z_a%BpUN~>8Z!EEE!p1W$OOEn6Wxa7Q-e`IuJVCj>&V+ewXVk7)Wk#=cta*1`nbGLc zDR&~{Qrv`V%^Zm`Q`$MBE~NF!cg%duHpA2H{9VZ-!N->+o|<72+;yqy(V@LRJiM6B z%FJz&TpSb;|Fd9$y!5S2-yge(J(zyV%6fC} zZqlZQb_j6!t8L-llYYC}W_Q6dR)Rv-Y=637k;`DeE!j=)A|Rutekvu ziCl(65%c9^Nykd+=TyIYdE@Kl=#SUi|2GCd?>iJ*Un42)=~4UUd-#Ki`)#``x&2&9 zN+f1!2wXT2pXjJ)R=1Dqb>^e*u|^v6t3GMYIeYelY`Mjm_=kstm&vWE@($ZJZ*T8! zF@}9ldbb?=|7rSuiT`Jp&n=sEF=*<}Qr6znqS|2&@1H)dyu8f!$1(GLg-2#Roz`Jh z^P@ny;p6G}f0w2xC$`G}dB85=p|qts;Qu7~H+y$}dA%o{-_P!6%H?HZ*FU}1j^7%* z%*W8~%+Uqg-Y)#~L|L=QewQHjLd>wnO-|aZOWc!(vrIkOQPXBl|zi#u=oSBQm z0_K_Ne?Ij1{HLpx74@ZttdpEJeAuD#>+wUy&O#IWOs+!TK($a?^Zlp8-W+mDSXAVCT_Rv`n`K4zuWGgS+?FgvsR&_?#Stn%CnvyIT-2? z#vsPiZQzvI%zh-{#sU=~vE-hzbsc9Dzif173}fp~y}O?Zuy z^12+qd4;{$xs!{gw)h+gR`xx3?P8zq=S}SYZ+yJcf2OTn&i?L?_D!j)lFbD6wd5H~ z%G_~nV}JN@`3tkA*Lx&#Q5&RY_B?_yoY+AOw}|7OfCTer=mHaz34ebT{`ck(|XAy^7~uz|A+(I7N}Tsif_}+ z%33wi(&B7NdSSw6vEWyo>iz~!)o(eyZd9zje$8t8zU=Dbu?r1lml;|c?3I6%EW~Rhq5s zQijfz3qidF@8#Y|OnkqUdz#OYkHN+n?|hEvGIM?3#+!1-@^w%3uH;AeTD7-smtXrg zC8olVuTQS|ul;{PseeC}_AI;j#mslNsp*Fv?=`z7Z@m+J`Hr#v;*+OMZ%!90H(9nf zQ+L&$$NqtC*}Bf}>I9h6vES@E%woo*>)}|r7Q7<+~o^1R)ikk=vW|hLp09Qf*+yZG7{rL#-trPp4*?z<~YCR;b8**fK0O%{{&+x!@5fs6O%gtX)v z{@&cif5hYOCZoc$SM3kZ+Ilm_TsXjsaqE;RI+wPtD)@Nx^T*@u^9~;M_BY?xJv&1x z%14|1`WB%jAN@t2zS8<@A$s9TwerdfmlD4$F6~{#b?8*>todt>1wK4bYEra1_kONC z+rE1e7iyA^aknq~5w)r3;9~XTg8yGsd0fz2ckzgI#G~{XRWYCXW+ogIn>^*yHj&G( zWh~Yv+&ay|VlrXl@~jNG*EYRLUqb}m>E<3h_jgh0kt4?v+`r`+S$1bO=1a`daM_aP zEvdzw`LQ6$#_ZjS1ON6eonfrW$N8my_0KS#Gv(K&C7kWcnq#jj#eQn6@y_RYG&efs*8q_=%ePoA{~y;#K-|73z(%?2)YdHX|aPWrwP*0#UhUur#T;_=U) zKMFes_%D0+$@I5@l4hHiv(2Hfi#cYM?Gtr^50*&AZS5}E`^a|w&E-cbKRo)iC|&A# z{^ogFb;gwjOv8}P#a@$5y8@LxFVD07 zUU95IC)A_bYJ!-!Y(_=gqkH|EtrxA_q4pyvlk1oGGGo9(SXiD4kX_u`6 zxAN=md3$Wl!BC6OKXi^2C4@z1)^2+HWZw0Qd#>N}Pv_gZ(csOM_XVn(;*Gn0UE5c? zRKqHwfrl&Y*o1rc5A-G6DWAX>5+CQwo49W3nfQNI(kGYdYv~`nF*#jnN|*uvn>)SN z|NoQ;+E=UmC}^@_-X8;z;2nY9xeH!opIJSRDSGOr9gY@DpWdD?7Pa_>+1VwA&z?O| zYRofH{c_{2LpIAMu}jelzk9t}EA@41F$dcm$2YEvVl6IdnpP~Bk;b^GyO7m)qTG`8 zGnGo(tfzLSN~C~SX;uZ*%|sf zp5MGz{(GG<)4ty1^rz<{CCs$%$1rqj{3IRKTn#OJgsGhgn?&ap~+zp zr%Z*srXwj2&Ocaayu?yHck_&FpPTdfnv(Q7Kde4H)#Q8+KeN}?-1Fzmg0dM?EV?aq z-u~Khq|T6vZEck<+4Llfi4%XS@0da^?2PTg_c8D_~s z=VENQI}eLL>ON~d(K3ahsH}MM#z(R>+rAm6yuZ~ed#7Yg#edo0qmi5Y7Vm%DzA@vX z=CPC=zpg(_c%6CYi`lzsuDY!gn@kG73O9#KeYz!*R;+WXW#f#+Nj;~YZ@zVjEjm5c z)b6N;=;zD(wtu{{ew%+x@mbS~Z#UC>(>^Nq+a&!7Jw0Vd&BWDjQbp5++iiG{I7mJU@Y@M%CtnZpqyL-)`q$-hRgG&+q&H&Frtb zN4-q4ssE+I`_J*%yugIBs#5M+%|2fFnk}6C zI;W@Z)yk6nb#VJZ?)UjRhq6~^NVe9!*f3rF)DDFueVvCYcGXK}Jbdt{iFp*NQ9cRK{EetFCKC;m0q`=FH&c9KYtG{7=jGEB)SaJfP<8cEKZmr;A^|s}{v-bR<~G^RIV{ z)7f;t3zK z_bdN>{Bdb^|GTH$>{^Ha1pa@vcAs_6(=eZHCued_@j9Dw+&O!enPIftozpp$l{|ND z)J|w-Uhc=_{Z;79p@y%rx8-)Q)vIkh+Io3k?8^1cyZH+4#3ja7T%TIRKi${=N#PEo zeP_Na{PO2`cyHr|8C!Ui0$HLt?|5j3vy^>Jy}EGc%xcN3n_a!HOjZ=_AqCU?%% zu9tK6`0{MVlNh!5%e|KvmNZ=5C}ARJ(|mOO^WW?2X@S(hioA6ipxs_io1U)_E>|?XD_@rGxcT^TP+r>qbe(x&H zSQS^LyhN)&Ir#LnbJ}a1?RR!=d_Q-+T>V}T?ypW6J9Jd7isu@qe@*fKsB!7>#af-L znCy448y`8l6vcwJjz0Siv;7P8f&jEZR6Ao%L^4{Rhyk*dx>L8*VI=mSC>Y$ zr2d<(s`GsQW_E)^2htQbZZy6A*~TYv9!J#gDU+mZx6b}1w0>#B#cLN=TyK*}2(M%1 zI$5}GiDkX!3)QxYL=MR#$(QyROvsze6d5OZ`d+-(FTvKDRWoukU4>7*EZ(u?(Cljw zuO^5DHXogw>D%&m@w`Ir9cFj_I*H0fd3LWh@sB;0e#^soLb&cE>F$qjk4mxyT=jhH zD0Ot&wfB1-pN`|WS|e1w9W|67?K_~=FN z&rSV|cdlOh$#s0Qw0f?PX^rq==AVxrmd-Jeo29`RmZ0|NKTFXYOedGJh>kzP~%$`?GK37gh)1GgB^|v)yt3$0iYG zx8s}L_K7>XaQAOHb=KjbxN%tw$Fyg?c}qnXY*cw!dHjoz&F>PYFmHe+eeqG(BJ*swAm9L*^upE3K_eSQyzjg2TRZ9r)$!@u{pJQfzGdusm zR`EIh^3u}0&V{e9W;*fHT}dgg{x{%chHZ6)6v`gv}yHSg!}&Z8`EH7sfu-Q040cK*K3`Tzes zZ~M9WNBRBQa`%%w#aovwIbzTt>X~XG?WW#2W6fLEgQ{S&03K6(B1ym#6$+}vZaEH!#~#lx;+2U!ge_$!}t5|zdW3Ga>C@v&Ejzt zjNLC^Z}4uc$WeN_vTxtTT9bkl{^fHM?!TJx_On#ln-f3Rw%a++cGu@@ZIQk8>CcO-kF#G0e=))F8k58J4Fcnfo_L6H>e zvWkS1=?nD(+>JeNsczZUawltyj-C~6-2 z;kzYbb7{cboV{Usgx%UMr8?y?H~n&CTlXQ{L_^{$IDF`rs->7n7}= zRsU13v#Y=Fd-e9g65oY)D>7bs&TH8HRPm0+yzIi#-;eIR+U>rTzw`3FZs*(EO~c&Z zUW}Y|?aJN#n{%%R?lg06=4O}t7J7Q#;bmK|PveN)5%}}mjy(G!_ewe4nl1dU{QFD4 zTE4x`thCtR$t>v!=6Ot?@_rlE+^=E3cUgU5XWG1{pTna{_*q^&93zRSSLdKNc@nHP7YwL6IxmChL|(waqm< z`m1pHH6ONok^4rtJk}aZR&g~<>&M0y>vrtNo}Bu<1LRQb@SlxW{Sv${)!#VDa>>@EFEujGPOU!vVnLLVSZDFE+?kuKysk9A zzk1Cru`M}r-7l6^YdYqXzq3p^z?$@Wn(Um_Ct@B4ZrZtM;;e%Y7tG=2-F`(`O=X&s zUMibZ*OR~#tzEWXPQP={jgp_Awd5${Lc6VP^H%@d)_2YDwbow2=i!~Tt*IwEz8-2{ z?fv0db#=kzpIf9(T{1P#5IgfmyocZZcC(`9!V`C+nryAh7TdR8|7+Pl$;eUMz3Bde z$Xg4}#7L)FHl4ZSSl7~-r}J5I`J}p=uV-24R|oRXP@C?oQIlEg&Ry_u|H_GH(zGUD z(rC6)%HlYjcPefFw@TfAn|C%|Q;V>Un*DK6LtlBZY^HSGiF4l%-A<`HUK7--`uLAw zy-lp!g{-6O^QS-h=Ko4SSir4ufz>P>wZk*sm1mq`at(1?^gL;fwdtudE2Y1gJ-WR1 z>x}tM#TVD?EqL?_MBU*Hd{uPzIyqYz0L1@oX6qby1g9BCRAVjSM=ol?f!*Z z>cpLwt(VtLyb=^`ZDhw5cjbWYDP`$>D+E-Jx_WqextU~&vF`3Nc+qmOW5KjtYiggo zyXPEb=Ue*uPC!IJ%gpCzoHa5#f1ABM@XJ)%<2twcnIj7rUu{^hTWJN;R*@6sJ1sBT z94)h$^)Nv1{zaX&`tSd1vGp9$SG>^j`p?4;&(pNq{&^=U-D+C4FTMF~v-@`KTbF*V zyL;3je)pDs!_6HVl~0Rg7%i>%^y!npEBOOQcQQJf^ach6wh4JL9X)<*W^em3m*&K8 z9;>byHP2<9;$?6tMlbmMt(x2Ow{*PT@!~~7gro1izrVjrAN$-fQ8_cqiCur~$I>Z! z-A*Q)fwwBO{_p#6^>D-G96m*dXVFVISI+s*TWZcjRXE%(RI zxAu$kCs&%hkM6Jk`#CbE;9zA$(J{%2rnT;f+J7@gze3`2mtvH(Uynms>1$>op2Dj1&D5yDw{g%_q;v zX?J&(-q=;D-PPUQYsz>~SV}6(WcqUd`FSn;HJT@1aPBsHS!JGiNo8@SPTE?DV~0AQ zIdJaw*l}Rm>P=JK4(VKy+4uckbua&i@_P$^#$~PW){aa)eqqbm7EWQFb1n9)QyWBI;kPo7LWa7^AxLF)P${o}8Cf6g$n=5sbm z^40mhSG9AxakbPR*WsUAq82$Xt}`=uCz0Rd&3o*_$v}xIV&3r`g_5^E-5H!x41dih-G#9{%@18twyUtqf&im-c zGM0Y3W?ee+c};>ggL}#IxargEj?cMszdG&CP4n|R?pD6@yE;d$JDeQTVm@9f48`|TQI`Tq)r+W%%{I>v9ljBR$N)Sd1l zGU<8Bi%i`whIY$yT3k)}_vo7RL|3+=oTy!lXV%omSpRmCXZvOF;p&lw8GMq?P9JYd z37)k4c2;Gj;o85QvbU95jAv*%Iz{~I6g%)&e{zSK0;7;%b?>aTk8W*gW6ajPt|p$g zxSnT;sK&k*hs$y=U2SLi$;LIQdZMyn>MIvF6~&o(JbOG}^UW+xzh6s>!0#F z6`yx*Q8PXA4ztXozZbOkP>Tu7s_fUZ4gqXd|qW!$(Q@;jMf&S#^)0MygH-m ztF`mZB)82hpO`DI@hv@SwtIijtaI1Yx`U4j?o*wy-sZK&3w^8J!kJ=ja`=;Lxwj4K?%d!L)`)+2xWwVIaHM>g$8)1@Zq>Z? zHQw`u_;m8_au@wy_lHkh#)41$^v`#Z^Md&~eJt-s>M~E3*sx9Z_G;(rUe=o;tPD>s zPInSn`%QAXfXROE#MI_A>$d1kX)#8Ri&i^-Ji5*+>gbZ{Wz+JXgv?rCx%lha*H16* zU18xH+frU#XM64WRpnV?%xCsoaXgtMcK!PGAmy+(_N-fL-yh2Tz3x`b!T#j>=VeCc zGZb_0|Er0qIm!A$Uc7J0gQzJoH###-uI{=0Twzd2LB2AYRj%Z z{QR~0<$6<2#xr?NUOG%J*A==qcR8K^C(<<2SWPH<`<29)G@i3A=8w&*{SA>wDU(*mD2$Kn8cdH5t*43er89|GwpF9Q}FO zd4i01bIq@a<*kWRf;Q~xak`p)s%B$hy|C>etJfXPsm~7Oi3w|od!_vR`1F_8gY)l0 zF1RYb)Lk?A4wp&5g4jc!XI-v+(SC1!vwD}*?Oxx5KMr?Ez0tGjnEmYN<25q{PpsEG zR{VOEfs)dV9kM1oCEJRt3Rvnkt>H+tp{-x1ITcoA44b4`t z9Pd9Hu=U1&PxnXmYc;df|C)U3UFu`qFn5OSzw75%4=xGkJ>%h8_sx;VYpLoky(uYG zlLUOCYB<(f=0@%1tTZ`p({jyd+4=dc_wWCR=9z6JkeG7kSpp z@R9UFz$-uM#isI(+5c-!C6MzvRoGuZh||D=)f#nu=EZJDz7} zB^q`HzdU`1MlWzaN)_bu18FyIpk4=ubDhrkWwxy}e zz8S@7HTSx0+K zZ)-~j_n)&}uK8~DA;W?LHg6VOi1Xp86)n=gud`O^ab31H>#gsJ8j=Uv*~0fdYp#Cz zZQie(Ef0i*UhSA}X;S-s@5bNN57$g!+CG16Y~YHR153GotO0G z7H@V-xV1%7q(Rp6|Ab37v+Zx#d@a4duQtNF@mA<+`{h&DT^%*yYMe^)7~%Nc(x`!X4~`sU{{&s z0ki#ct;-+!_uIM2UrezOa<{5p*?(lhzA0XAj%m*VmMmX7GvBOt@4nyv*ehN>oo<-) z!yu;U;!&I9lF6Ib)$v6sR14?t`D&)tBi&ql-mbfL(bt}|hubPeFF$$NT>r1zvj3IN z^?#AqBprK25_UZLwDb$7{Bx_>m5={E)&6knb^fJSaXYxfCj6A^P`PyKQpe$khm9)J zmV2e>v-fr!k(g(jIc>Vva+!uhjk4-YZKaP2CM}bX%s1Kny7m0FsgIXr8ZB`-&G1M4 z@Y|$ClR~elEe-namZ2s*chSx-(_i-{&C=}SU*dY`n&wjh0Tqcymwng_B-e1=dVj<6 z^@J1dFI!JtmW&T?N}ROs}%UefJ!G#B5Mu^*c0}w`k?o*)!$3Uv0`NKKC^>J~wOK5`j(fX}$dm#R{2? zf}1oX_D_E=l=*Jwu`j<5IGj^Il3eGhH>+mRP4VW9iLakunV{BOnIo39a!#OI`OJTQ z3-cl}Rf@MV7N&@}Z?u2?TyD?i*&hX2*_<-=#eeQ=`ZdY?ceIKx*XrkQ)_p&Ae_Hs$ z4xT?d1njw#H#~aN{>uMV;@2r`i+Z_&!@E}>ObOb*W2czp!ks%F?D)4M$4{m9*R%&u zbxl1IBe(Kib>WS5*qF;+^lr!Rw^DBwSiaQ%R-rg)-ON{W&-vAFz9%AZzw`YZq29VH zOjE)(EPOBFv9#%I(M`8sl4={e^@>e?ch8kKH7{UOw`t#HW&EJ>kK&XgVn6rq`M4~t zn%UQ6ee_38whK>BpXhvSkbKf4=U)x?qsu}Ye>G2?QT)nDCFpSZoi8UN_GRfZ)yQ^N zE!wGRaVo*2-&aww^`Wqv@)i9CFWcQ4CjIo0H5SRXzunbcUtxMTa_ORydd6w{|JvO( zUb3jOuC;e>z@xJzl9Qc}*SGj{sxfkQbT5~(Zk}6x_Hf{@;uk&jQ@CE8{&wSN1DhXc z5&U&g=CsKNPg%}7aMEHz{RFAqU;cVO%UMva;N;D+meR}-<;jQfTrhiY_?z>d^ zEdBGV-DUjDQk!{Irmf&@Nj5b5y7}Ovy~Z`SE!29=3jfIJY4lxMDXy_?-rduoRo`oD zKbvIEjC=nz*!Irl+k32y)0Y`dxi(E%=0$q*z3OSNXS$u&iawJgom2Pj^TNN^ZcaVA zu_k?X=EqBMHQbYh-Je*pwvO}J z9KmG!ov}CDZ!#QO|M_?(w`s>eS-pyBnlo%3TE)oK-v4cIp}o%$K6Y*n(%v)G%O{uoSkYCn3kFKxxm?;S7R3YvUNjk@$x@1f7T#U~96OrmQa z7v8ViJnfs!CW|M5A4TWXPAfj|!}Bm=pSbFZd2@tZ*$Vi!u0OFxFrr7Tt=EaU^GsQN zTHKERA6GbKN4CuNne6b(n0JA;4r}f2{5R)wc5dCewc>5B`N!$U|Fwnx`)j3GpvIpsq)vO)9WX^b9wu@>_h(jsZ*yv4&S0M&5?2G+}B~d(hpbX zr}*0NU9V5pJZJwsXYtuJC1!8qejWJpH^095^!i_Hdb=Jl9eZx+bN9?u^Rl<6j@j=2 zE4r`tba}xw$>q{+GkjkMP6#a8@%-cR!iH-t6Lz2c{8{n*^SQ-h8V~P%s^d5P_-@zZ z^egvd`kQZuZ{K5X{@3mCqMwrs|C)v;ANo<4yI;0d{dS$pR7cnS5%RyBLuYpgzA`w; zuQ|VekoC*dMrtJa_Os?=@$=kT4o7XF;D#;PhYxctlByWf45 z6n|Q`No~)!LgAo8nYY5HvEMMCb8F}Fq6L%Ea(2Y){!;HaxJ>Wh$9(J7>Mx5c*4L@I z&33+D@L*EYk#BFUEzG_rTx=5deOdUh@kdfU->cQ9C+sa{-C+R>4j$FTTP9YU z-dE82Aag){eqGm2^?4oT_kS})o8=un$?deANS+uI-gultjHr~bYCi+5T2`#v9*e{k>q9bS8*`jvmY*T!9% zlJP0>hmnBr$D}1~lkGKn69a2z&wdptSLojx`_EnQ??)@CYhDjo)=E0s^>!>V^~&5< zw_&N+?eC!ze@b^{eUeKx+tC?wxa}BMRN~_Gk@ALbngt$-XUz)Pu{ty35W}~l$L+O` z?Krqq;-)@B_&kx5KYnjiTHaa7I;rzrZ`8A=hxagbEO)nGChB#r_TIgi;~dlYAL_4K zePGSM)ES0)q9r1&y+7}juyeH-_(nD9FUnwwo_cl8(w(8H<6ES~!DN#>fqFZ-ALE3EkY)7&8MQ^l_~xi;44bNjZ=|I-te|MGW5x!|?> zZDO4w^G?n(V$?jpuR+bI$8<(b247TTQEc0`5a0RtC+pdWXEGZH#K!bZeP7pbhOzU+ z?RtjGelz=CZcb}5693VX-u5-y{PNpmt>@la{h0|y7WHRy+v}J7jgE?It?X6{m~l_= z%!bb)?VVK*oaLE!uur%#-4)cKF33rCn7lzu-_UuI(C>v))DlzwMYbpyHaR;T+R@0j zuycV_NTBknMXQ9ieqm17(hwUu*``O242h&?anjx zKBe#5XxORSv*O;23)Q*TyQfw6c84!F-gBeGY~S8n-`~dG{ruYN&$mxMcJ0qz?|ZiA-K^`S z_r?0FiX^r@+xy#HeAApI=XPB%+k2_>UjM##Ki;j5hX%ocGo9;x>KiFDEAIbe`bo{t z>7DEJ1L-`ztLk>imEPYenw-B&a-zw{n~z>k|NVO(xJa(CHAwjGHgo356L-V?y49_& z%SV~--E`=_mHUer_0Q+ymY7Jp8EBsOU1XK*_ptur|J@=!C2tqV+-fP#n%KbgS(VxS zsf614i_DM1pS|BO?Z}xW>rY?kD0^rsANzSWLy?z3zUTCUH9LPyWPGEV*7hl9{UyII zi@#l;Hak9`!@B-&^`Cd)^;eGxPVS%G!hO!}ZpM>i7gBpAT%L+PJ?3@$_i6hh#q0O> z?XIs?@AB&UaJ;%cza=Ep{<7PV>F2IkR)2rAeEWYce)}Ix0`gsv>gNtidiyy}tFbfk zpIJX`szxUJe&3{j^XJuye*gbE^iSgeOk2v@aRW&&ziC&wldCT}a@@wp{6Ve~#)G-V6hip(kU+_T8L|I7T?GiKMno*Y!JzCzAa=k?l9-y4Au{XH36`-7XW{7{>w(EaMgw3Q13 zuZ1UC>@_^;2mD`>F^yF8Rr$zpLk?6NKxBTkY zI!0_QQ}vr+EWBb-e(bf6bHCqD{IBnjn`tSf?Y;5Imf#fyA32ZpNgw>^U@mv%)}0-N z#$~}1(yqMFxm1-nrTod~SdK}{a*YeO<$ZNKW1T2?ujX^?nK^|rbzi&hCp&Ejz;Eiv*URd)u!O_5GH^%o*D6bq`1xEmm*2@_1J8tipet%@)lWHXhNtS98y< zUS0P8-Z@uhW444dM@km+o;ws-Sgx~e{`%g9tIe-JQQ#`oss84g_4k|ms|}7nj+O80 z{9RX~KWQcFoP_0BUsOGYuz!MF-mVh4~JwKG9*sQ+ZF&1#_ zUU)marpF50a*_uvXc?xL^O z@;SF68!r3X$!+{%ye8pef?VIF`F3m{0-bW=x7A9#IDBAZE8}-gQzfM)=|%yO%jwys zf9rpKT(IzLAcOd$2^D#9J3B=mx=ROoR(dWD2;TZ>!b%y#Nu}#o&p2}H%nJrh_K*Ke zR0U;4GgZ#EG%nsd({@%w+3}gL9!lQXUtRY*zJA*+rN_s55C8f3x$u&wx}^P#|A4k_4?@R5VhGyb|=LQdalG6I$ zyFaRa)he!>@WrC0?lW)4zVB5&dtQAKn|wZPUCGh+mJGj&UV)mG|87fMn0W2H|B)XG zQ>Is`s#^ixSS_UXWMYt$MkEV?Bu(}8`INg zUKF|Q+;hNej^y6pNWEp7et4Oh^4{37O`y@yMBYoPndASGo0q*L=lUcGJ$n53WJAFV zZZ`nct#mB{GV8XNS*LoIj{)s1_N7w%_w%M3t+4=cz!Cz7F z2Xi)`cPaX`&`v=8lF#Qom7jZ-yCm2IlQZ`HyiHnTzd{ZK-7r*Puh4Lt+ z-FZ51L{k*r-1M6mF4%lKBWdijdv#3v!La;a zYpi9q@%hQ8)F;iqu=`xo=bNX0T%Gf?Jw8z?Hbz!&Mp4YfE9HUnou9dx+pD@78qwJLUQ_uO+fATU?rF?qhZE$p48?eEEGp9={#^D)Z3v zXJx8q9FO($`sN55N*#4stz2x;SA2Bx>{kX=u8imAh@Q@uN?-EQK<@vi`7^q_^3xe+ z2R{!N{%!DfflQ0=Wb6MXAO5}V4gK-bI3@0)?D>638yD*SzBx@lYO-_wr{@xp(J>82 zkDFgy%AYPdO+DsIS;33tO`fKO1zT%xmvOn}xQE0r>1w)7es-%Teg04Jwp5jw`{vA< z)H8LpovL#gORzwhQNhtQ;r8;jTHN{dANnrtTf2OI{>&HUK4RJXau)6U6T`Di^MTN% z>em^2KVCW7{qbm<{)>6*r5yK_L?1Ep_w_rtt91V2RqF&xubesm_{X}nE0ZkaR; zR(+|icdOyq2YhGZuKeI#{xjp}@vCR_-o`GRd^X7>YpKEe)A?CpOD}A9J0$kX|8;>0 z7tiYT2Tm3T87j?;I^^@hJMQo9>Z}V6^N*>>NgZ2quRZWY zva_GzGxH0lR7}G!AF3%l{HSin+m$tM)-79EeQE328ZOn)W9!Sy#~;3&e$SPSHR09l zi0^()ZEKtK*2tMwt>lyy?)1O+k0o=a;tABKZAop?sIw+auz}_HKt} zE>|l4rV=t`szI*t-#=D7Hwt#0TeaBr0;BMzj7OHNSAQ<8_&xRdhVu7}E~}2QCZJ$-u9o!o)bT&GB`K0c*JawkYr}Onio)Q{rJ*@ZA*?t^or!(ICt@_+UtYU zYk3~XxunI1feX8EX67h`BPV(n2bcfcrL$b~xz(>vYnQ)NWwoF6;={v3>wCNEJ~gjg zJGIFyA&JA>c%9{i&V|Rz8@~vOiArBgvbyT`$UR#)yW!#O&%>iCrwl$g)H^I7%l(;LuYjGq}|y)1Lv!^5_-%D!=y+%$apGF{Lk z+wRu;?=x%ut=gU^|EE^sg$y%aV02Hg&<;z^j*H2i+jY%r^3VU=^yX>~#~!|5*MAkB zY7hP#tnXP~>9UXAw)vj+em0>gC!NiX)XnTDnW6t{m5)oE+QNBS(RL|b;+L2r3%}0x z@V1s?Z7qEyplqVk;Bzh~rtIfUkB)xD=0g{w#QrR+5$EAkITQ9i)Z}xxjO}UtWrtma z0_Q*dRunMv|M`363}K;5?$6(|XU~^71;sCVd&`eBbtpxY<*r^=dbjlI*0sCNmj3-& zUVZth?zcGc*Gc*}1VlpwCfv(z_%d(LpYt<+tL-_`GK=MceX=XcJomMK|4zB(_0L0;I~8xMYR{cG`MQ;NcFB(oi924uuRnYyeg0in zhR-{n#e3}(y`KO7gSbxA#=d2Vi$Bc2|DQ|UZ*I~h!)kM3&gi&i*7+{(?#Wk92>N{X z|M56J|G3Y)-kOiB;tPV?V|?b-tT}k*m?39tUD=x(ovq&C$%hP`Kb&WmJ6!H(+q%rY z+C)0;qL1|AIjgU)IchIoDfM^-@9vDNR&UPS?|k!Sz3`QE_%Z254p1ksc_fz>RL5@i*?q4y{(5zlxLlgbk`+%Bmb-F(+kKmR zio06r_!zXRVvF5mxd?*`d-)KKCfOl{Lc^VS?^^7`>(GH ziT-vNlda@_JJd5GpuNX#CM(%w3Nwp_7O z>Q&U53roGj-$njyyLtJR@o|6cZWRmm;MLzB@0_1-=f+13m4nvh@7iaSUFzKOVn)U< zA01OGbw7#jh0W|6{s#w#r+y1xVEvtI*`zfq?(1s3imY2l=`xM=U&$OLTX>kuO+UJ!qt~QynbH1*gs>^PM^)w+$Ti6 zvD>?Q3F8^tw#Uk550+@o74TPz;&t4=`t(ilMUx9p2WJ;P-xz8nm7jIu#635ADQlB! zM+$P}Y^x;R{keTOX2C?)+-G-%5A>c4Gku>m>F?ZKB?tCyx9`e$_uA&)kCPHLcPjqO zY5BCqecnO)jF-!UudjPyo5b)aDd}vr=4x;ElH?sOLKmbSTa~_SY00v`SMyJG&xa4q z7LU`fCq3Gt`C^81P(`ubzv}yof7JX-iV{=xJo|@ZM&ZKCc>%%BA@UQHe@%RubGvrW zZL?pcECtexZ#NZkSg`QPvb=e)M!ff5$AnCUzlpj=JN7KZn$;;>6*N5Hht{{qr1_MMpXyG%LZ-wZ_-&xN(J`|f6JiF>(Ke0z+c zeO}o5xVu%7JEzDp@iDeHI3G}aAn+qi;lTdOOOGzze_J>>*mq`0uI`Q+W3HE84+RQ1 zOxzAAXG{Gy+x0ws&oSoAjLwb=bJq5Me&HAw5;m>)UPIXaBHDZuR5oo_?OKlT6kBwk%UBc{#Cc57+1A<+Cl$Zq)eCZ}&&Q{QpzM zl$7HSpS`ZT((vc1dGU`so^6Zez*0~yhV-8mJYXhiYWO(k(-hl3d$UZo zzr4OW-QP#fnuY()Z^3OF`1V+sO)9_rY5&4c1`qeeDql1|eVkQ%-n6}EBh&Y%Ec>>w zV++Ts2iGUOSgV>iS#Expw7k}#uWR-Rt1nYH$-}79naQi*5oT%gc86ku@Z&!}KEC{Wrf%~SBTt^Tqmw>7{J!Vv1!etS)m5jPkN#V=HaslsqSvA` zQ>qUK$HeHQ{VP{H^`idH#>u|cFYhkrw<>$pawSCTTEGkW*s__CKNNK1-_DLYyYU;x zEamquyk}LmRST9evwvOA`6=a_`q|y8MH3s(oG6~t!=toood~1QU%{=cCwkU8h@Q2& zzO3~4tw}1gCg~-{mb;%Zn^~;q=oQ3vxX6Z2Bq_Plr0bLEeeXoi1zwNM)%w!=bTvP! z-1F5e`zsJR<*I?`IaT*dI$LBLZcg%02v^kY`^{GT{)Lv^_wEl{1AS{Z)=pgWH;K11 zaob{!wGv75uI7Y?&YJv;iA8X4U}?>{GD*>y=UpY|&U9++$iv+S39f;Bl(4c}(?D;Lh4H}k}vmnX|3=AXN`<7Gs`<+i6ginCbNisKV31Me^C zJNxIyykEOJFEH7c>AbnUSv=T#iP)A~S{E-@#PWxImTYC8s8+E5oowOz-15(RqkM&a zM0}Al6L`7PQo^E4W!{eWf^%f+?RI^6leeaJ+0$*uJ(v3}Z>woK7`^1*?e+T`zdx_- zx^MH3;}@T-!`k;2B5Q8;ESIZb%0D-+`Q6U9XLj$c?3`7lq%?1jzIe)0@o5RaR_@)A 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 qxy8T}KT7{6#u5x%K$snXviqONYAxZ)S> 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 MI+Om);u6^xN4>ZYrupQo3-v#- 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�F3?YPH%{mT7Csou-)6uyt>yt>OP@%CPAN!ACI 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 z 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 +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/cget/CMakeLists.txt b/docs/mkdocs/docs/integration/cget/CMakeLists.txt new file mode 100644 index 00000000..e3fda5b9 --- /dev/null +++ b/docs/mkdocs/docs/integration/cget/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.15) +project(json_example) + +find_package(nlohmann_json REQUIRED) + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/cget/example.cpp b/docs/mkdocs/docs/integration/cget/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/cget/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/cmake.md b/docs/mkdocs/docs/integration/cmake.md index 545f53f3..df020319 100644 --- a/docs/mkdocs/docs/integration/cmake.md +++ b/docs/mkdocs/docs/integration/cmake.md @@ -119,9 +119,7 @@ automatically download a release as a dependency at configure type. ) ``` - However, the repository download size is quite large. You might want to depend on - a smaller repository. For instance, you might want to replace the URL in the example by - . + However, the repository download size is quite large. ## CMake Options @@ -137,6 +135,9 @@ Enable CI build targets. The exact targets are used during the several CI steps Enable [extended diagnostic messages](../home/exceptions.md#extended-diagnostic-messages) by defining macro [`JSON_DIAGNOSTICS`](../api/macros/json_diagnostics.md). This option is `OFF` by default. +### `JSON_Diagnostic_Positions` +Enable position diagnostics by defining macro [`JSON_DIAGNOSTIC_POSITIONS`](../api/macros/json_diagnostic_positions.md). This option is off by default. + ### `JSON_DisableEnumSerialization` Disable default `enum` serialization by defining the macro diff --git a/docs/mkdocs/docs/integration/conan/CMakeLists.txt b/docs/mkdocs/docs/integration/conan/CMakeLists.txt index fd3e9ca7..e3fda5b9 100644 --- a/docs/mkdocs/docs/integration/conan/CMakeLists.txt +++ b/docs/mkdocs/docs/integration/conan/CMakeLists.txt @@ -1,9 +1,7 @@ +cmake_minimum_required(VERSION 3.15) project(json_example) -cmake_minimum_required(VERSION 2.8.12) -add_definitions("-std=c++11") -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +find_package(nlohmann_json REQUIRED) add_executable(json_example example.cpp) -target_link_libraries(json_example ${CONAN_LIBS}) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/conan/Conanfile.txt b/docs/mkdocs/docs/integration/conan/Conanfile.txt index a8a3e703..6dcd6141 100644 --- a/docs/mkdocs/docs/integration/conan/Conanfile.txt +++ b/docs/mkdocs/docs/integration/conan/Conanfile.txt @@ -1,5 +1,6 @@ [requires] -nlohmann_json/3.7.3 +nlohmann_json/3.11.3 [generators] -cmake +CMakeToolchain +CMakeDeps diff --git a/docs/mkdocs/docs/integration/conan/example.cpp b/docs/mkdocs/docs/integration/conan/example.cpp index e5a31be4..1a7ac4de 100644 --- a/docs/mkdocs/docs/integration/conan/example.cpp +++ b/docs/mkdocs/docs/integration/conan/example.cpp @@ -1,9 +1,10 @@ #include #include +#include using json = nlohmann::json; int main() { - std::cout << json::meta() << std::endl; + std::cout << std::setw(4) << json::meta() << std::endl; } diff --git a/docs/mkdocs/docs/integration/cpm/CMakeLists.txt b/docs/mkdocs/docs/integration/cpm/CMakeLists.txt new file mode 100644 index 00000000..c4f63401 --- /dev/null +++ b/docs/mkdocs/docs/integration/cpm/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15) +project(json_example) + +include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake) + +CPMAddPackage("gh:nlohmann/json@3.11.3") + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/cpm/example.cpp b/docs/mkdocs/docs/integration/cpm/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/cpm/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/homebrew/CMakeLists.txt b/docs/mkdocs/docs/integration/homebrew/CMakeLists.txt new file mode 100644 index 00000000..12f4ae1f --- /dev/null +++ b/docs/mkdocs/docs/integration/homebrew/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.15) +project(json_example) + +find_package(nlohmann_json CONFIG REQUIRED) + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/homebrew/example.cpp b/docs/mkdocs/docs/integration/homebrew/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/homebrew/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/hunter/CMakeLists.txt b/docs/mkdocs/docs/integration/hunter/CMakeLists.txt new file mode 100644 index 00000000..4acc3258 --- /dev/null +++ b/docs/mkdocs/docs/integration/hunter/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.15) + +include("cmake/HunterGate.cmake") +HunterGate( + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" +) + +project(json_example) + +hunter_add_package(nlohmann_json) +find_package(nlohmann_json CONFIG REQUIRED) + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/hunter/example.cpp b/docs/mkdocs/docs/integration/hunter/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/hunter/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/macports/CMakeLists.txt b/docs/mkdocs/docs/integration/macports/CMakeLists.txt new file mode 100644 index 00000000..12f4ae1f --- /dev/null +++ b/docs/mkdocs/docs/integration/macports/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.15) +project(json_example) + +find_package(nlohmann_json CONFIG REQUIRED) + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/macports/example.cpp b/docs/mkdocs/docs/integration/macports/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/macports/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/meson/example.cpp b/docs/mkdocs/docs/integration/meson/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/meson/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/meson/meson.build b/docs/mkdocs/docs/integration/meson/meson.build new file mode 100644 index 00000000..ec6d2343 --- /dev/null +++ b/docs/mkdocs/docs/integration/meson/meson.build @@ -0,0 +1,12 @@ +project('json_example', 'cpp', + version: '1.0', + default_options: ['cpp_std=c++11'] +) + +dependency_json = dependency('nlohmann_json', required: true) + +executable('json_example', + sources: ['example.cpp'], + dependencies: [dependency_json], + install: true +) diff --git a/docs/mkdocs/docs/integration/nuget/nuget-package-content.png b/docs/mkdocs/docs/integration/nuget/nuget-package-content.png new file mode 100644 index 0000000000000000000000000000000000000000..cc975b98bc7bc8e77468e8ee888a972de772418a GIT binary patch literal 19422 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 J%Q~loCIDE*)9?TQ literal 0 HcmV?d00001 diff --git a/docs/mkdocs/docs/integration/nuget/nuget-project-changes.png b/docs/mkdocs/docs/integration/nuget/nuget-project-changes.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2a520a8f27bd5e84b03466cd1d79c329203286 GIT binary patch literal 30826 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 literal 0 HcmV?d00001 diff --git a/docs/mkdocs/docs/integration/nuget/nuget-search-package.png b/docs/mkdocs/docs/integration/nuget/nuget-search-package.png new file mode 100644 index 0000000000000000000000000000000000000000..da4c6e6dc6d955700c58e29bb8b758529957c19f GIT binary patch literal 96734 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 + + + + ``` + + 2. A `packages` folder which contains actual files in the packages (these are header and binary files required for + a successful build, plus a few metadata files). In case of this library for example, it contains `json.hpp`: + + ![](nuget/nuget-package-content.png) + + !!! note + + This directory should not be added to the project source code repository, as it will be restored before each + build by MSBuild/NuGet. If you go ahead and delete this folder, then build the project again, it will + magically re-appear! + + 3. Project MSBuild makefile (which for Visual C++ projects has a .vcxproj extension) will be updated to include + settings from the package. + + ![](nuget/nuget-project-makefile.png) + + The important bit for us here is line 170, which tells MSBuild to import settings from + `packages\nlohmann.json.3.5.0\build\native\nlohmann.json.targets` file. This is a file the package creator + created and added to the package (you can see it is one of the two files I created in this repository, the other + just contains package attributes like name and version number). What does it contain? + + For our header-only repository, the only setting we need is to add our include directory to the list of + `AdditionalIncludeDirectories`: + + ```xml + + + + + $(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories) + + + + ``` + + For libraries with binary files, we will need to add `.lib` files to linker inputs and add settings to copy + `.dll` and other redistributable files to output directory, if needed. + + There are other changes to the makefile as well: + + - Lines 165-167 add the `packages.config` as one of project files (so it is shown in Solution Explorer tree + view). It is added as None (no build action) and removing it wouldn’t affect build. + + - Lines 172-177 check to ensure the required packages are present. This will display a build error if package + directory is empty (for example when NuGet cannot restore packages because Internet connection is down). + Again, if you omit this section, the only change in build would be a more cryptic error message if build + fails. + + !!! note + + Changes to .vcxproj makefile should also be added to project source code repository. + + As you can see, the mechanism NuGet uses to modify project settings is through MSBuild makefiles, so using NuGet + with other build systems and compilers (like CMake) as a dependency manager is either impossible or more problematic + than useful. + +Please refer to [this extensive description](https://github.com/nlohmann/json/issues/1132#issuecomment-452250255) for +more information. ## Conda @@ -169,9 +570,67 @@ If you are using [MSYS2](http://www.msys2.org/), you can use the [mingw-w64-nloh ## MacPorts -If you are using [MacPorts](https://ports.macports.org), execute `sudo port install nlohmann-json` to install the [nlohmann-json](https://ports.macports.org/port/nlohmann-json/) package. +!!! abstract "Summary" -:material-update: The [package](https://ports.macports.org/port/nlohmann-json/) is updated automatically. + port: [**`nlohmann-json`**](https://ports.macports.org/port/nlohmann-json/) + + - :octicons-tag-24: Availalbe versions: current version + - :octicons-rocket-24: The port is updated with every release. + - :octicons-file-24: File issues at the [MacPorts issue tracker](https://trac.macports.org/newticket?port=nlohmann-json) + - :octicons-question-24: [MacPorts website](https://www.macports.org) + +If you are using [MacPorts](https://ports.macports.org), execute + +```shell +sudo port install nlohmann-json +``` + +to install the [nlohmann-json](https://ports.macports.org/port/nlohmann-json/) package. + +??? example "Example: Raw compilation" + + 1. Create the following file: + + ```cpp title="example.cpp" + --8<-- "integration/macports/example.cpp" + ``` + + 2. Install the package: + + ```sh + sudo port install nlohmann-json + ``` + + 3. Compile the code and pass the Homebrew prefix to the include path such that the library can be found: + + ```sh + c++ example.cpp -I/opt/local/include -std=c++11 -o example + ``` + +??? example "Example: CMake" + + 1. Create the following files: + + ```cpp title="example.cpp" + --8<-- "integration/homebrew/example.cpp" + ``` + + ```cmake title="CMakeLists.txt" + --8<-- "integration/homebrew/CMakeLists.txt" + ``` + + 2. Install the package: + + ```sh + sudo port install nlohmann-json + ``` + + 3. Compile the code: + + ```sh + cmake -S . -B build + cmake --build build + ``` ## build2 @@ -188,11 +647,44 @@ If you are using [`wsjcpp`](http://wsjcpp.org), you can use the command `wsjcpp ## CPM.cmake -If you are using [`CPM.cmake`](https://github.com/TheLartians/CPM.cmake), you can check this [`example`](https://github.com/TheLartians/CPM.cmake/tree/master/examples/json). After [adding CPM script](https://github.com/TheLartians/CPM.cmake#adding-cpm) to your project, implement the following snippet to your CMake: +!!! abstract "Summary" + + package: **`gh:nlohmann/json`** + + - :octicons-tag-24: Availalbe versions: current and previous versions + - :octicons-rocket-24: The package is updated with every release. + - :octicons-file-24: File issues at the [CPM.cmake issue tracker](https://github.com/cpm-cmake/CPM.cmake/issues) + - :octicons-question-24: [CPM.cmake website](https://github.com/cpm-cmake/CPM.cmake) + +If you are using [`CPM.cmake`](https://github.com/TheLartians/CPM.cmake), add the +[CPM.cmake script](https://github.com/TheLartians/CPM.cmake#adding-cpm) and the following snippet to your CMake project: ```cmake -CPMAddPackage( - NAME nlohmann_json - GITHUB_REPOSITORY nlohmann/json - VERSION 3.9.1) +CPMAddPackage("gh:nlohmann/json@3.11.3") ``` + +??? example + + 1. Create the following files: + + ```cpp title="example.cpp" + --8<-- "integration/cpm/example.cpp" + ``` + + ```cmake title="CMakeLists.txt" + --8<-- "integration/cpm/CMakeLists.txt" + ``` + + 2. Download CPM.cmake + + ```shell + mkdir -p cmake + wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake + ``` + + 3. Build + + ```shell + cmake -S . -B build + cmake --build build + ``` diff --git a/docs/mkdocs/docs/integration/spack/CMakeLists.txt b/docs/mkdocs/docs/integration/spack/CMakeLists.txt new file mode 100644 index 00000000..e3fda5b9 --- /dev/null +++ b/docs/mkdocs/docs/integration/spack/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.15) +project(json_example) + +find_package(nlohmann_json REQUIRED) + +add_executable(json_example example.cpp) +target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json) diff --git a/docs/mkdocs/docs/integration/spack/example.cpp b/docs/mkdocs/docs/integration/spack/example.cpp new file mode 100644 index 00000000..1a7ac4de --- /dev/null +++ b/docs/mkdocs/docs/integration/spack/example.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +using json = nlohmann::json; + +int main() +{ + std::cout << std::setw(4) << json::meta() << std::endl; +} diff --git a/docs/mkdocs/docs/integration/vcpkg/CMakeLists.txt b/docs/mkdocs/docs/integration/vcpkg/CMakeLists.txt index d31f4e83..12f4ae1f 100644 --- a/docs/mkdocs/docs/integration/vcpkg/CMakeLists.txt +++ b/docs/mkdocs/docs/integration/vcpkg/CMakeLists.txt @@ -1,5 +1,5 @@ +cmake_minimum_required(VERSION 3.15) project(json_example) -cmake_minimum_required(VERSION 2.8.12) find_package(nlohmann_json CONFIG REQUIRED) diff --git a/docs/mkdocs/docs/integration/vcpkg/example.cpp b/docs/mkdocs/docs/integration/vcpkg/example.cpp index e5a31be4..1a7ac4de 100644 --- a/docs/mkdocs/docs/integration/vcpkg/example.cpp +++ b/docs/mkdocs/docs/integration/vcpkg/example.cpp @@ -1,9 +1,10 @@ #include #include +#include using json = nlohmann::json; int main() { - std::cout << json::meta() << std::endl; + std::cout << std::setw(4) << json::meta() << std::endl; } diff --git a/docs/mkdocs/mkdocs.yml b/docs/mkdocs/mkdocs.yml index 5e66db59..7b094153 100644 --- a/docs/mkdocs/mkdocs.yml +++ b/docs/mkdocs/mkdocs.yml @@ -9,7 +9,7 @@ repo_url: https://github.com/nlohmann/json edit_uri: edit/develop/docs/mkdocs/docs # Copyright -copyright: Copyright © 2013 - 2023 Niels Lohmann +copyright: Copyright © 2013 - 2024 Niels Lohmann # Configuration theme: @@ -30,7 +30,8 @@ theme: toggle: icon: material/brightness-4 name: Switch to light mode - + icon: + repo: fontawesome/brands/github font: text: Roboto code: JetBrains Mono @@ -41,6 +42,8 @@ theme: - navigation.indexes - navigation.top - content.tabs.link + - content.action.edit + - content.action.view nav: - Home: @@ -51,6 +54,7 @@ nav: - home/exceptions.md - home/releases.md - home/design_goals.md + - home/customers.md - home/sponsors.md - Features: - features/arbitrary_types.md @@ -281,10 +285,18 @@ nav: - 'JSON_USE_GLOBAL_UDLS': api/macros/json_use_global_udls.md - 'JSON_USE_IMPLICIT_CONVERSIONS': api/macros/json_use_implicit_conversions.md - 'JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON': api/macros/json_use_legacy_discarded_value_comparison.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE': api/macros/nlohmann_define_derived_type.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT': api/macros/nlohmann_define_derived_type.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_derived_type.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE': api/macros/nlohmann_define_derived_type.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT': api/macros/nlohmann_define_derived_type.md + - 'NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_derived_type.md - 'NLOHMANN_DEFINE_TYPE_INTRUSIVE': api/macros/nlohmann_define_type_intrusive.md - 'NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT': api/macros/nlohmann_define_type_intrusive.md + - 'NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_type_intrusive.md - 'NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE': api/macros/nlohmann_define_type_non_intrusive.md - 'NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT': api/macros/nlohmann_define_type_non_intrusive.md + - 'NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_type_non_intrusive.md - 'NLOHMANN_JSON_NAMESPACE': api/macros/nlohmann_json_namespace.md - 'NLOHMANN_JSON_NAMESPACE_BEGIN': api/macros/nlohmann_json_namespace_begin.md - 'NLOHMANN_JSON_NAMESPACE_END': api/macros/nlohmann_json_namespace_begin.md @@ -299,8 +311,6 @@ extra: social: - icon: fontawesome/brands/github link: https://github.com/nlohmann - - icon: fontawesome/brands/twitter - link: https://twitter.com/nlohmann - icon: fontawesome/brands/linkedin link: https://www.linkedin.com/in/nielslohmann/ - icon: fontawesome/brands/xing @@ -332,7 +342,11 @@ markdown_extensions: - pymdownx.magiclink - pymdownx.mark #- pymdownx.smartsymbols - - pymdownx.superfences + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format - pymdownx.tasklist: custom_checkbox: true - pymdownx.tabbed: @@ -341,23 +355,21 @@ markdown_extensions: - pymdownx.snippets: base_path: docs check_paths: true - - plantuml_markdown: - format: svg plugins: - - search: - separator: '[\s\-\.]' - lang: en - - minify: - minify_html: true - - git-revision-date-localized - - redirects: - redirect_maps: - 'api/basic_json/operator_gtgt.md': api/operator_gtgt.md - 'api/basic_json/operator_ltlt.md': api/operator_ltlt.md - 'api/basic_json/operator_literal_json.md': api/operator_literal_json.md - 'api/basic_json/operator_literal_json_pointer.md': api/operator_literal_json_pointer.md - 'api/json_pointer/operator_string.md': api/json_pointer/operator_string_t.md + - search: + separator: '[\s\-\.]' + lang: en + - minify: + minify_html: true + - git-revision-date-localized + - redirects: + redirect_maps: + 'api/basic_json/operator_gtgt.md': api/operator_gtgt.md + 'api/basic_json/operator_ltlt.md': api/operator_ltlt.md + 'api/basic_json/operator_literal_json.md': api/operator_literal_json.md + 'api/basic_json/operator_literal_json_pointer.md': api/operator_literal_json_pointer.md + 'api/json_pointer/operator_string.md': api/json_pointer/operator_string_t.md extra_css: - css/custom.css diff --git a/docs/mkdocs/requirements.txt b/docs/mkdocs/requirements.txt index b397d545..45aa14ab 100644 --- a/docs/mkdocs/requirements.txt +++ b/docs/mkdocs/requirements.txt @@ -1,49 +1,6 @@ -Babel==2.13.1 -certifi==2023.7.22 -charset-normalizer==3.3.1 -click==8.1.7 -csscompressor==0.9.5 -future==0.18.3 -ghp-import==2.1.0 -gitdb==4.0.11 -GitPython==3.1.40 -htmlmin==0.1.12 -httplib2==0.22.0 -idna==3.4 -importlib-metadata==6.8.0 -Jinja2==3.1.2 -joblib==1.3.2 -jsmin==3.0.1 -livereload==2.6.3 -lunr==0.7.0.post1 -Markdown==3.5 -markdown-include==0.8.1 -MarkupSafe==2.1.3 -mergedeep==1.3.4 -mkdocs==1.5.3 -mkdocs-git-revision-date-localized-plugin==1.2.1 -mkdocs-material==9.4.7 -mkdocs-material-extensions==1.3 -mkdocs-minify-plugin==0.7.1 -mkdocs-redirects==1.2.1 -mkdocs-simple-hooks==0.1.5 -nltk==3.8.1 -packaging==23.2 -plantuml==0.3.0 -plantuml-markdown==3.9.2 -Pygments==2.16.1 -pymdown-extensions==10.3.1 -pyparsing==3.1.1 -python-dateutil==2.8.2 -pytz==2023.3.post1 -PyYAML==6.0.1 -pyyaml_env_tag==0.1 -regex==2023.10.3 -requests==2.31.0 -six==1.16.0 -smmap==5.0.1 -tornado==6.3.3 -tqdm==4.66.1 -urllib3==2.0.7 -watchdog==3.0.0 -zipp==3.17.0 +mkdocs==1.6.1 # documentation framework +mkdocs-git-revision-date-localized-plugin==1.3.0 # plugin "git-revision-date-localized" +mkdocs-material==9.5.49 # theme for mkdocs +mkdocs-material-extensions==1.3.1 # extensions +mkdocs-minify-plugin==0.8.0 # plugin "minify" +mkdocs-redirects==1.2.2 # plugin "redirects" diff --git a/include/nlohmann/adl_serializer.hpp b/include/nlohmann/adl_serializer.hpp index 56a606c0..a441ad4d 100644 --- a/include/nlohmann/adl_serializer.hpp +++ b/include/nlohmann/adl_serializer.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/byte_container_with_subtype.hpp b/include/nlohmann/byte_container_with_subtype.hpp index 91382cd6..08ac658c 100644 --- a/include/nlohmann/byte_container_with_subtype.hpp +++ b/include/nlohmann/byte_container_with_subtype.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/abi_macros.hpp b/include/nlohmann/detail/abi_macros.hpp index f48b9eb1..baa2762d 100644 --- a/include/nlohmann/detail/abi_macros.hpp +++ b/include/nlohmann/detail/abi_macros.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -26,6 +26,10 @@ #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -36,6 +40,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -47,14 +57,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp index aa2f0cbf..362383a9 100644 --- a/include/nlohmann/detail/conversions/from_json.hpp +++ b/include/nlohmann/detail/conversions/from_json.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -13,6 +13,9 @@ #include // forward_list #include // inserter, front_inserter, end #include // map +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -43,6 +46,24 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) n = nullptr; } +#ifdef JSON_HAS_CPP_17 +#ifndef JSON_USE_IMPLICIT_CONVERSIONS +template +void from_json(const BasicJsonType& j, std::optional& opt) +{ + if (j.is_null()) + { + opt = std::nullopt; + } + else + { + opt.emplace(j.template get()); + } +} + +#endif // JSON_USE_IMPLICIT_CONVERSIONS +#endif // JSON_HAS_CPP_17 + // overloads for basic_json template parameters template < typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic::value&& @@ -190,6 +211,54 @@ auto from_json(const BasicJsonType& j, T (&arr)[N]) // NOLINT(cppcoreguidelines } } +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + arr[i1][i2] = j.at(i1).at(i2).template get(); + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + arr[i1][i2][i3] = j.at(i1).at(i2).at(i3).template get(); + } + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3][N4]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + for (std::size_t i4 = 0; i4 < N4; ++i4) + { + arr[i1][i2][i3][i4] = j.at(i1).at(i2).at(i3).at(i4).template get(); + } + } + } + } +} + template inline void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) { @@ -275,7 +344,7 @@ void()) template < typename BasicJsonType, typename T, std::size_t... Idx > std::array from_json_inplace_array_impl(BasicJsonType&& j, - identity_tag> /*unused*/, index_sequence /*unused*/) + identity_tag> /*unused*/, index_sequence /*unused*/) { return { { std::forward(j).at(Idx).template get()... } }; } diff --git a/include/nlohmann/detail/conversions/to_chars.hpp b/include/nlohmann/detail/conversions/to_chars.hpp index e10741c9..b6514d12 100644 --- a/include/nlohmann/detail/conversions/to_chars.hpp +++ b/include/nlohmann/detail/conversions/to_chars.hpp @@ -4,7 +4,7 @@ // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2009 Florian Loitsch -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -239,10 +239,10 @@ boundaries compute_boundaries(FloatType value) // v- m- v m+ v+ const bool lower_boundary_is_closer = F == 0 && E > 1; - const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_plus = diyfp((2 * v.f) + 1, v.e - 1); const diyfp m_minus = lower_boundary_is_closer - ? diyfp(4 * v.f - 1, v.e - 2) // (B) - : diyfp(2 * v.f - 1, v.e - 1); // (A) + ? diyfp((4 * v.f) - 1, v.e - 2) // (B) + : diyfp((2 * v.f) - 1, v.e - 1); // (A) // Determine the normalized w+ = m+. const diyfp w_plus = diyfp::normalize(m_plus); @@ -472,7 +472,7 @@ inline cached_power get_cached_power_for_binary_exponent(int e) JSON_ASSERT(e >= -1500); JSON_ASSERT(e <= 1500); const int f = kAlpha - e - 1; - const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + const int k = ((f * 78913) / (1 << 18)) + static_cast(f > 0); const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; JSON_ASSERT(index >= 0); @@ -950,15 +950,15 @@ inline char* append_exponent(char* buf, int e) } else if (k < 100) { - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } else { - *buf++ = static_cast('0' + k / 100); + *buf++ = static_cast('0' + (k / 100)); k %= 100; - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } diff --git a/include/nlohmann/detail/conversions/to_json.hpp b/include/nlohmann/detail/conversions/to_json.hpp index e39b7797..ec20cd7d 100644 --- a/include/nlohmann/detail/conversions/to_json.hpp +++ b/include/nlohmann/detail/conversions/to_json.hpp @@ -3,11 +3,16 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once +#include // JSON_HAS_CPP_17 +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + #include // copy #include // begin, end #include // string @@ -18,7 +23,6 @@ #include // vector #include -#include #include #include #include @@ -260,6 +264,22 @@ struct external_constructor // to_json // ///////////// +#ifdef JSON_HAS_CPP_17 +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::optional& opt) +{ + if (opt.has_value()) + { + j = *opt; + } + else + { + j = nullptr; + } +} +#endif + template::value, int> = 0> inline void to_json(BasicJsonType& j, T b) noexcept @@ -320,7 +340,8 @@ template::type; - external_constructor::construct(j, static_cast(e)); + static constexpr value_t integral_value_t = std::is_unsigned::value ? value_t::number_unsigned : value_t::number_integer; + external_constructor::construct(j, static_cast(e)); } #endif // JSON_DISABLE_ENUM_SERIALIZATION diff --git a/include/nlohmann/detail/exceptions.hpp b/include/nlohmann/detail/exceptions.hpp index 5974d7be..1fabeb16 100644 --- a/include/nlohmann/detail/exceptions.hpp +++ b/include/nlohmann/detail/exceptions.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -25,6 +25,18 @@ #include #include +// With -Wweak-vtables, Clang will complain about the exception classes as they +// have no out-of-line virtual method definitions and their vtable will be +// emitted in every translation unit. This issue cannot be fixed with a +// header-only library as there is no implementation file to move these +// functions to. As a result, we suppress this warning here to avoid client +// code to stumble over this. See https://github.com/nlohmann/json/issues/4087 +// for a discussion. +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wweak-vtables" +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -255,3 +267,7 @@ class other_error : public exception } // namespace detail NLOHMANN_JSON_NAMESPACE_END + +#if defined(__clang__) + #pragma clang diagnostic pop +#endif diff --git a/include/nlohmann/detail/hash.hpp b/include/nlohmann/detail/hash.hpp index 4464e8e6..cfe4ccba 100644 --- a/include/nlohmann/detail/hash.hpp +++ b/include/nlohmann/detail/hash.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/input/binary_reader.hpp b/include/nlohmann/detail/input/binary_reader.hpp index a6e100e7..75babd55 100644 --- a/include/nlohmann/detail/input/binary_reader.hpp +++ b/include/nlohmann/detail/input/binary_reader.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -20,6 +20,9 @@ #include // char_traits, string #include // make_pair, move #include // vector +#ifdef __cpp_lib_byteswap + #include //byteswap +#endif #include #include @@ -62,7 +65,7 @@ static inline bool little_endianness(int num = 1) noexcept /*! @brief deserialization of CBOR, MessagePack, and UBJSON values */ -template> +template> class binary_reader { using number_integer_t = typename BasicJsonType::number_integer_t; @@ -169,7 +172,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -391,7 +394,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -651,7 +654,7 @@ class binary_reader } case 0x9F: // array (indefinite length) - return get_cbor_array(static_cast(-1), tag_handler); + return get_cbor_array(detail::unknown_size(), tag_handler); // map (0x00..0x17 pairs of data items follow) case 0xA0: @@ -705,7 +708,7 @@ class binary_reader } case 0xBF: // map (indefinite length) - return get_cbor_object(static_cast(-1), tag_handler); + return get_cbor_object(detail::unknown_size(), tag_handler); case 0xC6: // tagged item case 0xC7: @@ -1093,7 +1096,7 @@ class binary_reader } /*! - @param[in] len the length of the array or static_cast(-1) for an + @param[in] len the length of the array or detail::unknown_size() for an array of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether array creation completed @@ -1106,7 +1109,7 @@ class binary_reader return false; } - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -1131,7 +1134,7 @@ class binary_reader } /*! - @param[in] len the length of the object or static_cast(-1) for an + @param[in] len the length of the object or detail::unknown_size() for an object of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether object creation completed @@ -1147,7 +1150,7 @@ class binary_reader if (len != 0) { string_t key; - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -2565,7 +2568,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -2643,7 +2646,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -2754,6 +2757,29 @@ class binary_reader return current = ia.get_character(); } + /*! + @brief get_to read into a primitive type + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns false instead + + @return bool, whether the read was successful + */ + template + bool get_to(T& dest, const input_format_t format, const char* context) + { + auto new_chars_read = ia.get_elements(&dest); + chars_read += new_chars_read; + if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T))) + { + // in case of failure, advance position by 1 to report failing location + ++chars_read; + sax->parse_error(chars_read, "", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr)); + return false; + } + return true; + } + /*! @return character read from the input after ignoring all 'N' entries */ @@ -2768,6 +2794,28 @@ class binary_reader return current; } + template + static void byte_swap(NumberType& number) + { + constexpr std::size_t sz = sizeof(number); +#ifdef __cpp_lib_byteswap + if constexpr (sz == 1) + { + return; + } + if constexpr(std::is_integral_v) + { + number = std::byteswap(number); + return; + } +#endif + auto* ptr = reinterpret_cast(&number); + for (std::size_t i = 0; i < sz / 2; ++i) + { + std::swap(ptr[i], ptr[sz - i - 1]); + } + } + /* @brief read a number from the input @@ -2786,29 +2834,16 @@ class binary_reader template bool get_number(const input_format_t format, NumberType& result) { - // step 1: read input into array with system's byte order - std::array vec{}; - for (std::size_t i = 0; i < sizeof(NumberType); ++i) + // read in the original format + + if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number"))) { - get(); - if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) - { - return false; - } - - // reverse byte order prior to conversion if necessary - if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) - { - vec[sizeof(NumberType) - i - 1] = static_cast(current); - } - else - { - vec[i] = static_cast(current); // LCOV_EXCL_LINE - } + return false; + } + if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) + { + byte_swap(result); } - - // step 2: convert array into number of type T and return - std::memcpy(&result, vec.data(), sizeof(NumberType)); return true; } @@ -2947,7 +2982,7 @@ class binary_reader } private: - static JSON_INLINE_VARIABLE constexpr std::size_t npos = static_cast(-1); + static JSON_INLINE_VARIABLE constexpr std::size_t npos = detail::unknown_size(); /// input adapter InputAdapterType ia; diff --git a/include/nlohmann/detail/input/input_adapters.hpp b/include/nlohmann/detail/input/input_adapters.hpp index 33fca3e4..1fb132d3 100644 --- a/include/nlohmann/detail/input/input_adapters.hpp +++ b/include/nlohmann/detail/input/input_adapters.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -23,6 +23,7 @@ #include // istream #endif // JSON_NO_IO +#include #include #include #include @@ -67,6 +68,13 @@ class file_input_adapter return std::fgetc(m_file); } + // returns the number of characters successfully read + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + return fread(dest, 1, sizeof(T) * count, m_file); + } + private: /// the file pointer to read from std::FILE* m_file; @@ -126,6 +134,17 @@ class input_stream_adapter return res; } + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto res = static_cast(sb->sgetn(reinterpret_cast(dest), static_cast(count * sizeof(T)))); + if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T))) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + private: /// the associated input stream std::istream* is = nullptr; @@ -157,6 +176,26 @@ class iterator_input_adapter return char_traits::eof(); } + // for general iterators, we cannot really do something better than falling back to processing the range one-by-one + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto* ptr = reinterpret_cast(dest); + for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index) + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + ptr[read_index] = static_cast(*current); + std::advance(current, 1); + } + else + { + return read_index; + } + } + return count * sizeof(T); + } + private: IteratorType current; IteratorType end; @@ -320,6 +359,13 @@ class wide_string_input_adapter return utf8_bytes[utf8_bytes_index++]; } + // parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here + template + std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1) + { + JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr)); + } + private: BaseInputAdapter base_adapter; @@ -416,10 +462,17 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory::create(container); } +// specialization for std::string +using string_input_adapter_type = decltype(input_adapter(std::declval())); + #ifndef JSON_NO_IO // Special cases with fast paths inline file_input_adapter input_adapter(std::FILE* file) { + if (file == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } return file_input_adapter(file); } @@ -446,9 +499,13 @@ template < typename CharT, int >::type = 0 > contiguous_bytes_input_adapter input_adapter(CharT b) { + if (b == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } auto length = std::strlen(reinterpret_cast(b)); const auto* ptr = reinterpret_cast(b); - return input_adapter(ptr, ptr + length); + return input_adapter(ptr, ptr + length); // cppcheck-suppress[nullPointerArithmeticRedundantCheck] } template diff --git a/include/nlohmann/detail/input/json_sax.hpp b/include/nlohmann/detail/input/json_sax.hpp index c772521c..2386d8ef 100644 --- a/include/nlohmann/detail/input/json_sax.hpp +++ b/include/nlohmann/detail/input/json_sax.hpp @@ -3,20 +3,21 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include #include // string +#include // enable_if_t #include // move #include // vector #include +#include #include #include - NLOHMANN_JSON_NAMESPACE_BEGIN /*! @@ -144,6 +145,11 @@ struct json_sax namespace detail { +constexpr std::size_t unknown_size() +{ + return (std::numeric_limits::max)(); +} + /*! @brief SAX implementation to create a JSON value from SAX events @@ -157,7 +163,7 @@ constructor contains the parsed value. @tparam BasicJsonType the JSON type */ -template +template class json_sax_dom_parser { public: @@ -166,14 +172,15 @@ class json_sax_dom_parser using number_float_t = typename BasicJsonType::number_float_t; using string_t = typename BasicJsonType::string_t; using binary_t = typename BasicJsonType::binary_t; + using lexer_t = lexer; /*! @param[in,out] r reference to a JSON value that is manipulated while parsing @param[in] allow_exceptions_ whether parse errors yield exceptions */ - explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) - : root(r), allow_exceptions(allow_exceptions_) + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true, lexer_t* lexer_ = nullptr) + : root(r), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) {} // make class move-only @@ -229,7 +236,18 @@ class json_sax_dom_parser { ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) { JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); } @@ -252,6 +270,14 @@ class json_sax_dom_parser JSON_ASSERT(!ref_stack.empty()); JSON_ASSERT(ref_stack.back()->is_object()); +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); ref_stack.pop_back(); return true; @@ -261,7 +287,16 @@ class json_sax_dom_parser { ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) { JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); } @@ -274,6 +309,14 @@ class json_sax_dom_parser JSON_ASSERT(!ref_stack.empty()); JSON_ASSERT(ref_stack.back()->is_array()); +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); ref_stack.pop_back(); return true; @@ -298,6 +341,75 @@ class json_sax_dom_parser } private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + // As we handle the start and end positions for values created during parsing, + // we do not expect the following value type to be called. Regardless, set the positions + // in case this is created manually or through a different constructor. Exclude from lcov + // since the exact condition of this switch is esoteric. + // LCOV_EXCL_START + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + // LCOV_EXCL_STOP + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + /*! @invariant If the ref stack is empty, then the passed value will be the new root. @@ -311,6 +423,11 @@ class json_sax_dom_parser if (ref_stack.empty()) { root = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(root); +#endif + return &root; } @@ -319,12 +436,22 @@ class json_sax_dom_parser if (ref_stack.back()->is_array()) { ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(ref_stack.back()->m_data.m_value.array->back()); +#endif + return &(ref_stack.back()->m_data.m_value.array->back()); } JSON_ASSERT(ref_stack.back()->is_object()); JSON_ASSERT(object_element); *object_element = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(*object_element); +#endif + return object_element; } @@ -338,9 +465,11 @@ class json_sax_dom_parser bool errored = false; /// whether to throw exceptions in case of errors const bool allow_exceptions = true; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; }; -template +template class json_sax_dom_callback_parser { public: @@ -351,11 +480,13 @@ class json_sax_dom_callback_parser using binary_t = typename BasicJsonType::binary_t; using parser_callback_t = typename BasicJsonType::parser_callback_t; using parse_event_t = typename BasicJsonType::parse_event_t; + using lexer_t = lexer; json_sax_dom_callback_parser(BasicJsonType& r, - const parser_callback_t cb, - const bool allow_exceptions_ = true) - : root(r), callback(cb), allow_exceptions(allow_exceptions_) + parser_callback_t cb, + const bool allow_exceptions_ = true, + lexer_t* lexer_ = nullptr) + : root(r), callback(std::move(cb)), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) { keep_stack.push_back(true); } @@ -418,12 +549,26 @@ class json_sax_dom_callback_parser auto val = handle_value(BasicJsonType::value_t::object, true); ref_stack.push_back(val.second); - // check object limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) + if (ref_stack.back()) { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check object limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + } return true; } @@ -452,9 +597,23 @@ class json_sax_dom_callback_parser { // discard object *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded object. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif } else { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); } } @@ -488,10 +647,25 @@ class json_sax_dom_callback_parser auto val = handle_value(BasicJsonType::value_t::array, true); ref_stack.push_back(val.second); - // check array limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) + if (ref_stack.back()) { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the array, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check array limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } } return true; @@ -506,12 +680,26 @@ class json_sax_dom_callback_parser keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); if (keep) { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); } else { // discard array *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded array. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif } } @@ -548,6 +736,71 @@ class json_sax_dom_callback_parser } private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + /*! @param[in] v value to add to the JSON value we build during parsing @param[in] skip_callback whether we should skip calling the callback @@ -578,6 +831,10 @@ class json_sax_dom_callback_parser // create value auto value = BasicJsonType(std::forward(v)); +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(value); +#endif + // check callback const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); @@ -632,9 +889,9 @@ class json_sax_dom_callback_parser /// stack to model hierarchy of values std::vector ref_stack {}; /// stack to manage which values to keep - std::vector keep_stack {}; + std::vector keep_stack {}; // NOLINT(readability-redundant-member-init) /// stack to manage which object keys to keep - std::vector key_keep_stack {}; + std::vector key_keep_stack {}; // NOLINT(readability-redundant-member-init) /// helper to hold the reference for the next object element BasicJsonType* object_element = nullptr; /// whether a syntax error occurred @@ -645,6 +902,8 @@ class json_sax_dom_callback_parser const bool allow_exceptions = true; /// a discarded value for the callback BasicJsonType discarded = BasicJsonType::value_t::discarded; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; }; template @@ -692,7 +951,7 @@ class json_sax_acceptor return true; } - bool start_object(std::size_t /*unused*/ = static_cast(-1)) + bool start_object(std::size_t /*unused*/ = detail::unknown_size()) { return true; } @@ -707,7 +966,7 @@ class json_sax_acceptor return true; } - bool start_array(std::size_t /*unused*/ = static_cast(-1)) + bool start_array(std::size_t /*unused*/ = detail::unknown_size()) { return true; } diff --git a/include/nlohmann/detail/input/lexer.hpp b/include/nlohmann/detail/input/lexer.hpp index 4b3bf77d..6696b5a8 100644 --- a/include/nlohmann/detail/input/lexer.hpp +++ b/include/nlohmann/detail/input/lexer.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -967,7 +967,7 @@ class lexer : public lexer_base locale's decimal point is used instead of `.` to work with the locale-dependent converters. */ - token_type scan_number() // lgtm [cpp/use-of-goto] + token_type scan_number() // lgtm [cpp/use-of-goto] `goto` is used in this function to implement the number-parsing state machine described above. By design, any finite input will eventually reach the "done" state or return token_type::parse_error. In each intermediate state, 1 byte of the input is appended to the token_buffer vector, and only the already initialized variables token_buffer, number_type, and error_message are manipulated. { // reset token_buffer to store the number's bytes reset(); @@ -1049,6 +1049,7 @@ scan_number_zero: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -1085,6 +1086,7 @@ scan_number_any1: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -1256,7 +1258,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_unsigned = static_cast(x); if (value_unsigned == x) @@ -1272,7 +1274,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_integer = static_cast(x); if (value_integer == x) @@ -1322,6 +1324,7 @@ scan_number_done: { token_buffer.clear(); token_string.clear(); + decimal_point_position = std::string::npos; token_string.push_back(char_traits::to_char_type(current)); } @@ -1430,6 +1433,11 @@ scan_number_done: /// return current string value (implicitly resets the token; useful only once) string_t& get_string() { + // translate decimal points from locale back to '.' (#4084) + if (decimal_point_char != '.' && decimal_point_position != std::string::npos) + { + token_buffer[decimal_point_position] = '.'; + } return token_buffer; } @@ -1627,6 +1635,8 @@ scan_number_done: /// the decimal point const char_int_type decimal_point_char = '.'; + /// the position of the decimal point in the input + std::size_t decimal_point_position = std::string::npos; }; } // namespace detail diff --git a/include/nlohmann/detail/input/parser.hpp b/include/nlohmann/detail/input/parser.hpp index bdf85ba2..c856d116 100644 --- a/include/nlohmann/detail/input/parser.hpp +++ b/include/nlohmann/detail/input/parser.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -69,10 +69,10 @@ class parser public: /// a parser reading from an input adapter explicit parser(InputAdapterType&& adapter, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions_ = true, const bool skip_comments = false) - : callback(cb) + : callback(std::move(cb)) , m_lexer(std::move(adapter), skip_comments) , allow_exceptions(allow_exceptions_) { @@ -94,7 +94,7 @@ class parser { if (callback) { - json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -122,7 +122,7 @@ class parser } else { - json_sax_dom_parser sdp(result, allow_exceptions); + json_sax_dom_parser sdp(result, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -194,7 +194,7 @@ class parser { case token_type::begin_object: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -239,7 +239,7 @@ class parser case token_type::begin_array: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } diff --git a/include/nlohmann/detail/input/position_t.hpp b/include/nlohmann/detail/input/position_t.hpp index 8ac7c78c..42a57df2 100644 --- a/include/nlohmann/detail/input/position_t.hpp +++ b/include/nlohmann/detail/input/position_t.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/iterators/internal_iterator.hpp b/include/nlohmann/detail/iterators/internal_iterator.hpp index 2991ee69..00f67fe9 100644 --- a/include/nlohmann/detail/iterators/internal_iterator.hpp +++ b/include/nlohmann/detail/iterators/internal_iterator.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/iterators/iter_impl.hpp b/include/nlohmann/detail/iterators/iter_impl.hpp index 44470913..b7c72119 100644 --- a/include/nlohmann/detail/iterators/iter_impl.hpp +++ b/include/nlohmann/detail/iterators/iter_impl.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -463,7 +463,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator==(const IterImpl& other) const @@ -474,7 +474,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + return true; + } switch (m_object->m_data.m_type) { @@ -499,7 +503,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator!=(const IterImpl& other) const @@ -509,7 +513,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<(const iter_impl& other) const { @@ -519,7 +523,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + // the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false + return false; + } switch (m_object->m_data.m_type) { @@ -544,7 +553,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<=(const iter_impl& other) const { @@ -553,7 +562,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator>(const iter_impl& other) const { @@ -562,7 +571,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized. */ bool operator>=(const iter_impl& other) const { diff --git a/include/nlohmann/detail/iterators/iteration_proxy.hpp b/include/nlohmann/detail/iterators/iteration_proxy.hpp index 76293de2..227c8ea5 100644 --- a/include/nlohmann/detail/iterators/iteration_proxy.hpp +++ b/include/nlohmann/detail/iterators/iteration_proxy.hpp @@ -3,14 +3,13 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include // size_t -#include // input_iterator_tag -#include // string, to_string +#include // forward_iterator_tag #include // tuple_size, get, tuple_element #include // move @@ -20,19 +19,13 @@ #include #include +#include #include NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { -template -void int_to_string( string_type& target, std::size_t value ) -{ - // For ADL - using std::to_string; - target = to_string(value); -} template class iteration_proxy_value { public: @@ -40,7 +33,7 @@ template class iteration_proxy_value using value_type = iteration_proxy_value; using pointer = value_type *; using reference = value_type &; - using iterator_category = std::input_iterator_tag; + using iterator_category = std::forward_iterator_tag; using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; private: @@ -220,7 +213,7 @@ namespace std #endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> // NOLINT(cert-dcl58-cpp) - : public std::integral_constant {}; + : public std::integral_constant {}; template class tuple_element> // NOLINT(cert-dcl58-cpp) diff --git a/include/nlohmann/detail/iterators/iterator_traits.hpp b/include/nlohmann/detail/iterators/iterator_traits.hpp index 84cc27a8..2863c421 100644 --- a/include/nlohmann/detail/iterators/iterator_traits.hpp +++ b/include/nlohmann/detail/iterators/iterator_traits.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -43,7 +43,7 @@ struct iterator_traits template struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> - : iterator_types + : iterator_types { }; diff --git a/include/nlohmann/detail/iterators/json_reverse_iterator.hpp b/include/nlohmann/detail/iterators/json_reverse_iterator.hpp index 006d5499..c3ac11da 100644 --- a/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +++ b/include/nlohmann/detail/iterators/json_reverse_iterator.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/iterators/primitive_iterator.hpp b/include/nlohmann/detail/iterators/primitive_iterator.hpp index 0b6e8499..bb4a4cb0 100644 --- a/include/nlohmann/detail/iterators/primitive_iterator.hpp +++ b/include/nlohmann/detail/iterators/primitive_iterator.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/json_custom_base_class.hpp b/include/nlohmann/detail/json_custom_base_class.hpp index d1e29162..d526e629 100644 --- a/include/nlohmann/detail/json_custom_base_class.hpp +++ b/include/nlohmann/detail/json_custom_base_class.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/json_pointer.hpp b/include/nlohmann/detail/json_pointer.hpp index 4fdcd9ad..28588127 100644 --- a/include/nlohmann/detail/json_pointer.hpp +++ b/include/nlohmann/detail/json_pointer.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/json_ref.hpp b/include/nlohmann/detail/json_ref.hpp index b8bb6a76..2cd58e71 100644 --- a/include/nlohmann/detail/json_ref.hpp +++ b/include/nlohmann/detail/json_ref.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/macro_scope.hpp b/include/nlohmann/detail/macro_scope.hpp index 97127a64..987c8a2c 100644 --- a/include/nlohmann/detail/macro_scope.hpp +++ b/include/nlohmann/detail/macro_scope.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -216,7 +216,9 @@ template \ inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [e](const std::pair& ej_pair) -> bool \ @@ -228,7 +230,9 @@ template \ inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [&j](const std::pair& ej_pair) -> bool \ @@ -391,7 +395,7 @@ #define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; #define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); -#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; /*! @brief macro @@ -402,10 +406,20 @@ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.x +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } @@ -418,13 +432,55 @@ inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } -#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } - +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +*/ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + // inspired from https://stackoverflow.com/a/26745591 // allows to call any std function as if (e.g. with begin): // using std::begin; begin(x); diff --git a/include/nlohmann/detail/macro_unscope.hpp b/include/nlohmann/detail/macro_unscope.hpp index c6620d1e..256df809 100644 --- a/include/nlohmann/detail/macro_unscope.hpp +++ b/include/nlohmann/detail/macro_unscope.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/call_std/begin.hpp b/include/nlohmann/detail/meta/call_std/begin.hpp index 364cc89d..ee5b1abd 100644 --- a/include/nlohmann/detail/meta/call_std/begin.hpp +++ b/include/nlohmann/detail/meta/call_std/begin.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/call_std/end.hpp b/include/nlohmann/detail/meta/call_std/end.hpp index 463f0706..45edb2f3 100644 --- a/include/nlohmann/detail/meta/call_std/end.hpp +++ b/include/nlohmann/detail/meta/call_std/end.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/cpp_future.hpp b/include/nlohmann/detail/meta/cpp_future.hpp index 412b5aa7..78644aa5 100644 --- a/include/nlohmann/detail/meta/cpp_future.hpp +++ b/include/nlohmann/detail/meta/cpp_future.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-FileCopyrightText: 2018 The Abseil Authors // SPDX-License-Identifier: MIT @@ -162,7 +162,7 @@ struct static_const #endif template -inline constexpr std::array make_array(Args&& ... args) +constexpr std::array make_array(Args&& ... args) { return std::array {{static_cast(std::forward(args))...}}; } diff --git a/include/nlohmann/detail/meta/detected.hpp b/include/nlohmann/detail/meta/detected.hpp index 1db9bf9c..13422fd3 100644 --- a/include/nlohmann/detail/meta/detected.hpp +++ b/include/nlohmann/detail/meta/detected.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/identity_tag.hpp b/include/nlohmann/detail/meta/identity_tag.hpp index 269deffb..d6b6059d 100644 --- a/include/nlohmann/detail/meta/identity_tag.hpp +++ b/include/nlohmann/detail/meta/identity_tag.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/is_sax.hpp b/include/nlohmann/detail/meta/is_sax.hpp index 4e02bc14..e36257a3 100644 --- a/include/nlohmann/detail/meta/is_sax.hpp +++ b/include/nlohmann/detail/meta/is_sax.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/meta/std_fs.hpp b/include/nlohmann/detail/meta/std_fs.hpp index fd180396..70c0ac98 100644 --- a/include/nlohmann/detail/meta/std_fs.hpp +++ b/include/nlohmann/detail/meta/std_fs.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -19,7 +19,7 @@ namespace std_fs = std::experimental::filesystem; } // namespace detail NLOHMANN_JSON_NAMESPACE_END #elif JSON_HAS_FILESYSTEM -#include +#include // NOLINT(build/c++17) NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp index e1b000dc..8bae7609 100644 --- a/include/nlohmann/detail/meta/type_traits.hpp +++ b/include/nlohmann/detail/meta/type_traits.hpp @@ -3,16 +3,16 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include // numeric_limits +#include // char_traits +#include // tuple #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval -#include // tuple -#include // char_traits #include #include @@ -211,7 +211,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -235,7 +235,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -261,19 +261,19 @@ struct is_default_constructible : std::is_default_constructible {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_constructible : std::is_constructible {}; @@ -471,8 +471,8 @@ is_detected::value&& // special case for types like std::filesystem::path whose iterator's value_type are themselves // c.f. https://github.com/nlohmann/json/pull/3073 !std::is_same>::value&& - is_complete_type < - detected_t>::value >> +is_complete_type < +detected_t>::value >> { using value_type = range_value_t; @@ -595,12 +595,12 @@ using is_usable_as_key_type = typename std::conditional < template> using is_usable_as_basic_json_key_type = typename std::conditional < - is_usable_as_key_type::value - && !is_json_iterator_of::value, - std::true_type, - std::false_type >::type; + is_usable_as_key_type::value + && !is_json_iterator_of::value, + std::true_type, + std::false_type >::type; template using detect_erase_with_key_type = decltype(std::declval().erase(std::declval())); @@ -734,7 +734,7 @@ struct value_in_range_of_impl1 }; template -inline constexpr bool value_in_range_of(T val) +constexpr bool value_in_range_of(T val) { return value_in_range_of_impl1::test(val); } @@ -750,7 +750,7 @@ namespace impl { template -inline constexpr bool is_c_string() +constexpr bool is_c_string() { using TUnExt = typename std::remove_extent::type; using TUnCVExt = typename std::remove_cv::type; @@ -778,7 +778,7 @@ namespace impl { template -inline constexpr bool is_transparent() +constexpr bool is_transparent() { return is_detected::value; } diff --git a/include/nlohmann/detail/meta/void_t.hpp b/include/nlohmann/detail/meta/void_t.hpp index 99615c7c..59b97a29 100644 --- a/include/nlohmann/detail/meta/void_t.hpp +++ b/include/nlohmann/detail/meta/void_t.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/output/binary_writer.hpp b/include/nlohmann/detail/output/binary_writer.hpp index f475d57b..70dd752e 100644 --- a/include/nlohmann/detail/output/binary_writer.hpp +++ b/include/nlohmann/detail/output/binary_writer.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -612,7 +612,7 @@ class binary_writer case value_t::binary: { // step 0: determine if the binary type has a set subtype to - // determine whether or not to use the ext or fixext types + // determine whether to use the ext or fixext types const bool use_ext = j.m_data.m_value.binary->has_subtype(); // step 1: write control byte and the byte string length diff --git a/include/nlohmann/detail/output/output_adapters.hpp b/include/nlohmann/detail/output/output_adapters.hpp index 626f7c0c..72cd7d36 100644 --- a/include/nlohmann/detail/output/output_adapters.hpp +++ b/include/nlohmann/detail/output/output_adapters.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/output/serializer.hpp b/include/nlohmann/detail/output/serializer.hpp index ed20b0d9..b42a3104 100644 --- a/include/nlohmann/detail/output/serializer.hpp +++ b/include/nlohmann/detail/output/serializer.hpp @@ -3,8 +3,8 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -643,7 +643,7 @@ class serializer @param[in] x unsigned integer number to count its digits @return number of decimal digits */ - inline unsigned int count_digits(number_unsigned_t x) noexcept + unsigned int count_digits(number_unsigned_t x) noexcept { unsigned int n_digits = 1; for (;;) @@ -926,7 +926,7 @@ class serializer ? (byte & 0x3fu) | (codep << 6u) : (0xFFu >> type) & (byte); - const std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + const std::size_t index = 256u + (static_cast(state) * 16u) + static_cast(type); JSON_ASSERT(index < utf8d.size()); state = utf8d[index]; return state; @@ -952,7 +952,7 @@ class serializer * absolute values of INT_MIN and INT_MAX are usually not the same. See * #1708 for details. */ - inline number_unsigned_t remove_sign(number_integer_t x) noexcept + number_unsigned_t remove_sign(number_integer_t x) noexcept { JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); // NOLINT(misc-redundant-expression) return static_cast(-(x + 1)) + 1; diff --git a/include/nlohmann/detail/string_concat.hpp b/include/nlohmann/detail/string_concat.hpp index f49e8d21..b086ebc7 100644 --- a/include/nlohmann/detail/string_concat.hpp +++ b/include/nlohmann/detail/string_concat.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/string_escape.hpp b/include/nlohmann/detail/string_escape.hpp index 7f1b5c56..dadab25b 100644 --- a/include/nlohmann/detail/string_escape.hpp +++ b/include/nlohmann/detail/string_escape.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/detail/string_utils.hpp b/include/nlohmann/detail/string_utils.hpp new file mode 100644 index 00000000..0ac28c65 --- /dev/null +++ b/include/nlohmann/detail/string_utils.hpp @@ -0,0 +1,37 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-License-Identifier: MIT + +#pragma once + +#include // size_t +#include // string, to_string + +#include + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +void int_to_string(StringType& target, std::size_t value) +{ + // For ADL + using std::to_string; + target = to_string(value); +} + +template +StringType to_string(std::size_t value) +{ + StringType result; + int_to_string(result, value); + return result; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END diff --git a/include/nlohmann/detail/value_t.hpp b/include/nlohmann/detail/value_t.hpp index 07688fe8..9fdbfe8e 100644 --- a/include/nlohmann/detail/value_t.hpp +++ b/include/nlohmann/detail/value_t.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/include/nlohmann/json.hpp b/include/nlohmann/json.hpp index 95d6bf1d..9b3b5950 100644 --- a/include/nlohmann/json.hpp +++ b/include/nlohmann/json.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /****************************************************************************\ @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -114,9 +115,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec friend class ::nlohmann::detail::binary_writer; template friend class ::nlohmann::detail::binary_reader; - template + template friend class ::nlohmann::detail::json_sax_dom_parser; - template + template friend class ::nlohmann::detail::json_sax_dom_callback_parser; friend class ::nlohmann::detail::exception; @@ -137,7 +138,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ) { return ::nlohmann::detail::parser(std::move(adapter), - std::move(cb), allow_exceptions, ignore_comments); + std::move(cb), allow_exceptions, ignore_comments); } private: @@ -750,10 +751,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return it; } - reference set_parent(reference j, std::size_t old_capacity = static_cast(-1)) + reference set_parent(reference j, std::size_t old_capacity = detail::unknown_size()) { #if JSON_DIAGNOSTICS - if (old_capacity != static_cast(-1)) + if (old_capacity != detail::unknown_size()) { // see https://github.com/nlohmann/json/issues/2838 JSON_ASSERT(type() == value_t::array); @@ -847,6 +848,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < detail::is_basic_json::value&& !std::is_same::value, int > = 0 > basic_json(const BasicJsonType& val) +#if JSON_DIAGNOSTIC_POSITIONS + : start_position(val.start_pos()), + end_position(val.end_pos()) +#endif { using other_boolean_t = typename BasicJsonType::boolean_t; using other_number_float_t = typename BasicJsonType::number_float_t; @@ -893,6 +898,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE } JSON_ASSERT(m_data.m_type == val.type()); + set_parents(); assert_invariant(); } @@ -1029,7 +1035,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class InputIT, typename std::enable_if < std::is_same::value || std::is_same::value, int >::type = 0 > - basic_json(InputIT first, InputIT last) + basic_json(InputIT first, InputIT last) // NOLINT(performance-unnecessary-value-param) { JSON_ASSERT(first.m_object != nullptr); JSON_ASSERT(last.m_object != nullptr); @@ -1144,6 +1150,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const basic_json& other) : json_base_class_t(other) +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) + , end_position(other.end_position) +#endif { m_data.m_type = other.m_data.m_type; // check of passed value is valid @@ -1213,15 +1223,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(basic_json&& other) noexcept : json_base_class_t(std::forward(other)), - m_data(std::move(other.m_data)) + m_data(std::move(other.m_data)) // cppcheck-suppress[accessForwarded] TODO check +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) // cppcheck-suppress[accessForwarded] TODO check + , end_position(other.end_position) // cppcheck-suppress[accessForwarded] TODO check +#endif { // check that passed value is valid - other.assert_invariant(false); + other.assert_invariant(false); // cppcheck-suppress[accessForwarded] // invalidate payload other.m_data.m_type = value_t::null; other.m_data.m_value = {}; +#if JSON_DIAGNOSTIC_POSITIONS + other.start_position = std::string::npos; + other.end_position = std::string::npos; +#endif + set_parents(); assert_invariant(); } @@ -1242,6 +1261,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using std::swap; swap(m_data.m_type, other.m_data.m_type); swap(m_data.m_value, other.m_data.m_value); + +#if JSON_DIAGNOSTIC_POSITIONS + swap(start_position, other.start_position); + swap(end_position, other.end_position); +#endif + json_base_class_t::operator=(std::move(other)); set_parents(); @@ -1463,13 +1488,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) @@ -1948,7 +1973,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -1971,7 +1996,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -2116,7 +2141,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief access specified object element /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/ - reference operator[](typename object_t::key_type key) + reference operator[](typename object_t::key_type key) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -2426,7 +2451,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType pos) + IteratorType erase(IteratorType pos) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) @@ -2496,7 +2521,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType first, IteratorType last) + IteratorType erase(IteratorType first, IteratorType last) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) @@ -3263,7 +3288,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @note: This uses std::distance to support GCC 4.8, /// see https://github.com/nlohmann/json/pull/1257 template - iterator insert_iterator(const_iterator pos, Args&& ... args) + iterator insert_iterator(const_iterator pos, Args&& ... args) // NOLINT(performance-unnecessary-value-param) { iterator result(this); JSON_ASSERT(m_data.m_value.array != nullptr); @@ -3282,7 +3307,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const basic_json& val) + iterator insert(const_iterator pos, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -3302,14 +3327,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, basic_json&& val) + iterator insert(const_iterator pos, basic_json&& val) // NOLINT(performance-unnecessary-value-param) { return insert(pos, val); } /// @brief inserts copies of element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -3329,7 +3354,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const_iterator first, const_iterator last) + iterator insert(const_iterator pos, const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -3360,7 +3385,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts elements from initializer list into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, initializer_list_t ilist) + iterator insert(const_iterator pos, initializer_list_t ilist) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -3380,7 +3405,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into object /// @sa https://json.nlohmann.me/api/basic_json/insert/ - void insert(const_iterator first, const_iterator last) + void insert(const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for objects if (JSON_HEDLEY_UNLIKELY(!is_object())) @@ -3401,6 +3426,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + set_parents(); } /// @brief updates a JSON object from another object, overwriting existing keys @@ -3412,7 +3438,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief updates a JSON object from another object, overwriting existing keys /// @sa https://json.nlohmann.me/api/basic_json/update/ - void update(const_iterator first, const_iterator last, bool merge_objects = false) + void update(const_iterator first, const_iterator last, bool merge_objects = false) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -4013,12 +4039,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(InputType&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::forward(i)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved,accessForwarded] return result; } @@ -4028,24 +4054,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(IteratorType first, IteratorType last, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::move(first), std::move(last)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) static basic_json parse(detail::span_input_adapter&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(i.get(), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } @@ -4224,6 +4250,23 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec basic_json* m_parent = nullptr; #endif +#if JSON_DIAGNOSTIC_POSITIONS + /// the start position of the value + std::size_t start_position = std::string::npos; + /// the end position of the value + std::size_t end_position = std::string::npos; + public: + constexpr std::size_t start_pos() const noexcept + { + return start_position; + } + + constexpr std::size_t end_pos() const noexcept + { + return end_position; + } +#endif + ////////////////////////////////////////// // binary serialization/deserialization // ////////////////////////////////////////// @@ -4365,9 +4408,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4381,9 +4424,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4406,10 +4449,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4422,9 +4465,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4437,9 +4480,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4460,10 +4503,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4476,9 +4519,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4491,9 +4534,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4514,10 +4557,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4530,9 +4573,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4545,9 +4588,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4560,9 +4603,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4575,9 +4618,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4598,10 +4641,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } /// @} @@ -4702,7 +4745,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // the valid JSON Patch operations enum class patch_operations {add, remove, replace, move, copy, test, invalid}; - const auto get_op = [](const std::string & op) + const auto get_op = [](const string_t& op) { if (op == "add") { @@ -4733,7 +4776,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec }; // wrapper for "add" operation; add value at ptr - const auto operation_add = [&result](json_pointer & ptr, basic_json val) + const auto operation_add = [&result](json_pointer & ptr, const basic_json & val) { // adding to the root of the target document means replacing it if (ptr.empty()) @@ -4839,15 +4882,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (const auto& val : json_patch) { // wrapper to get a value for an operation - const auto get_value = [&val](const std::string & op, - const std::string & member, + const auto get_value = [&val](const string_t& op, + const string_t& member, bool string_type) -> basic_json & { // find value auto it = val.m_data.m_value.object->find(member); // context-sensitive error message - const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); + const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); // NOLINT(bugprone-unused-local-non-trivial-variable) // check if desired value is present if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end())) @@ -4874,8 +4917,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } // collect mandatory members - const auto op = get_value("op", "op", true).template get(); - const auto path = get_value(op, "path", true).template get(); + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); json_pointer ptr(path); switch (get_op(op)) @@ -4901,7 +4944,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::move: { - const auto from_path = get_value("move", "from", true).template get(); + const auto from_path = get_value("move", "from", true).template get(); json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -4918,7 +4961,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::copy: { - const auto from_path = get_value("copy", "from", true).template get(); + const auto from_path = get_value("copy", "from", true).template get(); const json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -4978,7 +5021,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/diff/ JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json diff(const basic_json& source, const basic_json& target, - const std::string& path = "") + const string_t& path = "") { // the patch basic_json result(value_t::array); @@ -5008,7 +5051,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec while (i < source.size() && i < target.size()) { // recursive call to compare array values at index i - auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', std::to_string(i))); + auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', detail::to_string(i))); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); ++i; } @@ -5025,7 +5068,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.insert(result.begin() + end_index, object( { {"op", "remove"}, - {"path", detail::concat(path, '/', std::to_string(i))} + {"path", detail::concat(path, '/', detail::to_string(i))} })); ++i; } @@ -5036,7 +5079,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.push_back( { {"op", "add"}, - {"path", detail::concat(path, "/-")}, + {"path", detail::concat(path, "/-")}, {"value", target[i]} }); ++i; @@ -5051,7 +5094,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (auto it = source.cbegin(); it != source.cend(); ++it) { // escape the key name to be used in a JSON patch - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); if (target.find(it.key()) != target.end()) { @@ -5075,7 +5118,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (source.find(it.key()) == source.end()) { // found a key that is not in this -> add it - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); result.push_back( { {"op", "add"}, {"path", path_key}, diff --git a/include/nlohmann/json_fwd.hpp b/include/nlohmann/json_fwd.hpp index 32bde590..d796cfd7 100644 --- a/include/nlohmann/json_fwd.hpp +++ b/include/nlohmann/json_fwd.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ diff --git a/include/nlohmann/ordered_map.hpp b/include/nlohmann/ordered_map.hpp index 39e4a50a..f87abd7a 100644 --- a/include/nlohmann/ordered_map.hpp +++ b/include/nlohmann/ordered_map.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -26,7 +26,7 @@ NLOHMANN_JSON_NAMESPACE_BEGIN /// for use within nlohmann::basic_json template , class Allocator = std::allocator>> - struct ordered_map : std::vector, Allocator> + struct ordered_map : std::vector, Allocator> { using key_type = Key; using mapped_type = T; @@ -341,7 +341,7 @@ template , template using require_input_iter = typename std::enable_if::iterator_category, - std::input_iterator_tag>::value>::type; + std::input_iterator_tag>::value>::type; template> void insert(InputIt first, InputIt last) diff --git a/include/nlohmann/thirdparty/hedley/hedley.hpp b/include/nlohmann/thirdparty/hedley/hedley.hpp index a1dc64f6..4e4ef888 100644 --- a/include/nlohmann/thirdparty/hedley/hedley.hpp +++ b/include/nlohmann/thirdparty/hedley/hedley.hpp @@ -5,8 +5,8 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann -// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson // SPDX-License-Identifier: MIT /* Hedley - https://nemequ.github.io/hedley diff --git a/include/nlohmann/thirdparty/hedley/hedley_undef.hpp b/include/nlohmann/thirdparty/hedley/hedley_undef.hpp index c0aee2bb..c07df895 100644 --- a/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +++ b/include/nlohmann/thirdparty/hedley/hedley_undef.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/nlohmann_json.natvis b/nlohmann_json.natvis index a831ea04..fbe4221f 100644 --- a/nlohmann_json.natvis +++ b/nlohmann_json.natvis @@ -7,21 +7,21 @@ - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) @@ -37,21 +37,21 @@ - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) @@ -65,30 +65,30 @@ - - - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + + + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) - + {second} second @@ -97,21 +97,21 @@ - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) @@ -125,30 +125,30 @@ - - - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + + + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) - + {second} second @@ -157,21 +157,21 @@ - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) @@ -185,30 +185,30 @@ - - - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + + + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) - + {second} second @@ -217,21 +217,21 @@ - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) @@ -245,30 +245,30 @@ - - - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + + + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) - + {second} second diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 8b72ea65..9314724f 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /****************************************************************************\ @@ -37,7 +37,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -50,7 +50,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -73,6 +73,10 @@ #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -83,6 +87,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -94,14 +104,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ @@ -152,7 +163,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -162,6 +173,9 @@ #include // forward_list #include // inserter, front_inserter, end #include // map +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -175,7 +189,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -195,7 +209,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -211,7 +225,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -223,7 +237,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -236,7 +250,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -323,8 +337,8 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann -// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson // SPDX-License-Identifier: MIT /* Hedley - https://nemequ.github.io/hedley @@ -2568,7 +2582,9 @@ JSON_HEDLEY_DIAGNOSTIC_POP template \ inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [e](const std::pair& ej_pair) -> bool \ @@ -2580,7 +2596,9 @@ JSON_HEDLEY_DIAGNOSTIC_POP template \ inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [&j](const std::pair& ej_pair) -> bool \ @@ -2743,7 +2761,7 @@ JSON_HEDLEY_DIAGNOSTIC_POP #define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; #define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); -#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; /*! @brief macro @@ -2754,10 +2772,20 @@ JSON_HEDLEY_DIAGNOSTIC_POP friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.x +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } @@ -2770,13 +2798,55 @@ JSON_HEDLEY_DIAGNOSTIC_POP inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } -#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } - +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +*/ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.11.x +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + // inspired from https://stackoverflow.com/a/26745591 // allows to call any std function as if (e.g. with begin): // using std::begin; begin(x); @@ -2942,7 +3012,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3017,7 +3087,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3059,7 +3129,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-FileCopyrightText: 2018 The Abseil Authors // SPDX-License-Identifier: MIT @@ -3219,7 +3289,7 @@ struct static_const #endif template -inline constexpr std::array make_array(Args&& ... args) +constexpr std::array make_array(Args&& ... args) { return std::array {{static_cast(std::forward(args))...}}; } @@ -3233,16 +3303,16 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include // numeric_limits +#include // char_traits +#include // tuple #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval -#include // tuple -#include // char_traits // #include // __ _____ _____ _____ @@ -3250,7 +3320,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3293,7 +3363,7 @@ struct iterator_traits template struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> - : iterator_types + : iterator_types { }; @@ -3318,7 +3388,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3338,7 +3408,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3362,7 +3432,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ @@ -3624,7 +3694,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -3648,7 +3718,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -3674,19 +3744,19 @@ struct is_default_constructible : std::is_default_constructible {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_constructible : std::is_constructible {}; @@ -3884,8 +3954,8 @@ is_detected::value&& // special case for types like std::filesystem::path whose iterator's value_type are themselves // c.f. https://github.com/nlohmann/json/pull/3073 !std::is_same>::value&& - is_complete_type < - detected_t>::value >> +is_complete_type < +detected_t>::value >> { using value_type = range_value_t; @@ -4008,12 +4078,12 @@ using is_usable_as_key_type = typename std::conditional < template> using is_usable_as_basic_json_key_type = typename std::conditional < - is_usable_as_key_type::value - && !is_json_iterator_of::value, - std::true_type, - std::false_type >::type; + is_usable_as_key_type::value + && !is_json_iterator_of::value, + std::true_type, + std::false_type >::type; template using detect_erase_with_key_type = decltype(std::declval().erase(std::declval())); @@ -4147,7 +4217,7 @@ struct value_in_range_of_impl1 }; template -inline constexpr bool value_in_range_of(T val) +constexpr bool value_in_range_of(T val) { return value_in_range_of_impl1::test(val); } @@ -4163,7 +4233,7 @@ namespace impl { template -inline constexpr bool is_c_string() +constexpr bool is_c_string() { using TUnExt = typename std::remove_extent::type; using TUnCVExt = typename std::remove_cv::type; @@ -4191,7 +4261,7 @@ namespace impl { template -inline constexpr bool is_transparent() +constexpr bool is_transparent() { return is_detected::value; } @@ -4213,7 +4283,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4358,6 +4428,18 @@ inline OutStringType concat(Args && ... args) NLOHMANN_JSON_NAMESPACE_END +// With -Wweak-vtables, Clang will complain about the exception classes as they +// have no out-of-line virtual method definitions and their vtable will be +// emitted in every translation unit. This issue cannot be fixed with a +// header-only library as there is no implementation file to move these +// functions to. As a result, we suppress this warning here to avoid client +// code to stumble over this. See https://github.com/nlohmann/json/issues/4087 +// for a discussion. +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wweak-vtables" +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4589,6 +4671,10 @@ class other_error : public exception } // namespace detail NLOHMANN_JSON_NAMESPACE_END +#if defined(__clang__) + #pragma clang diagnostic pop +#endif + // #include // #include @@ -4599,7 +4685,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4623,7 +4709,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4640,7 +4726,7 @@ namespace std_fs = std::experimental::filesystem; } // namespace detail NLOHMANN_JSON_NAMESPACE_END #elif JSON_HAS_FILESYSTEM -#include +#include // NOLINT(build/c++17) NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4670,6 +4756,24 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) n = nullptr; } +#ifdef JSON_HAS_CPP_17 +#ifndef JSON_USE_IMPLICIT_CONVERSIONS +template +void from_json(const BasicJsonType& j, std::optional& opt) +{ + if (j.is_null()) + { + opt = std::nullopt; + } + else + { + opt.emplace(j.template get()); + } +} + +#endif // JSON_USE_IMPLICIT_CONVERSIONS +#endif // JSON_HAS_CPP_17 + // overloads for basic_json template parameters template < typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic::value&& @@ -4817,6 +4921,54 @@ auto from_json(const BasicJsonType& j, T (&arr)[N]) // NOLINT(cppcoreguidelines } } +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + arr[i1][i2] = j.at(i1).at(i2).template get(); + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + arr[i1][i2][i3] = j.at(i1).at(i2).at(i3).template get(); + } + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3][N4]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + for (std::size_t i4 = 0; i4 < N4; ++i4) + { + arr[i1][i2][i3][i4] = j.at(i1).at(i2).at(i3).at(i4).template get(); + } + } + } + } +} + template inline void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) { @@ -4902,7 +5054,7 @@ void()) template < typename BasicJsonType, typename T, std::size_t... Idx > std::array from_json_inplace_array_impl(BasicJsonType&& j, - identity_tag> /*unused*/, index_sequence /*unused*/) + identity_tag> /*unused*/, index_sequence /*unused*/) { return { { std::forward(j).at(Idx).template get()... } }; } @@ -5129,11 +5281,17 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT +// #include +// JSON_HAS_CPP_17 +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + #include // copy #include // begin, end #include // string @@ -5149,14 +5307,13 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include // size_t -#include // input_iterator_tag -#include // string, to_string +#include // forward_iterator_tag #include // tuple_size, get, tuple_element #include // move @@ -5168,6 +5325,46 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t +#include // string, to_string + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +void int_to_string(StringType& target, std::size_t value) +{ + // For ADL + using std::to_string; + target = to_string(value); +} + +template +StringType to_string(std::size_t value) +{ + StringType result; + int_to_string(result, value); + return result; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + // #include @@ -5175,13 +5372,6 @@ NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { -template -void int_to_string( string_type& target, std::size_t value ) -{ - // For ADL - using std::to_string; - target = to_string(value); -} template class iteration_proxy_value { public: @@ -5189,7 +5379,7 @@ template class iteration_proxy_value using value_type = iteration_proxy_value; using pointer = value_type *; using reference = value_type &; - using iterator_category = std::input_iterator_tag; + using iterator_category = std::forward_iterator_tag; using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; private: @@ -5369,7 +5559,7 @@ namespace std #endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> // NOLINT(cert-dcl58-cpp) - : public std::integral_constant {}; + : public std::integral_constant {}; template class tuple_element> // NOLINT(cert-dcl58-cpp) @@ -5390,8 +5580,6 @@ class tuple_element> inline constexpr bool ::std::ranges::enable_borrowed_range<::nlohmann::detail::iteration_proxy> = true; #endif -// #include - // #include // #include @@ -5637,6 +5825,22 @@ struct external_constructor // to_json // ///////////// +#ifdef JSON_HAS_CPP_17 +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::optional& opt) +{ + if (opt.has_value()) + { + j = *opt; + } + else + { + j = nullptr; + } +} +#endif + template::value, int> = 0> inline void to_json(BasicJsonType& j, T b) noexcept @@ -5697,7 +5901,8 @@ template::type; - external_constructor::construct(j, static_cast(e)); + static constexpr value_t integral_value_t = std::is_unsigned::value ? value_t::number_unsigned : value_t::number_integer; + external_constructor::construct(j, static_cast(e)); } #endif // JSON_DISABLE_ENUM_SERIALIZATION @@ -5870,7 +6075,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5982,7 +6187,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6115,7 +6320,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6132,6 +6337,9 @@ NLOHMANN_JSON_NAMESPACE_END #include // char_traits, string #include // make_pair, move #include // vector +#ifdef __cpp_lib_byteswap + #include //byteswap +#endif // #include @@ -6141,7 +6349,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6161,6 +6369,8 @@ NLOHMANN_JSON_NAMESPACE_END #include // istream #endif // JSON_NO_IO +// #include + // #include // #include @@ -6208,6 +6418,13 @@ class file_input_adapter return std::fgetc(m_file); } + // returns the number of characters successfully read + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + return fread(dest, 1, sizeof(T) * count, m_file); + } + private: /// the file pointer to read from std::FILE* m_file; @@ -6267,6 +6484,17 @@ class input_stream_adapter return res; } + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto res = static_cast(sb->sgetn(reinterpret_cast(dest), static_cast(count * sizeof(T)))); + if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T))) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + private: /// the associated input stream std::istream* is = nullptr; @@ -6298,6 +6526,26 @@ class iterator_input_adapter return char_traits::eof(); } + // for general iterators, we cannot really do something better than falling back to processing the range one-by-one + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto* ptr = reinterpret_cast(dest); + for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index) + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + ptr[read_index] = static_cast(*current); + std::advance(current, 1); + } + else + { + return read_index; + } + } + return count * sizeof(T); + } + private: IteratorType current; IteratorType end; @@ -6461,6 +6709,13 @@ class wide_string_input_adapter return utf8_bytes[utf8_bytes_index++]; } + // parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here + template + std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1) + { + JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr)); + } + private: BaseInputAdapter base_adapter; @@ -6557,10 +6812,17 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory::create(container); } +// specialization for std::string +using string_input_adapter_type = decltype(input_adapter(std::declval())); + #ifndef JSON_NO_IO // Special cases with fast paths inline file_input_adapter input_adapter(std::FILE* file) { + if (file == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } return file_input_adapter(file); } @@ -6587,9 +6849,13 @@ template < typename CharT, int >::type = 0 > contiguous_bytes_input_adapter input_adapter(CharT b) { + if (b == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } auto length = std::strlen(reinterpret_cast(b)); const auto* ptr = reinterpret_cast(b); - return input_adapter(ptr, ptr + length); + return input_adapter(ptr, ptr + length); // cppcheck-suppress[nullPointerArithmeticRedundantCheck] } template @@ -6638,739 +6904,26 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include #include // string +#include // enable_if_t #include // move #include // vector // #include -// #include - -// #include - - -NLOHMANN_JSON_NAMESPACE_BEGIN - -/*! -@brief SAX interface - -This class describes the SAX interface used by @ref nlohmann::json::sax_parse. -Each function is called in different situations while the input is parsed. The -boolean return value informs the parser whether to continue processing the -input. -*/ -template -struct json_sax -{ - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - /*! - @brief a null value was read - @return whether parsing should proceed - */ - virtual bool null() = 0; - - /*! - @brief a boolean value was read - @param[in] val boolean value - @return whether parsing should proceed - */ - virtual bool boolean(bool val) = 0; - - /*! - @brief an integer number was read - @param[in] val integer value - @return whether parsing should proceed - */ - virtual bool number_integer(number_integer_t val) = 0; - - /*! - @brief an unsigned integer number was read - @param[in] val unsigned integer value - @return whether parsing should proceed - */ - virtual bool number_unsigned(number_unsigned_t val) = 0; - - /*! - @brief a floating-point number was read - @param[in] val floating-point value - @param[in] s raw token value - @return whether parsing should proceed - */ - virtual bool number_float(number_float_t val, const string_t& s) = 0; - - /*! - @brief a string value was read - @param[in] val string value - @return whether parsing should proceed - @note It is safe to move the passed string value. - */ - virtual bool string(string_t& val) = 0; - - /*! - @brief a binary value was read - @param[in] val binary value - @return whether parsing should proceed - @note It is safe to move the passed binary value. - */ - virtual bool binary(binary_t& val) = 0; - - /*! - @brief the beginning of an object was read - @param[in] elements number of object elements or -1 if unknown - @return whether parsing should proceed - @note binary formats may report the number of elements - */ - virtual bool start_object(std::size_t elements) = 0; - - /*! - @brief an object key was read - @param[in] val object key - @return whether parsing should proceed - @note It is safe to move the passed string. - */ - virtual bool key(string_t& val) = 0; - - /*! - @brief the end of an object was read - @return whether parsing should proceed - */ - virtual bool end_object() = 0; - - /*! - @brief the beginning of an array was read - @param[in] elements number of array elements or -1 if unknown - @return whether parsing should proceed - @note binary formats may report the number of elements - */ - virtual bool start_array(std::size_t elements) = 0; - - /*! - @brief the end of an array was read - @return whether parsing should proceed - */ - virtual bool end_array() = 0; - - /*! - @brief a parse error occurred - @param[in] position the position in the input where the error occurs - @param[in] last_token the last read token - @param[in] ex an exception object describing the error - @return whether parsing should proceed (must return false) - */ - virtual bool parse_error(std::size_t position, - const std::string& last_token, - const detail::exception& ex) = 0; - - json_sax() = default; - json_sax(const json_sax&) = default; - json_sax(json_sax&&) noexcept = default; - json_sax& operator=(const json_sax&) = default; - json_sax& operator=(json_sax&&) noexcept = default; - virtual ~json_sax() = default; -}; - -namespace detail -{ -/*! -@brief SAX implementation to create a JSON value from SAX events - -This class implements the @ref json_sax interface and processes the SAX events -to create a JSON value which makes it basically a DOM parser. The structure or -hierarchy of the JSON value is managed by the stack `ref_stack` which contains -a pointer to the respective array or object for each recursion depth. - -After successful parsing, the value that is passed by reference to the -constructor contains the parsed value. - -@tparam BasicJsonType the JSON type -*/ -template -class json_sax_dom_parser -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - /*! - @param[in,out] r reference to a JSON value that is manipulated while - parsing - @param[in] allow_exceptions_ whether parse errors yield exceptions - */ - explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) - : root(r), allow_exceptions(allow_exceptions_) - {} - - // make class move-only - json_sax_dom_parser(const json_sax_dom_parser&) = delete; - json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; - json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - ~json_sax_dom_parser() = default; - - bool null() - { - handle_value(nullptr); - return true; - } - - bool boolean(bool val) - { - handle_value(val); - return true; - } - - bool number_integer(number_integer_t val) - { - handle_value(val); - return true; - } - - bool number_unsigned(number_unsigned_t val) - { - handle_value(val); - return true; - } - - bool number_float(number_float_t val, const string_t& /*unused*/) - { - handle_value(val); - return true; - } - - bool string(string_t& val) - { - handle_value(val); - return true; - } - - bool binary(binary_t& val) - { - handle_value(std::move(val)); - return true; - } - - bool start_object(std::size_t len) - { - ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); - - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool key(string_t& val) - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_object()); - - // add null at given key and store the reference for later - object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val)); - return true; - } - - bool end_object() - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_object()); - - ref_stack.back()->set_parents(); - ref_stack.pop_back(); - return true; - } - - bool start_array(std::size_t len) - { - ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); - - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool end_array() - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_array()); - - ref_stack.back()->set_parents(); - ref_stack.pop_back(); - return true; - } - - template - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, - const Exception& ex) - { - errored = true; - static_cast(ex); - if (allow_exceptions) - { - JSON_THROW(ex); - } - return false; - } - - constexpr bool is_errored() const - { - return errored; - } - - private: - /*! - @invariant If the ref stack is empty, then the passed value will be the new - root. - @invariant If the ref stack contains a value, then it is an array or an - object to which we can add elements - */ - template - JSON_HEDLEY_RETURNS_NON_NULL - BasicJsonType* handle_value(Value&& v) - { - if (ref_stack.empty()) - { - root = BasicJsonType(std::forward(v)); - return &root; - } - - JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); - - if (ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); - return &(ref_stack.back()->m_data.m_value.array->back()); - } - - JSON_ASSERT(ref_stack.back()->is_object()); - JSON_ASSERT(object_element); - *object_element = BasicJsonType(std::forward(v)); - return object_element; - } - - /// the parsed JSON value - BasicJsonType& root; - /// stack to model hierarchy of values - std::vector ref_stack {}; - /// helper to hold the reference for the next object element - BasicJsonType* object_element = nullptr; - /// whether a syntax error occurred - bool errored = false; - /// whether to throw exceptions in case of errors - const bool allow_exceptions = true; -}; - -template -class json_sax_dom_callback_parser -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - using parser_callback_t = typename BasicJsonType::parser_callback_t; - using parse_event_t = typename BasicJsonType::parse_event_t; - - json_sax_dom_callback_parser(BasicJsonType& r, - const parser_callback_t cb, - const bool allow_exceptions_ = true) - : root(r), callback(cb), allow_exceptions(allow_exceptions_) - { - keep_stack.push_back(true); - } - - // make class move-only - json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; - json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; - json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - ~json_sax_dom_callback_parser() = default; - - bool null() - { - handle_value(nullptr); - return true; - } - - bool boolean(bool val) - { - handle_value(val); - return true; - } - - bool number_integer(number_integer_t val) - { - handle_value(val); - return true; - } - - bool number_unsigned(number_unsigned_t val) - { - handle_value(val); - return true; - } - - bool number_float(number_float_t val, const string_t& /*unused*/) - { - handle_value(val); - return true; - } - - bool string(string_t& val) - { - handle_value(val); - return true; - } - - bool binary(binary_t& val) - { - handle_value(std::move(val)); - return true; - } - - bool start_object(std::size_t len) - { - // check callback for object start - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); - keep_stack.push_back(keep); - - auto val = handle_value(BasicJsonType::value_t::object, true); - ref_stack.push_back(val.second); - - // check object limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool key(string_t& val) - { - BasicJsonType k = BasicJsonType(val); - - // check callback for key - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); - key_keep_stack.push_back(keep); - - // add discarded value at given key and store the reference for later - if (keep && ref_stack.back()) - { - object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded); - } - - return true; - } - - bool end_object() - { - if (ref_stack.back()) - { - if (!callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) - { - // discard object - *ref_stack.back() = discarded; - } - else - { - ref_stack.back()->set_parents(); - } - } - - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(!keep_stack.empty()); - ref_stack.pop_back(); - keep_stack.pop_back(); - - if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) - { - // remove discarded value - for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) - { - if (it->is_discarded()) - { - ref_stack.back()->erase(it); - break; - } - } - } - - return true; - } - - bool start_array(std::size_t len) - { - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); - keep_stack.push_back(keep); - - auto val = handle_value(BasicJsonType::value_t::array, true); - ref_stack.push_back(val.second); - - // check array limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool end_array() - { - bool keep = true; - - if (ref_stack.back()) - { - keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); - if (keep) - { - ref_stack.back()->set_parents(); - } - else - { - // discard array - *ref_stack.back() = discarded; - } - } - - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(!keep_stack.empty()); - ref_stack.pop_back(); - keep_stack.pop_back(); - - // remove discarded value - if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->pop_back(); - } - - return true; - } - - template - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, - const Exception& ex) - { - errored = true; - static_cast(ex); - if (allow_exceptions) - { - JSON_THROW(ex); - } - return false; - } - - constexpr bool is_errored() const - { - return errored; - } - - private: - /*! - @param[in] v value to add to the JSON value we build during parsing - @param[in] skip_callback whether we should skip calling the callback - function; this is required after start_array() and - start_object() SAX events, because otherwise we would call the - callback function with an empty array or object, respectively. - - @invariant If the ref stack is empty, then the passed value will be the new - root. - @invariant If the ref stack contains a value, then it is an array or an - object to which we can add elements - - @return pair of boolean (whether value should be kept) and pointer (to the - passed value in the ref_stack hierarchy; nullptr if not kept) - */ - template - std::pair handle_value(Value&& v, const bool skip_callback = false) - { - JSON_ASSERT(!keep_stack.empty()); - - // do not handle this value if we know it would be added to a discarded - // container - if (!keep_stack.back()) - { - return {false, nullptr}; - } - - // create value - auto value = BasicJsonType(std::forward(v)); - - // check callback - const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); - - // do not handle this value if we just learnt it shall be discarded - if (!keep) - { - return {false, nullptr}; - } - - if (ref_stack.empty()) - { - root = std::move(value); - return {true, & root}; - } - - // skip this value if we already decided to skip the parent - // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) - if (!ref_stack.back()) - { - return {false, nullptr}; - } - - // we now only expect arrays and objects - JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); - - // array - if (ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value)); - return {true, & (ref_stack.back()->m_data.m_value.array->back())}; - } - - // object - JSON_ASSERT(ref_stack.back()->is_object()); - // check if we should store an element for the current key - JSON_ASSERT(!key_keep_stack.empty()); - const bool store_element = key_keep_stack.back(); - key_keep_stack.pop_back(); - - if (!store_element) - { - return {false, nullptr}; - } - - JSON_ASSERT(object_element); - *object_element = std::move(value); - return {true, object_element}; - } - - /// the parsed JSON value - BasicJsonType& root; - /// stack to model hierarchy of values - std::vector ref_stack {}; - /// stack to manage which values to keep - std::vector keep_stack {}; - /// stack to manage which object keys to keep - std::vector key_keep_stack {}; - /// helper to hold the reference for the next object element - BasicJsonType* object_element = nullptr; - /// whether a syntax error occurred - bool errored = false; - /// callback function - const parser_callback_t callback = nullptr; - /// whether to throw exceptions in case of errors - const bool allow_exceptions = true; - /// a discarded value for the callback - BasicJsonType discarded = BasicJsonType::value_t::discarded; -}; - -template -class json_sax_acceptor -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - bool null() - { - return true; - } - - bool boolean(bool /*unused*/) - { - return true; - } - - bool number_integer(number_integer_t /*unused*/) - { - return true; - } - - bool number_unsigned(number_unsigned_t /*unused*/) - { - return true; - } - - bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) - { - return true; - } - - bool string(string_t& /*unused*/) - { - return true; - } - - bool binary(binary_t& /*unused*/) - { - return true; - } - - bool start_object(std::size_t /*unused*/ = static_cast(-1)) - { - return true; - } - - bool key(string_t& /*unused*/) - { - return true; - } - - bool end_object() - { - return true; - } - - bool start_array(std::size_t /*unused*/ = static_cast(-1)) - { - return true; - } - - bool end_array() - { - return true; - } - - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) - { - return false; - } -}; - -} // namespace detail -NLOHMANN_JSON_NAMESPACE_END - // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -8338,7 +7891,7 @@ class lexer : public lexer_base locale's decimal point is used instead of `.` to work with the locale-dependent converters. */ - token_type scan_number() // lgtm [cpp/use-of-goto] + token_type scan_number() // lgtm [cpp/use-of-goto] `goto` is used in this function to implement the number-parsing state machine described above. By design, any finite input will eventually reach the "done" state or return token_type::parse_error. In each intermediate state, 1 byte of the input is appended to the token_buffer vector, and only the already initialized variables token_buffer, number_type, and error_message are manipulated. { // reset token_buffer to store the number's bytes reset(); @@ -8420,6 +7973,7 @@ scan_number_zero: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -8456,6 +8010,7 @@ scan_number_any1: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -8627,7 +8182,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_unsigned = static_cast(x); if (value_unsigned == x) @@ -8643,7 +8198,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_integer = static_cast(x); if (value_integer == x) @@ -8693,6 +8248,7 @@ scan_number_done: { token_buffer.clear(); token_string.clear(); + decimal_point_position = std::string::npos; token_string.push_back(char_traits::to_char_type(current)); } @@ -8801,6 +8357,11 @@ scan_number_done: /// return current string value (implicitly resets the token; useful only once) string_t& get_string() { + // translate decimal points from locale back to '.' (#4084) + if (decimal_point_char != '.' && decimal_point_position != std::string::npos) + { + token_buffer[decimal_point_position] = '.'; + } return token_buffer; } @@ -8998,6 +8559,8 @@ scan_number_done: /// the decimal point const char_int_type decimal_point_char = '.'; + /// the position of the decimal point in the input + std::size_t decimal_point_position = std::string::npos; }; } // namespace detail @@ -9005,13 +8568,986 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + +NLOHMANN_JSON_NAMESPACE_BEGIN + +/*! +@brief SAX interface + +This class describes the SAX interface used by @ref nlohmann::json::sax_parse. +Each function is called in different situations while the input is parsed. The +boolean return value informs the parser whether to continue processing the +input. +*/ +template +struct json_sax +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @brief a null value was read + @return whether parsing should proceed + */ + virtual bool null() = 0; + + /*! + @brief a boolean value was read + @param[in] val boolean value + @return whether parsing should proceed + */ + virtual bool boolean(bool val) = 0; + + /*! + @brief an integer number was read + @param[in] val integer value + @return whether parsing should proceed + */ + virtual bool number_integer(number_integer_t val) = 0; + + /*! + @brief an unsigned integer number was read + @param[in] val unsigned integer value + @return whether parsing should proceed + */ + virtual bool number_unsigned(number_unsigned_t val) = 0; + + /*! + @brief a floating-point number was read + @param[in] val floating-point value + @param[in] s raw token value + @return whether parsing should proceed + */ + virtual bool number_float(number_float_t val, const string_t& s) = 0; + + /*! + @brief a string value was read + @param[in] val string value + @return whether parsing should proceed + @note It is safe to move the passed string value. + */ + virtual bool string(string_t& val) = 0; + + /*! + @brief a binary value was read + @param[in] val binary value + @return whether parsing should proceed + @note It is safe to move the passed binary value. + */ + virtual bool binary(binary_t& val) = 0; + + /*! + @brief the beginning of an object was read + @param[in] elements number of object elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_object(std::size_t elements) = 0; + + /*! + @brief an object key was read + @param[in] val object key + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool key(string_t& val) = 0; + + /*! + @brief the end of an object was read + @return whether parsing should proceed + */ + virtual bool end_object() = 0; + + /*! + @brief the beginning of an array was read + @param[in] elements number of array elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_array(std::size_t elements) = 0; + + /*! + @brief the end of an array was read + @return whether parsing should proceed + */ + virtual bool end_array() = 0; + + /*! + @brief a parse error occurred + @param[in] position the position in the input where the error occurs + @param[in] last_token the last read token + @param[in] ex an exception object describing the error + @return whether parsing should proceed (must return false) + */ + virtual bool parse_error(std::size_t position, + const std::string& last_token, + const detail::exception& ex) = 0; + + json_sax() = default; + json_sax(const json_sax&) = default; + json_sax(json_sax&&) noexcept = default; + json_sax& operator=(const json_sax&) = default; + json_sax& operator=(json_sax&&) noexcept = default; + virtual ~json_sax() = default; +}; + +namespace detail +{ +constexpr std::size_t unknown_size() +{ + return (std::numeric_limits::max)(); +} + +/*! +@brief SAX implementation to create a JSON value from SAX events + +This class implements the @ref json_sax interface and processes the SAX events +to create a JSON value which makes it basically a DOM parser. The structure or +hierarchy of the JSON value is managed by the stack `ref_stack` which contains +a pointer to the respective array or object for each recursion depth. + +After successful parsing, the value that is passed by reference to the +constructor contains the parsed value. + +@tparam BasicJsonType the JSON type +*/ +template +class json_sax_dom_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using lexer_t = lexer; + + /*! + @param[in,out] r reference to a JSON value that is manipulated while + parsing + @param[in] allow_exceptions_ whether parse errors yield exceptions + */ + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true, lexer_t* lexer_ = nullptr) + : root(r), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) + {} + + // make class move-only + json_sax_dom_parser(const json_sax_dom_parser&) = delete; + json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; + json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + + return true; + } + + bool key(string_t& val) + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_object()); + + // add null at given key and store the reference for later + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val)); + return true; + } + + bool end_object() + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_object()); + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + bool start_array(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } + + return true; + } + + bool end_array() + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_array()); + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + // As we handle the start and end positions for values created during parsing, + // we do not expect the following value type to be called. Regardless, set the positions + // in case this is created manually or through a different constructor. Exclude from lcov + // since the exact condition of this switch is esoteric. + // LCOV_EXCL_START + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + // LCOV_EXCL_STOP + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + + /*! + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + */ + template + JSON_HEDLEY_RETURNS_NON_NULL + BasicJsonType* handle_value(Value&& v) + { + if (ref_stack.empty()) + { + root = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(root); +#endif + + return &root; + } + + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(ref_stack.back()->m_data.m_value.array->back()); +#endif + + return &(ref_stack.back()->m_data.m_value.array->back()); + } + + JSON_ASSERT(ref_stack.back()->is_object()); + JSON_ASSERT(object_element); + *object_element = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(*object_element); +#endif + + return object_element; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; +}; + +template +class json_sax_dom_callback_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using parser_callback_t = typename BasicJsonType::parser_callback_t; + using parse_event_t = typename BasicJsonType::parse_event_t; + using lexer_t = lexer; + + json_sax_dom_callback_parser(BasicJsonType& r, + parser_callback_t cb, + const bool allow_exceptions_ = true, + lexer_t* lexer_ = nullptr) + : root(r), callback(std::move(cb)), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) + { + keep_stack.push_back(true); + } + + // make class move-only + json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_callback_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + // check callback for object start + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::object, true); + ref_stack.push_back(val.second); + + if (ref_stack.back()) + { + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check object limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + } + return true; + } + + bool key(string_t& val) + { + BasicJsonType k = BasicJsonType(val); + + // check callback for key + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); + key_keep_stack.push_back(keep); + + // add discarded value at given key and store the reference for later + if (keep && ref_stack.back()) + { + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded); + } + + return true; + } + + bool end_object() + { + if (ref_stack.back()) + { + if (!callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) + { + // discard object + *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded object. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif + } + else + { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) + { + // remove discarded value + for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) + { + if (it->is_discarded()) + { + ref_stack.back()->erase(it); + break; + } + } + } + + return true; + } + + bool start_array(std::size_t len) + { + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::array, true); + ref_stack.push_back(val.second); + + if (ref_stack.back()) + { + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the array, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check array limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } + } + + return true; + } + + bool end_array() + { + bool keep = true; + + if (ref_stack.back()) + { + keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); + if (keep) + { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + } + else + { + // discard array + *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded array. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + // remove discarded value + if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->pop_back(); + } + + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + + /*! + @param[in] v value to add to the JSON value we build during parsing + @param[in] skip_callback whether we should skip calling the callback + function; this is required after start_array() and + start_object() SAX events, because otherwise we would call the + callback function with an empty array or object, respectively. + + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + + @return pair of boolean (whether value should be kept) and pointer (to the + passed value in the ref_stack hierarchy; nullptr if not kept) + */ + template + std::pair handle_value(Value&& v, const bool skip_callback = false) + { + JSON_ASSERT(!keep_stack.empty()); + + // do not handle this value if we know it would be added to a discarded + // container + if (!keep_stack.back()) + { + return {false, nullptr}; + } + + // create value + auto value = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(value); +#endif + + // check callback + const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); + + // do not handle this value if we just learnt it shall be discarded + if (!keep) + { + return {false, nullptr}; + } + + if (ref_stack.empty()) + { + root = std::move(value); + return {true, & root}; + } + + // skip this value if we already decided to skip the parent + // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) + if (!ref_stack.back()) + { + return {false, nullptr}; + } + + // we now only expect arrays and objects + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + // array + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value)); + return {true, & (ref_stack.back()->m_data.m_value.array->back())}; + } + + // object + JSON_ASSERT(ref_stack.back()->is_object()); + // check if we should store an element for the current key + JSON_ASSERT(!key_keep_stack.empty()); + const bool store_element = key_keep_stack.back(); + key_keep_stack.pop_back(); + + if (!store_element) + { + return {false, nullptr}; + } + + JSON_ASSERT(object_element); + *object_element = std::move(value); + return {true, object_element}; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// stack to manage which values to keep + std::vector keep_stack {}; // NOLINT(readability-redundant-member-init) + /// stack to manage which object keys to keep + std::vector key_keep_stack {}; // NOLINT(readability-redundant-member-init) + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// callback function + const parser_callback_t callback = nullptr; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// a discarded value for the callback + BasicJsonType discarded = BasicJsonType::value_t::discarded; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; +}; + +template +class json_sax_acceptor +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + bool null() + { + return true; + } + + bool boolean(bool /*unused*/) + { + return true; + } + + bool number_integer(number_integer_t /*unused*/) + { + return true; + } + + bool number_unsigned(number_unsigned_t /*unused*/) + { + return true; + } + + bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) + { + return true; + } + + bool string(string_t& /*unused*/) + { + return true; + } + + bool binary(binary_t& /*unused*/) + { + return true; + } + + bool start_object(std::size_t /*unused*/ = detail::unknown_size()) + { + return true; + } + + bool key(string_t& /*unused*/) + { + return true; + } + + bool end_object() + { + return true; + } + + bool start_array(std::size_t /*unused*/ = detail::unknown_size()) + { + return true; + } + + bool end_array() + { + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) + { + return false; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -9207,7 +9743,7 @@ static inline bool little_endianness(int num = 1) noexcept /*! @brief deserialization of CBOR, MessagePack, and UBJSON values */ -template> +template> class binary_reader { using number_integer_t = typename BasicJsonType::number_integer_t; @@ -9314,7 +9850,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -9536,7 +10072,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -9796,7 +10332,7 @@ class binary_reader } case 0x9F: // array (indefinite length) - return get_cbor_array(static_cast(-1), tag_handler); + return get_cbor_array(detail::unknown_size(), tag_handler); // map (0x00..0x17 pairs of data items follow) case 0xA0: @@ -9850,7 +10386,7 @@ class binary_reader } case 0xBF: // map (indefinite length) - return get_cbor_object(static_cast(-1), tag_handler); + return get_cbor_object(detail::unknown_size(), tag_handler); case 0xC6: // tagged item case 0xC7: @@ -10238,7 +10774,7 @@ class binary_reader } /*! - @param[in] len the length of the array or static_cast(-1) for an + @param[in] len the length of the array or detail::unknown_size() for an array of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether array creation completed @@ -10251,7 +10787,7 @@ class binary_reader return false; } - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -10276,7 +10812,7 @@ class binary_reader } /*! - @param[in] len the length of the object or static_cast(-1) for an + @param[in] len the length of the object or detail::unknown_size() for an object of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether object creation completed @@ -10292,7 +10828,7 @@ class binary_reader if (len != 0) { string_t key; - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -11710,7 +12246,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -11788,7 +12324,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -11899,6 +12435,29 @@ class binary_reader return current = ia.get_character(); } + /*! + @brief get_to read into a primitive type + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns false instead + + @return bool, whether the read was successful + */ + template + bool get_to(T& dest, const input_format_t format, const char* context) + { + auto new_chars_read = ia.get_elements(&dest); + chars_read += new_chars_read; + if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T))) + { + // in case of failure, advance position by 1 to report failing location + ++chars_read; + sax->parse_error(chars_read, "", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr)); + return false; + } + return true; + } + /*! @return character read from the input after ignoring all 'N' entries */ @@ -11913,6 +12472,28 @@ class binary_reader return current; } + template + static void byte_swap(NumberType& number) + { + constexpr std::size_t sz = sizeof(number); +#ifdef __cpp_lib_byteswap + if constexpr (sz == 1) + { + return; + } + if constexpr(std::is_integral_v) + { + number = std::byteswap(number); + return; + } +#endif + auto* ptr = reinterpret_cast(&number); + for (std::size_t i = 0; i < sz / 2; ++i) + { + std::swap(ptr[i], ptr[sz - i - 1]); + } + } + /* @brief read a number from the input @@ -11931,29 +12512,16 @@ class binary_reader template bool get_number(const input_format_t format, NumberType& result) { - // step 1: read input into array with system's byte order - std::array vec{}; - for (std::size_t i = 0; i < sizeof(NumberType); ++i) + // read in the original format + + if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number"))) { - get(); - if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) - { - return false; - } - - // reverse byte order prior to conversion if necessary - if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) - { - vec[sizeof(NumberType) - i - 1] = static_cast(current); - } - else - { - vec[i] = static_cast(current); // LCOV_EXCL_LINE - } + return false; + } + if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) + { + byte_swap(result); } - - // step 2: convert array into number of type T and return - std::memcpy(&result, vec.data(), sizeof(NumberType)); return true; } @@ -12092,7 +12660,7 @@ class binary_reader } private: - static JSON_INLINE_VARIABLE constexpr std::size_t npos = static_cast(-1); + static JSON_INLINE_VARIABLE constexpr std::size_t npos = detail::unknown_size(); /// input adapter InputAdapterType ia; @@ -12163,7 +12731,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12237,10 +12805,10 @@ class parser public: /// a parser reading from an input adapter explicit parser(InputAdapterType&& adapter, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions_ = true, const bool skip_comments = false) - : callback(cb) + : callback(std::move(cb)) , m_lexer(std::move(adapter), skip_comments) , allow_exceptions(allow_exceptions_) { @@ -12262,7 +12830,7 @@ class parser { if (callback) { - json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -12290,7 +12858,7 @@ class parser } else { - json_sax_dom_parser sdp(result, allow_exceptions); + json_sax_dom_parser sdp(result, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -12362,7 +12930,7 @@ class parser { case token_type::begin_object: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -12407,7 +12975,7 @@ class parser case token_type::begin_array: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -12692,7 +13260,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12705,7 +13273,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12864,7 +13432,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13331,7 +13899,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator==(const IterImpl& other) const @@ -13342,7 +13910,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + return true; + } switch (m_object->m_data.m_type) { @@ -13367,7 +13939,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator!=(const IterImpl& other) const @@ -13377,7 +13949,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<(const iter_impl& other) const { @@ -13387,7 +13959,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + // the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false + return false; + } switch (m_object->m_data.m_type) { @@ -13412,7 +13989,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<=(const iter_impl& other) const { @@ -13421,7 +13998,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator>(const iter_impl& other) const { @@ -13430,7 +14007,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized. */ bool operator>=(const iter_impl& other) const { @@ -13626,7 +14203,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13761,7 +14338,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13803,7 +14380,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14798,7 +15375,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14880,6 +15457,8 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + // #include // #include @@ -14890,7 +15469,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14916,7 +15495,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -15651,7 +16230,7 @@ class binary_writer case value_t::binary: { // step 0: determine if the binary type has a set subtype to - // determine whether or not to use the ext or fixext types + // determine whether to use the ext or fixext types const bool use_ext = j.m_data.m_value.binary->has_subtype(); // step 1: write control byte and the byte string length @@ -16884,8 +17463,8 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -16910,7 +17489,7 @@ NLOHMANN_JSON_NAMESPACE_END // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2009 Florian Loitsch -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -17146,10 +17725,10 @@ boundaries compute_boundaries(FloatType value) // v- m- v m+ v+ const bool lower_boundary_is_closer = F == 0 && E > 1; - const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_plus = diyfp((2 * v.f) + 1, v.e - 1); const diyfp m_minus = lower_boundary_is_closer - ? diyfp(4 * v.f - 1, v.e - 2) // (B) - : diyfp(2 * v.f - 1, v.e - 1); // (A) + ? diyfp((4 * v.f) - 1, v.e - 2) // (B) + : diyfp((2 * v.f) - 1, v.e - 1); // (A) // Determine the normalized w+ = m+. const diyfp w_plus = diyfp::normalize(m_plus); @@ -17379,7 +17958,7 @@ inline cached_power get_cached_power_for_binary_exponent(int e) JSON_ASSERT(e >= -1500); JSON_ASSERT(e <= 1500); const int f = kAlpha - e - 1; - const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + const int k = ((f * 78913) / (1 << 18)) + static_cast(f > 0); const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; JSON_ASSERT(index >= 0); @@ -17857,15 +18436,15 @@ inline char* append_exponent(char* buf, int e) } else if (k < 100) { - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } else { - *buf++ = static_cast('0' + k / 100); + *buf++ = static_cast('0' + (k / 100)); k %= 100; - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } @@ -18651,7 +19230,7 @@ class serializer @param[in] x unsigned integer number to count its digits @return number of decimal digits */ - inline unsigned int count_digits(number_unsigned_t x) noexcept + unsigned int count_digits(number_unsigned_t x) noexcept { unsigned int n_digits = 1; for (;;) @@ -18934,7 +19513,7 @@ class serializer ? (byte & 0x3fu) | (codep << 6u) : (0xFFu >> type) & (byte); - const std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + const std::size_t index = 256u + (static_cast(state) * 16u) + static_cast(type); JSON_ASSERT(index < utf8d.size()); state = utf8d[index]; return state; @@ -18960,7 +19539,7 @@ class serializer * absolute values of INT_MIN and INT_MAX are usually not the same. See * #1708 for details. */ - inline number_unsigned_t remove_sign(number_integer_t x) noexcept + number_unsigned_t remove_sign(number_integer_t x) noexcept { JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); // NOLINT(misc-redundant-expression) return static_cast(-(x + 1)) + 1; @@ -19005,7 +19584,7 @@ NLOHMANN_JSON_NAMESPACE_END // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -19030,7 +19609,7 @@ NLOHMANN_JSON_NAMESPACE_BEGIN /// for use within nlohmann::basic_json template , class Allocator = std::allocator>> - struct ordered_map : std::vector, Allocator> + struct ordered_map : std::vector, Allocator> { using key_type = Key; using mapped_type = T; @@ -19345,7 +19924,7 @@ template , template using require_input_iter = typename std::enable_if::iterator_category, - std::input_iterator_tag>::value>::type; + std::input_iterator_tag>::value>::type; template> void insert(InputIt first, InputIt last) @@ -19416,9 +19995,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec friend class ::nlohmann::detail::binary_writer; template friend class ::nlohmann::detail::binary_reader; - template + template friend class ::nlohmann::detail::json_sax_dom_parser; - template + template friend class ::nlohmann::detail::json_sax_dom_callback_parser; friend class ::nlohmann::detail::exception; @@ -19439,7 +20018,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ) { return ::nlohmann::detail::parser(std::move(adapter), - std::move(cb), allow_exceptions, ignore_comments); + std::move(cb), allow_exceptions, ignore_comments); } private: @@ -20052,10 +20631,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return it; } - reference set_parent(reference j, std::size_t old_capacity = static_cast(-1)) + reference set_parent(reference j, std::size_t old_capacity = detail::unknown_size()) { #if JSON_DIAGNOSTICS - if (old_capacity != static_cast(-1)) + if (old_capacity != detail::unknown_size()) { // see https://github.com/nlohmann/json/issues/2838 JSON_ASSERT(type() == value_t::array); @@ -20135,8 +20714,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < !detail::is_basic_json::value && detail::is_compatible_type::value, int > = 0 > basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-forwarding-reference-overload,bugprone-exception-escape) - JSONSerializer::to_json(std::declval(), - std::forward(val)))) + JSONSerializer::to_json(std::declval(), + std::forward(val)))) { JSONSerializer::to_json(*this, std::forward(val)); set_parents(); @@ -20149,6 +20728,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < detail::is_basic_json::value&& !std::is_same::value, int > = 0 > basic_json(const BasicJsonType& val) +#if JSON_DIAGNOSTIC_POSITIONS + : start_position(val.start_pos()), + end_position(val.end_pos()) +#endif { using other_boolean_t = typename BasicJsonType::boolean_t; using other_number_float_t = typename BasicJsonType::number_float_t; @@ -20195,6 +20778,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE } JSON_ASSERT(m_data.m_type == val.type()); + set_parents(); assert_invariant(); } @@ -20331,7 +20915,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class InputIT, typename std::enable_if < std::is_same::value || std::is_same::value, int >::type = 0 > - basic_json(InputIT first, InputIT last) + basic_json(InputIT first, InputIT last) // NOLINT(performance-unnecessary-value-param) { JSON_ASSERT(first.m_object != nullptr); JSON_ASSERT(last.m_object != nullptr); @@ -20446,6 +21030,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const basic_json& other) : json_base_class_t(other) +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) + , end_position(other.end_position) +#endif { m_data.m_type = other.m_data.m_type; // check of passed value is valid @@ -20515,15 +21103,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(basic_json&& other) noexcept : json_base_class_t(std::forward(other)), - m_data(std::move(other.m_data)) + m_data(std::move(other.m_data)) // cppcheck-suppress[accessForwarded] TODO check +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) // cppcheck-suppress[accessForwarded] TODO check + , end_position(other.end_position) // cppcheck-suppress[accessForwarded] TODO check +#endif { // check that passed value is valid - other.assert_invariant(false); + other.assert_invariant(false); // cppcheck-suppress[accessForwarded] // invalidate payload other.m_data.m_type = value_t::null; other.m_data.m_value = {}; +#if JSON_DIAGNOSTIC_POSITIONS + other.start_position = std::string::npos; + other.end_position = std::string::npos; +#endif + set_parents(); assert_invariant(); } @@ -20544,6 +21141,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using std::swap; swap(m_data.m_type, other.m_data.m_type); swap(m_data.m_value, other.m_data.m_value); + +#if JSON_DIAGNOSTIC_POSITIONS + swap(start_position, other.start_position); + swap(end_position, other.end_position); +#endif + json_base_class_t::operator=(std::move(other)); set_parents(); @@ -20765,13 +21368,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) @@ -20906,7 +21509,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_from_json::value, int > = 0 > ValueType get_impl(detail::priority_tag<0> /*unused*/) const noexcept(noexcept( - JSONSerializer::from_json(std::declval(), std::declval()))) + JSONSerializer::from_json(std::declval(), std::declval()))) { auto ret = ValueType(); JSONSerializer::from_json(*this, ret); @@ -20948,7 +21551,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_non_default_from_json::value, int > = 0 > ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(noexcept( - JSONSerializer::from_json(std::declval()))) + JSONSerializer::from_json(std::declval()))) { return JSONSerializer::from_json(*this); } @@ -21098,7 +21701,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_from_json::value, int > = 0 > ValueType & get_to(ValueType& v) const noexcept(noexcept( - JSONSerializer::from_json(std::declval(), v))) + JSONSerializer::from_json(std::declval(), v))) { JSONSerializer::from_json(*this, v); return v; @@ -21250,7 +21853,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -21273,7 +21876,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -21418,7 +22021,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief access specified object element /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/ - reference operator[](typename object_t::key_type key) + reference operator[](typename object_t::key_type key) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -21728,7 +22331,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType pos) + IteratorType erase(IteratorType pos) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) @@ -21798,7 +22401,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType first, IteratorType last) + IteratorType erase(IteratorType first, IteratorType last) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) @@ -22565,7 +23168,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @note: This uses std::distance to support GCC 4.8, /// see https://github.com/nlohmann/json/pull/1257 template - iterator insert_iterator(const_iterator pos, Args&& ... args) + iterator insert_iterator(const_iterator pos, Args&& ... args) // NOLINT(performance-unnecessary-value-param) { iterator result(this); JSON_ASSERT(m_data.m_value.array != nullptr); @@ -22584,7 +23187,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const basic_json& val) + iterator insert(const_iterator pos, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -22604,14 +23207,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, basic_json&& val) + iterator insert(const_iterator pos, basic_json&& val) // NOLINT(performance-unnecessary-value-param) { return insert(pos, val); } /// @brief inserts copies of element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -22631,7 +23234,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const_iterator first, const_iterator last) + iterator insert(const_iterator pos, const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -22662,7 +23265,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts elements from initializer list into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, initializer_list_t ilist) + iterator insert(const_iterator pos, initializer_list_t ilist) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -22682,7 +23285,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into object /// @sa https://json.nlohmann.me/api/basic_json/insert/ - void insert(const_iterator first, const_iterator last) + void insert(const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for objects if (JSON_HEDLEY_UNLIKELY(!is_object())) @@ -22703,6 +23306,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + set_parents(); } /// @brief updates a JSON object from another object, overwriting existing keys @@ -22714,7 +23318,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief updates a JSON object from another object, overwriting existing keys /// @sa https://json.nlohmann.me/api/basic_json/update/ - void update(const_iterator first, const_iterator last, bool merge_objects = false) + void update(const_iterator first, const_iterator last, bool merge_objects = false) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -23315,12 +23919,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(InputType&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::forward(i)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved,accessForwarded] return result; } @@ -23330,24 +23934,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(IteratorType first, IteratorType last, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::move(first), std::move(last)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) static basic_json parse(detail::span_input_adapter&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(i.get(), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } @@ -23526,6 +24130,23 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec basic_json* m_parent = nullptr; #endif +#if JSON_DIAGNOSTIC_POSITIONS + /// the start position of the value + std::size_t start_position = std::string::npos; + /// the end position of the value + std::size_t end_position = std::string::npos; + public: + constexpr std::size_t start_pos() const noexcept + { + return start_position; + } + + constexpr std::size_t end_pos() const noexcept + { + return end_position; + } +#endif + ////////////////////////////////////////// // binary serialization/deserialization // ////////////////////////////////////////// @@ -23667,9 +24288,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23683,9 +24304,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23708,10 +24329,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23724,9 +24345,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23739,9 +24360,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23762,10 +24383,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23778,9 +24399,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23793,9 +24414,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23816,10 +24437,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23832,9 +24453,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23847,9 +24468,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23862,9 +24483,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23877,9 +24498,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23900,10 +24521,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } /// @} @@ -24004,7 +24625,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // the valid JSON Patch operations enum class patch_operations {add, remove, replace, move, copy, test, invalid}; - const auto get_op = [](const std::string & op) + const auto get_op = [](const string_t& op) { if (op == "add") { @@ -24035,7 +24656,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec }; // wrapper for "add" operation; add value at ptr - const auto operation_add = [&result](json_pointer & ptr, basic_json val) + const auto operation_add = [&result](json_pointer & ptr, const basic_json & val) { // adding to the root of the target document means replacing it if (ptr.empty()) @@ -24141,15 +24762,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (const auto& val : json_patch) { // wrapper to get a value for an operation - const auto get_value = [&val](const std::string & op, - const std::string & member, + const auto get_value = [&val](const string_t& op, + const string_t& member, bool string_type) -> basic_json & { // find value auto it = val.m_data.m_value.object->find(member); // context-sensitive error message - const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); + const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); // NOLINT(bugprone-unused-local-non-trivial-variable) // check if desired value is present if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end())) @@ -24176,8 +24797,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } // collect mandatory members - const auto op = get_value("op", "op", true).template get(); - const auto path = get_value(op, "path", true).template get(); + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); json_pointer ptr(path); switch (get_op(op)) @@ -24203,7 +24824,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::move: { - const auto from_path = get_value("move", "from", true).template get(); + const auto from_path = get_value("move", "from", true).template get(); json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -24220,7 +24841,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::copy: { - const auto from_path = get_value("copy", "from", true).template get(); + const auto from_path = get_value("copy", "from", true).template get(); const json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -24280,7 +24901,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/diff/ JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json diff(const basic_json& source, const basic_json& target, - const std::string& path = "") + const string_t& path = "") { // the patch basic_json result(value_t::array); @@ -24310,7 +24931,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec while (i < source.size() && i < target.size()) { // recursive call to compare array values at index i - auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', std::to_string(i))); + auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', detail::to_string(i))); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); ++i; } @@ -24327,7 +24948,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.insert(result.begin() + end_index, object( { {"op", "remove"}, - {"path", detail::concat(path, '/', std::to_string(i))} + {"path", detail::concat(path, '/', detail::to_string(i))} })); ++i; } @@ -24338,7 +24959,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.push_back( { {"op", "add"}, - {"path", detail::concat(path, "/-")}, + {"path", detail::concat(path, "/-")}, {"value", target[i]} }); ++i; @@ -24353,7 +24974,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (auto it = source.cbegin(); it != source.cend(); ++it) { // escape the key name to be used in a JSON patch - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); if (target.find(it.key()) != target.end()) { @@ -24377,7 +24998,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (source.find(it.key()) == source.end()) { // found a key that is not in this -> add it - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); result.push_back( { {"op", "add"}, {"path", path_key}, @@ -24561,7 +25182,7 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -24606,7 +25227,7 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT diff --git a/single_include/nlohmann/json_fwd.hpp b/single_include/nlohmann/json_fwd.hpp index 29a6036d..1df3928d 100644 --- a/single_include/nlohmann/json_fwd.hpp +++ b/single_include/nlohmann/json_fwd.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ @@ -21,7 +21,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT @@ -44,6 +44,10 @@ #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -54,6 +58,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -65,14 +75,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ diff --git a/tests/abi/config/config.hpp b/tests/abi/config/config.hpp index 8762b2a6..1e0f41e8 100644 --- a/tests/abi/config/config.hpp +++ b/tests/abi/config/config.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/tests/abi/config/custom.cpp b/tests/abi/config/custom.cpp index 9e5bb898..64644c56 100644 --- a/tests/abi/config/custom.cpp +++ b/tests/abi/config/custom.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/abi/config/default.cpp b/tests/abi/config/default.cpp index d54ca6ff..f210ae95 100644 --- a/tests/abi/config/default.cpp +++ b/tests/abi/config/default.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -24,6 +24,10 @@ TEST_CASE("default namespace") expected += "_diag"; #endif +#if JSON_DIAGNOSTIC_POSITIONS + expected += "_dp"; +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON expected += "_ldvcmp"; #endif diff --git a/tests/abi/config/noversion.cpp b/tests/abi/config/noversion.cpp index 2a7c277d..c76ec11b 100644 --- a/tests/abi/config/noversion.cpp +++ b/tests/abi/config/noversion.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -25,6 +25,10 @@ TEST_CASE("default namespace without version component") expected += "_diag"; #endif +#if JSON_DIAGNOSTIC_POSITIONS + expected += "_dp"; +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON expected += "_ldvcmp"; #endif diff --git a/tests/abi/diag/diag.cpp b/tests/abi/diag/diag.cpp index 286f75db..7cc95bfd 100644 --- a/tests/abi/diag/diag.cpp +++ b/tests/abi/diag/diag.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/abi/diag/diag.hpp b/tests/abi/diag/diag.hpp index 1d4d49e9..030df752 100644 --- a/tests/abi/diag/diag.hpp +++ b/tests/abi/diag/diag.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/tests/abi/diag/diag_off.cpp b/tests/abi/diag/diag_off.cpp index cd0d178f..63d8ab96 100644 --- a/tests/abi/diag/diag_off.cpp +++ b/tests/abi/diag/diag_off.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #undef JSON_DIAGNOSTICS diff --git a/tests/abi/diag/diag_on.cpp b/tests/abi/diag/diag_on.cpp index 197a2c0c..7bdca137 100644 --- a/tests/abi/diag/diag_on.cpp +++ b/tests/abi/diag/diag_on.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #undef JSON_DIAGNOSTICS diff --git a/tests/abi/inline_ns/use_current.cpp b/tests/abi/inline_ns/use_current.cpp index cb07dd33..ba2b5495 100644 --- a/tests/abi/inline_ns/use_current.cpp +++ b/tests/abi/inline_ns/use_current.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/abi/inline_ns/use_v3_10_5.cpp b/tests/abi/inline_ns/use_v3_10_5.cpp index 7a427539..79cf658d 100644 --- a/tests/abi/inline_ns/use_v3_10_5.cpp +++ b/tests/abi/inline_ns/use_v3_10_5.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/abi/main.cpp b/tests/abi/main.cpp index 0a4805e7..523cda91 100644 --- a/tests/abi/main.cpp +++ b/tests/abi/main.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN diff --git a/tests/benchmarks/src/benchmarks.cpp b/tests/benchmarks/src/benchmarks.cpp index 0210b9fe..40be5ec2 100644 --- a/tests/benchmarks/src/benchmarks.cpp +++ b/tests/benchmarks/src/benchmarks.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include @@ -140,6 +140,46 @@ BENCHMARK_CAPTURE(ToCbor, signed_ints, TEST_DATA_DIRECTORY "/regression/si BENCHMARK_CAPTURE(ToCbor, unsigned_ints, TEST_DATA_DIRECTORY "/regression/unsigned_ints.json"); BENCHMARK_CAPTURE(ToCbor, small_signed_ints, TEST_DATA_DIRECTORY "/regression/small_signed_ints.json"); +////////////////////////////////////////////////////////////////////////////// +// Parse Msgpack +////////////////////////////////////////////////////////////////////////////// + +static void FromMsgpack(benchmark::State& state, const char* filename) +{ + std::ifstream f(filename); + std::string str((std::istreambuf_iterator(f)), std::istreambuf_iterator()); + auto bytes = json::to_msgpack(json::parse(str)); + std::ofstream o("test.msgpack"); + o.write((char*)bytes.data(), bytes.size()); + o.flush(); + o.close(); + for (auto _ : state) + { + state.PauseTiming(); + auto* j = new json(); + auto file = fopen("test.msgpack", "rb"); + state.ResumeTiming(); + + *j = json::from_msgpack(file); + + state.PauseTiming(); + fclose(file); + delete j; + state.ResumeTiming(); + } + + state.SetBytesProcessed(state.iterations() * bytes.size()); +} + +BENCHMARK_CAPTURE(FromMsgpack, jeopardy, TEST_DATA_DIRECTORY "/jeopardy/jeopardy.json"); +BENCHMARK_CAPTURE(FromMsgpack, canada, TEST_DATA_DIRECTORY "/nativejson-benchmark/canada.json"); +BENCHMARK_CAPTURE(FromMsgpack, citm_catalog, TEST_DATA_DIRECTORY "/nativejson-benchmark/citm_catalog.json"); +BENCHMARK_CAPTURE(FromMsgpack, twitter, TEST_DATA_DIRECTORY "/nativejson-benchmark/twitter.json"); +BENCHMARK_CAPTURE(FromMsgpack, floats, TEST_DATA_DIRECTORY "/regression/floats.json"); +BENCHMARK_CAPTURE(FromMsgpack, signed_ints, TEST_DATA_DIRECTORY "/regression/signed_ints.json"); +BENCHMARK_CAPTURE(FromMsgpack, unsigned_ints, TEST_DATA_DIRECTORY "/regression/unsigned_ints.json"); +BENCHMARK_CAPTURE(FromMsgpack, small_signed_ints, TEST_DATA_DIRECTORY "/regression/small_signed_ints.json"); + ////////////////////////////////////////////////////////////////////////////// // serialize binary CBOR ////////////////////////////////////////////////////////////////////////////// diff --git a/tests/cmake_add_subdirectory/project/main.cpp b/tests/cmake_add_subdirectory/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_add_subdirectory/project/main.cpp +++ b/tests/cmake_add_subdirectory/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_fetch_content/project/main.cpp b/tests/cmake_fetch_content/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_fetch_content/project/main.cpp +++ b/tests/cmake_fetch_content/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_fetch_content2/project/main.cpp b/tests/cmake_fetch_content2/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_fetch_content2/project/main.cpp +++ b/tests/cmake_fetch_content2/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_import/project/main.cpp b/tests/cmake_import/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_import/project/main.cpp +++ b/tests/cmake_import/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_import_minver/project/main.cpp b/tests/cmake_import_minver/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_import_minver/project/main.cpp +++ b/tests/cmake_import_minver/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_target_include_directories/project/Bar.cpp b/tests/cmake_target_include_directories/project/Bar.cpp index 83a14bc8..adcdc87c 100644 --- a/tests/cmake_target_include_directories/project/Bar.cpp +++ b/tests/cmake_target_include_directories/project/Bar.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "Bar.hpp" diff --git a/tests/cmake_target_include_directories/project/Bar.hpp b/tests/cmake_target_include_directories/project/Bar.hpp index a56257c3..ddfb9e75 100644 --- a/tests/cmake_target_include_directories/project/Bar.hpp +++ b/tests/cmake_target_include_directories/project/Bar.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cmake_target_include_directories/project/Foo.cpp b/tests/cmake_target_include_directories/project/Foo.cpp index 42e950e7..c3ffe11e 100644 --- a/tests/cmake_target_include_directories/project/Foo.cpp +++ b/tests/cmake_target_include_directories/project/Foo.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "Foo.hpp" diff --git a/tests/cmake_target_include_directories/project/Foo.hpp b/tests/cmake_target_include_directories/project/Foo.hpp index 18fe9763..a26dead0 100644 --- a/tests/cmake_target_include_directories/project/Foo.hpp +++ b/tests/cmake_target_include_directories/project/Foo.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/tests/cmake_target_include_directories/project/main.cpp b/tests/cmake_target_include_directories/project/main.cpp index 6db94486..ebdde5c8 100644 --- a/tests/cmake_target_include_directories/project/main.cpp +++ b/tests/cmake_target_include_directories/project/main.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/cuda_example/json_cuda.cu b/tests/cuda_example/json_cuda.cu index 65759666..02084a79 100644 --- a/tests/cuda_example/json_cuda.cu +++ b/tests/cuda_example/json_cuda.cu @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include diff --git a/tests/src/fuzzer-driver_afl.cpp b/tests/src/fuzzer-driver_afl.cpp index ae3aefe1..79767bae 100644 --- a/tests/src/fuzzer-driver_afl.cpp +++ b/tests/src/fuzzer-driver_afl.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_bjdata.cpp b/tests/src/fuzzer-parse_bjdata.cpp index 30f1ddd0..b5a209ea 100644 --- a/tests/src/fuzzer-parse_bjdata.cpp +++ b/tests/src/fuzzer-parse_bjdata.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_bson.cpp b/tests/src/fuzzer-parse_bson.cpp index fa2a221d..0b02323b 100644 --- a/tests/src/fuzzer-parse_bson.cpp +++ b/tests/src/fuzzer-parse_bson.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_cbor.cpp b/tests/src/fuzzer-parse_cbor.cpp index db92aca8..2bdf2348 100644 --- a/tests/src/fuzzer-parse_cbor.cpp +++ b/tests/src/fuzzer-parse_cbor.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_json.cpp b/tests/src/fuzzer-parse_json.cpp index be04e803..d06c0626 100644 --- a/tests/src/fuzzer-parse_json.cpp +++ b/tests/src/fuzzer-parse_json.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_msgpack.cpp b/tests/src/fuzzer-parse_msgpack.cpp index 0106b405..7737a8a5 100644 --- a/tests/src/fuzzer-parse_msgpack.cpp +++ b/tests/src/fuzzer-parse_msgpack.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/fuzzer-parse_ubjson.cpp b/tests/src/fuzzer-parse_ubjson.cpp index 2830bef7..f2331865 100644 --- a/tests/src/fuzzer-parse_ubjson.cpp +++ b/tests/src/fuzzer-parse_ubjson.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT /* diff --git a/tests/src/make_test_data_available.hpp b/tests/src/make_test_data_available.hpp index a2ffefa8..06f49986 100644 --- a/tests/src/make_test_data_available.hpp +++ b/tests/src/make_test_data_available.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/tests/src/test_utils.hpp b/tests/src/test_utils.hpp index dbb0a9b1..25af71c0 100644 --- a/tests/src/test_utils.hpp +++ b/tests/src/test_utils.hpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/tests/src/unit-32bit.cpp b/tests/src/unit-32bit.cpp index 22a2ad28..93a54a97 100644 --- a/tests/src/unit-32bit.cpp +++ b/tests/src/unit-32bit.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -23,7 +23,7 @@ struct trait_test_arg static constexpr bool max_in_range = MaxInRange; }; -TEST_CASE_TEMPLATE_DEFINE("value_in_range_of trait", T, value_in_range_of_test) +TEST_CASE_TEMPLATE_DEFINE("value_in_range_of trait", T, value_in_range_of_test) // NOLINT(readability-math-missing-parentheses) { using nlohmann::detail::value_in_range_of; diff --git a/tests/src/unit-algorithms.cpp b/tests/src/unit-algorithms.cpp index 3fb1640d..871f0409 100644 --- a/tests/src/unit-algorithms.cpp +++ b/tests/src/unit-algorithms.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-allocator.cpp b/tests/src/unit-allocator.cpp index 399c8bfa..cf401a02 100644 --- a/tests/src/unit-allocator.cpp +++ b/tests/src/unit-allocator.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-alt-string.cpp b/tests/src/unit-alt-string.cpp index 7efe2e2e..164ff5e4 100644 --- a/tests/src/unit-alt-string.cpp +++ b/tests/src/unit-alt-string.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-FileCopyrightText: 2018 Vitaliy Manushkin // SPDX-License-Identifier: MIT @@ -16,8 +16,8 @@ /* forward declarations */ class alt_string; -bool operator<(const char* op1, const alt_string& op2) noexcept; -void int_to_string(alt_string& target, std::size_t value); +bool operator<(const char* op1, const alt_string& op2) noexcept; // NOLINT(misc-use-internal-linkage) +void int_to_string(alt_string& target, std::size_t value); // NOLINT(misc-use-internal-linkage) /* * This is virtually a string class. @@ -28,17 +28,28 @@ class alt_string public: using value_type = std::string::value_type; - static constexpr auto npos = static_cast(-1); + static constexpr auto npos = (std::numeric_limits::max)(); alt_string(const char* str): str_impl(str) {} alt_string(const char* str, std::size_t count): str_impl(str, count) {} alt_string(size_t count, char chr): str_impl(count, chr) {} alt_string() = default; - template - alt_string& append(TParams&& ...params) + alt_string& append(char ch) { - str_impl.append(std::forward(params)...); + str_impl.push_back(ch); + return *this; + } + + alt_string& append(const alt_string& str) + { + str_impl.append(str.str_impl); + return *this; + } + + alt_string& append(const char* s, std::size_t length) + { + str_impl.append(s, length); return *this; } @@ -157,8 +168,13 @@ class alt_string return *this; } + void reserve( std::size_t new_cap = 0 ) + { + str_impl.reserve(new_cap); + } + private: - std::string str_impl {}; + std::string str_impl {}; // NOLINT(readability-redundant-member-init) friend bool operator<(const char* /*op1*/, const alt_string& /*op2*/) noexcept; }; @@ -319,4 +335,28 @@ TEST_CASE("alternative string type") CHECK(j.at(alt_json::json_pointer("/foo/0")) == j["foo"][0]); CHECK(j.at(alt_json::json_pointer("/foo/1")) == j["foo"][1]); } + + SECTION("patch") + { + alt_json const patch1 = alt_json::parse(R"([{ "op": "add", "path": "/a/b", "value": [ "foo", "bar" ] }])"); + alt_json const doc1 = alt_json::parse(R"({ "a": { "foo": 1 } })"); + + CHECK_NOTHROW(doc1.patch(patch1)); + alt_json doc1_ans = alt_json::parse(R"( + { + "a": { + "foo": 1, + "b": [ "foo", "bar" ] + } + } + )"); + CHECK(doc1.patch(patch1) == doc1_ans); + } + + SECTION("diff") + { + alt_json const j1 = {"foo", "bar", "baz"}; + alt_json const j2 = {"foo", "bam"}; + CHECK(alt_json::diff(j1, j2).dump() == "[{\"op\":\"replace\",\"path\":\"/1\",\"value\":\"bam\"},{\"op\":\"remove\",\"path\":\"/2\"}]"); + } } diff --git a/tests/src/unit-assert_macro.cpp b/tests/src/unit-assert_macro.cpp index 55eb3b9e..ce336285 100644 --- a/tests/src/unit-assert_macro.cpp +++ b/tests/src/unit-assert_macro.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-binary_formats.cpp b/tests/src/unit-binary_formats.cpp index b41a6fec..b8ca315d 100644 --- a/tests/src/unit-binary_formats.cpp +++ b/tests/src/unit-binary_formats.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-bjdata.cpp b/tests/src/unit-bjdata.cpp index 9f247fe6..cf770e5f 100644 --- a/tests/src/unit-bjdata.cpp +++ b/tests/src/unit-bjdata.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -109,7 +109,7 @@ struct trait_test_arg static constexpr bool max_in_range = MaxInRange; }; -TEST_CASE_TEMPLATE_DEFINE("value_in_range_of trait", T, value_in_range_of_test) +TEST_CASE_TEMPLATE_DEFINE("value_in_range_of trait", T, value_in_range_of_test) // NOLINT(readability-math-missing-parentheses) { using nlohmann::detail::value_in_range_of; @@ -339,13 +339,13 @@ TEST_CASE("BJData") std::vector const numbers { -32769, - -100000, - -1000000, - -10000000, - -100000000, - -1000000000, - -2147483647 - 1, // https://stackoverflow.com/a/29356002/266378 - }; + -100000, + -1000000, + -10000000, + -100000000, + -1000000000, + -2147483647 - 1, // https://stackoverflow.com/a/29356002/266378 + }; for (const auto i : numbers) { CAPTURE(i) @@ -573,7 +573,7 @@ TEST_CASE("BJData") // check individual bytes CHECK(result[0] == 'I'); - auto const restored = static_cast(static_cast(result[2]) * 256 + static_cast(result[1])); + auto const restored = static_cast((static_cast(result[2]) * 256) + static_cast(result[1])); CHECK(restored == i); // roundtrip @@ -613,7 +613,7 @@ TEST_CASE("BJData") // check individual bytes CHECK(result[0] == 'u'); - auto const restored = static_cast(static_cast(result[2]) * 256 + static_cast(result[1])); + auto const restored = static_cast((static_cast(result[2]) * 256) + static_cast(result[1])); CHECK(restored == i); // roundtrip @@ -905,7 +905,7 @@ TEST_CASE("BJData") // check individual bytes CHECK(result[0] == 'I'); - auto const restored = static_cast(static_cast(result[2]) * 256 + static_cast(result[1])); + auto const restored = static_cast((static_cast(result[2]) * 256) + static_cast(result[1])); CHECK(restored == i); // roundtrip @@ -944,7 +944,7 @@ TEST_CASE("BJData") // check individual bytes CHECK(result[0] == 'u'); - auto const restored = static_cast(static_cast(result[2]) * 256 + static_cast(result[1])); + auto const restored = static_cast((static_cast(result[2]) * 256) + static_cast(result[1])); CHECK(restored == i); // roundtrip diff --git a/tests/src/unit-bson.cpp b/tests/src/unit-bson.cpp index 13216f2f..96188108 100644 --- a/tests/src/unit-bson.cpp +++ b/tests/src/unit-bson.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -621,7 +621,7 @@ TEST_CASE("BSON input/output_adapters") { SECTION("std::ostringstream") { - std::basic_ostringstream ss; + std::basic_ostringstream ss; json::to_bson(json_representation, ss); json j3 = json::from_bson(ss.str()); CHECK(json_representation == j3); diff --git a/tests/src/unit-byte_container_with_subtype.cpp b/tests/src/unit-byte_container_with_subtype.cpp index 4116076b..227655e8 100644 --- a/tests/src/unit-byte_container_with_subtype.cpp +++ b/tests/src/unit-byte_container_with_subtype.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-capacity.cpp b/tests/src/unit-capacity.cpp index 61203cc2..9f8e9ffb 100644 --- a/tests/src/unit-capacity.cpp +++ b/tests/src/unit-capacity.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-cbor.cpp b/tests/src/unit-cbor.cpp index be94d2f6..b505cb92 100644 --- a/tests/src/unit-cbor.cpp +++ b/tests/src/unit-cbor.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -14,7 +14,6 @@ using nlohmann::json; #include #include #include -#include #include #include #include "make_test_data_available.hpp" @@ -241,13 +240,13 @@ TEST_CASE("CBOR") const std::vector numbers { -65537, - -100000, - -1000000, - -10000000, - -100000000, - -1000000000, - -4294967296, - }; + -100000, + -1000000, + -10000000, + -100000000, + -1000000000, + -4294967296, + }; for (const auto i : numbers) { CAPTURE(i) @@ -317,7 +316,7 @@ TEST_CASE("CBOR") // check individual bytes CHECK(result[0] == 0x39); - const auto restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + const auto restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == positive); CHECK(-1 - restored == i); @@ -505,7 +504,7 @@ TEST_CASE("CBOR") // check individual bytes CHECK(result[0] == 0x19); - const auto restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + const auto restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -744,7 +743,7 @@ TEST_CASE("CBOR") // check individual bytes CHECK(result[0] == 0x19); - const auto restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + const auto restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -990,7 +989,7 @@ TEST_CASE("CBOR") { 0xfa, 0xff, 0x7f, 0xff, 0xff }; - // the same with lowest float + // the same with the lowest float const auto result = json::to_cbor(j); CHECK(result == expected); // roundtrip @@ -1632,7 +1631,7 @@ TEST_CASE("CBOR") }; json j; - auto cbp = nlohmann::detail::json_sax_dom_callback_parser(j, callback, true); + auto cbp = nlohmann::detail::json_sax_dom_callback_parser(j, callback, true); CHECK(json::sax_parse(input, &cbp, json::input_format_t::cbor)); CHECK(j.at("foo").is_binary()); CHECK(binary_seen); @@ -1881,7 +1880,7 @@ TEST_CASE("single CBOR roundtrip") { SECTION("std::ostringstream") { - std::basic_ostringstream ss; + std::basic_ostringstream ss; json::to_cbor(j1, ss); json j3 = json::from_cbor(ss.str()); CHECK(j1 == j3); diff --git a/tests/src/unit-class_const_iterator.cpp b/tests/src/unit-class_const_iterator.cpp index 003ce889..6b5f989c 100644 --- a/tests/src/unit-class_const_iterator.cpp +++ b/tests/src/unit-class_const_iterator.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-class_iterator.cpp b/tests/src/unit-class_iterator.cpp index 296ffa3f..ef49665e 100644 --- a/tests/src/unit-class_iterator.cpp +++ b/tests/src/unit-class_iterator.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-class_lexer.cpp b/tests/src/unit-class_lexer.cpp index ac029253..dba0cb2e 100644 --- a/tests/src/unit-class_lexer.cpp +++ b/tests/src/unit-class_lexer.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -23,7 +23,7 @@ json::lexer::token_type scan_string(const char* s, const bool ignore_comments) } } // namespace -std::string get_error_message(const char* s, bool ignore_comments = false); +std::string get_error_message(const char* s, bool ignore_comments = false); // NOLINT(misc-use-internal-linkage) std::string get_error_message(const char* s, const bool ignore_comments) { auto ia = nlohmann::detail::input_adapter(s); diff --git a/tests/src/unit-class_parser.cpp b/tests/src/unit-class_parser.cpp index f766842a..b48b8000 100644 --- a/tests/src/unit-class_parser.cpp +++ b/tests/src/unit-class_parser.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -75,7 +75,7 @@ class SaxEventLogger bool start_object(std::size_t elements) { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_object()"); } @@ -100,7 +100,7 @@ class SaxEventLogger bool start_array(std::size_t elements) { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_array()"); } @@ -124,7 +124,7 @@ class SaxEventLogger return false; } - std::vector events {}; + std::vector events {}; // NOLINT(readability-redundant-member-init) bool errored = false; }; @@ -219,7 +219,7 @@ json parser_helper(const std::string& s) CHECK(j_nothrow == j); json j_sax; - nlohmann::detail::json_sax_dom_parser sdp(j_sax); + nlohmann::detail::json_sax_dom_parser sdp(j_sax); json::sax_parse(s, &sdp); CHECK(j_sax == j); @@ -828,7 +828,7 @@ TEST_CASE("parser class") // for ranges in range of IEEE 754-2008 binary64 (double precision) // this does not accommodate 64 bit integers without loss of accuracy. // As 64 bit integers are now widely used in software, it is desirable - // to expand support to to the full 64 bit (signed and unsigned) range + // to expand support to the full 64 bit (signed and unsigned) range // i.e. -(2**63) -> (2**64)-1. // -(2**63) ** Note: compilers see negative literals as negated positive numbers (hence the -1)) diff --git a/tests/src/unit-class_parser_diagnostic_positions.cpp b/tests/src/unit-class_parser_diagnostic_positions.cpp new file mode 100644 index 00000000..3b796a16 --- /dev/null +++ b/tests/src/unit-class_parser_diagnostic_positions.cpp @@ -0,0 +1,1957 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + +#include "doctest_compatibility.h" +#define JSON_TESTS_PRIVATE +#ifdef JSON_DIAGNOSTIC_POSITIONS + #undef JSON_DIAGNOSTIC_POSITIONS +#endif + +#define JSON_DIAGNOSTIC_POSITIONS 1 +#include +using nlohmann::json; + +#ifdef JSON_TEST_NO_GLOBAL_UDLS + using namespace nlohmann::literals; // NOLINT(google-build-using-namespace) +#endif + +#include + +namespace +{ +class SaxEventLogger +{ + public: + bool null() + { + events.emplace_back("null()"); + return true; + } + + bool boolean(bool val) + { + events.emplace_back(val ? "boolean(true)" : "boolean(false)"); + return true; + } + + bool number_integer(json::number_integer_t val) + { + events.push_back("number_integer(" + std::to_string(val) + ")"); + return true; + } + + bool number_unsigned(json::number_unsigned_t val) + { + events.push_back("number_unsigned(" + std::to_string(val) + ")"); + return true; + } + + bool number_float(json::number_float_t /*unused*/, const std::string& s) + { + events.push_back("number_float(" + s + ")"); + return true; + } + + bool string(std::string& val) + { + events.push_back("string(" + val + ")"); + return true; + } + + bool binary(json::binary_t& val) + { + std::string binary_contents = "binary("; + std::string comma_space; + for (auto b : val) + { + binary_contents.append(comma_space); + binary_contents.append(std::to_string(static_cast(b))); + comma_space = ", "; + } + binary_contents.append(")"); + events.push_back(binary_contents); + return true; + } + + bool start_object(std::size_t elements) + { + if (elements == (std::numeric_limits::max)()) + { + events.emplace_back("start_object()"); + } + else + { + events.push_back("start_object(" + std::to_string(elements) + ")"); + } + return true; + } + + bool key(std::string& val) + { + events.push_back("key(" + val + ")"); + return true; + } + + bool end_object() + { + events.emplace_back("end_object()"); + return true; + } + + bool start_array(std::size_t elements) + { + if (elements == (std::numeric_limits::max)()) + { + events.emplace_back("start_array()"); + } + else + { + events.push_back("start_array(" + std::to_string(elements) + ")"); + } + return true; + } + + bool end_array() + { + events.emplace_back("end_array()"); + return true; + } + + bool parse_error(std::size_t position, const std::string& /*unused*/, const json::exception& /*unused*/) + { + errored = true; + events.push_back("parse_error(" + std::to_string(position) + ")"); + return false; + } + + std::vector events {}; // NOLINT(readability-redundant-member-init) + bool errored = false; +}; + +class SaxCountdown : public nlohmann::json::json_sax_t +{ + public: + explicit SaxCountdown(const int count) : events_left(count) + {} + + bool null() override + { + return events_left-- > 0; + } + + bool boolean(bool /*val*/) override + { + return events_left-- > 0; + } + + bool number_integer(json::number_integer_t /*val*/) override + { + return events_left-- > 0; + } + + bool number_unsigned(json::number_unsigned_t /*val*/) override + { + return events_left-- > 0; + } + + bool number_float(json::number_float_t /*val*/, const std::string& /*s*/) override + { + return events_left-- > 0; + } + + bool string(std::string& /*val*/) override + { + return events_left-- > 0; + } + + bool binary(json::binary_t& /*val*/) override + { + return events_left-- > 0; + } + + bool start_object(std::size_t /*elements*/) override + { + return events_left-- > 0; + } + + bool key(std::string& /*val*/) override + { + return events_left-- > 0; + } + + bool end_object() override + { + return events_left-- > 0; + } + + bool start_array(std::size_t /*elements*/) override + { + return events_left-- > 0; + } + + bool end_array() override + { + return events_left-- > 0; + } + + bool parse_error(std::size_t /*position*/, const std::string& /*last_token*/, const json::exception& /*ex*/) override + { + return false; + } + + private: + int events_left = 0; +}; + +json parser_helper(const std::string& s); +bool accept_helper(const std::string& s); +void comments_helper(const std::string& s); + +json parser_helper(const std::string& s) +{ + json j; + json::parser(nlohmann::detail::input_adapter(s)).parse(true, j); + + // if this line was reached, no exception occurred + // -> check if result is the same without exceptions + json j_nothrow; + CHECK_NOTHROW(json::parser(nlohmann::detail::input_adapter(s), nullptr, false).parse(true, j_nothrow)); + CHECK(j_nothrow == j); + + json j_sax; + nlohmann::detail::json_sax_dom_parser sdp(j_sax); + json::sax_parse(s, &sdp); + CHECK(j_sax == j); + + comments_helper(s); + + return j; +} + +bool accept_helper(const std::string& s) +{ + CAPTURE(s) + + // 1. parse s without exceptions + json j; + CHECK_NOTHROW(json::parser(nlohmann::detail::input_adapter(s), nullptr, false).parse(true, j)); + const bool ok_noexcept = !j.is_discarded(); + + // 2. accept s + const bool ok_accept = json::parser(nlohmann::detail::input_adapter(s)).accept(true); + + // 3. check if both approaches come to the same result + CHECK(ok_noexcept == ok_accept); + + // 4. parse with SAX (compare with relaxed accept result) + SaxEventLogger el; + CHECK_NOTHROW(json::sax_parse(s, &el, json::input_format_t::json, false)); + CHECK(json::parser(nlohmann::detail::input_adapter(s)).accept(false) == !el.errored); + + // 5. parse with simple callback + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t /*unused*/, json& /*unused*/) noexcept + { + return true; + }; + json const j_cb = json::parse(s, cb, false); + const bool ok_noexcept_cb = !j_cb.is_discarded(); + + // 6. check if this approach came to the same result + CHECK(ok_noexcept == ok_noexcept_cb); + + // 7. check if comments are properly ignored + if (ok_accept) + { + comments_helper(s); + } + + // 8. return result + return ok_accept; +} + +void comments_helper(const std::string& s) +{ + json _; + + // parse/accept with default parser + CHECK_NOTHROW(_ = json::parse(s)); + CHECK(json::accept(s)); + + // parse/accept while skipping comments + CHECK_NOTHROW(_ = json::parse(s, nullptr, false, true)); + CHECK(json::accept(s, true)); + + std::vector json_with_comments; + + // start with a comment + json_with_comments.push_back(std::string("// this is a comment\n") + s); + json_with_comments.push_back(std::string("/* this is a comment */") + s); + // end with a comment + json_with_comments.push_back(s + "// this is a comment"); + json_with_comments.push_back(s + "/* this is a comment */"); + + // check all strings + for (const auto& json_with_comment : json_with_comments) + { + CAPTURE(json_with_comment) + CHECK_THROWS_AS(_ = json::parse(json_with_comment), json::parse_error); + CHECK(!json::accept(json_with_comment)); + + CHECK_NOTHROW(_ = json::parse(json_with_comment, nullptr, true, true)); + CHECK(json::accept(json_with_comment, true)); + } +} + +/** + * Validates that the generated JSON object is the same as expected + * Validates that the start position and end position match the start and end of the string + * + * This check assumes that there is no whitespace around the json object in the original string. + */ +void validate_generated_json_and_start_end_pos_helper(const std::string& original_string, const json& j, const json& check) +{ + CHECK(j == check); + CHECK(j.start_pos() == 0); + CHECK(j.end_pos() == original_string.size()); +} + +/** + * Parses the root object from the given root string and validates that the start and end positions for the nested object are correct. + * + * This checks that whitespace around the nested object is included in the start and end positions of the root object. + */ +void validate_start_end_pos_for_nested_obj_helper(const std::string& nested_type_json_str, const std::string& root_type_json_str, const json& expected_json, const json::parser_callback_t& cb = nullptr) +{ + json j; + + // 1. If callback is provided, use callback version of parse() + if (cb) + { + j = json::parse(root_type_json_str, cb); + } + else + { + j = json::parse(root_type_json_str); + } + + // 2. Check if the generated JSON is as expected + // Assumptions: The root_type_json_str does not have any whitespace around the json object + validate_generated_json_and_start_end_pos_helper(root_type_json_str, j, expected_json); + + // 3. Get the nested object + const auto& nested = j["nested"]; + // 4. Check if the start and end positions are generated correctly for nested objects and arrays + CHECK(nested_type_json_str == root_type_json_str.substr(nested.start_pos(), nested.end_pos() - nested.start_pos())); +} + +} // namespace + +TEST_CASE("parser class") +{ + SECTION("parse") + { + SECTION("null") + { + CHECK(parser_helper("null") == json(nullptr)); + } + + SECTION("true") + { + CHECK(parser_helper("true") == json(true)); + } + + SECTION("false") + { + CHECK(parser_helper("false") == json(false)); + } + + SECTION("array") + { + SECTION("empty array") + { + CHECK(parser_helper("[]") == json(json::value_t::array)); + CHECK(parser_helper("[ ]") == json(json::value_t::array)); + } + + SECTION("nonempty array") + { + CHECK(parser_helper("[true, false, null]") == json({true, false, nullptr})); + } + } + + SECTION("object") + { + SECTION("empty object") + { + CHECK(parser_helper("{}") == json(json::value_t::object)); + CHECK(parser_helper("{ }") == json(json::value_t::object)); + } + + SECTION("nonempty object") + { + CHECK(parser_helper("{\"\": true, \"one\": 1, \"two\": null}") == json({{"", true}, {"one", 1}, {"two", nullptr}})); + } + } + + SECTION("string") + { + // empty string + CHECK(parser_helper("\"\"") == json(json::value_t::string)); + + SECTION("errors") + { + // error: tab in string + CHECK_THROWS_WITH_AS(parser_helper("\"\t\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t; last read: '\"'", json::parse_error&); + // error: newline in string + CHECK_THROWS_WITH_AS(parser_helper("\"\n\""), "[json.exception.parse_error.101] parse error at line 2, column 0: syntax error while parsing value - invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\r\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000D (CR) must be escaped to \\u000D or \\r; last read: '\"'", json::parse_error&); + // error: backspace in string + CHECK_THROWS_WITH_AS(parser_helper("\"\b\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0008 (BS) must be escaped to \\u0008 or \\b; last read: '\"'", json::parse_error&); + // improve code coverage + CHECK_THROWS_AS(parser_helper("\uFF01"), json::parse_error&); + CHECK_THROWS_AS(parser_helper("[-4:1,]"), json::parse_error&); + // unescaped control characters + CHECK_THROWS_WITH_AS(parser_helper("\"\x00\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: missing closing quote; last read: '\"'", json::parse_error&); // NOLINT(bugprone-string-literal-with-embedded-nul) + CHECK_THROWS_WITH_AS(parser_helper("\"\x01\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0001 (SOH) must be escaped to \\u0001; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x02\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0002 (STX) must be escaped to \\u0002; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x03\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0003 (ETX) must be escaped to \\u0003; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x04\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0004 (EOT) must be escaped to \\u0004; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x05\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0005 (ENQ) must be escaped to \\u0005; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x06\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0006 (ACK) must be escaped to \\u0006; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x07\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0007 (BEL) must be escaped to \\u0007; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x08\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0008 (BS) must be escaped to \\u0008 or \\b; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x09\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0a\""), "[json.exception.parse_error.101] parse error at line 2, column 0: syntax error while parsing value - invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0b\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000B (VT) must be escaped to \\u000B; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0c\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000C (FF) must be escaped to \\u000C or \\f; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0d\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000D (CR) must be escaped to \\u000D or \\r; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0e\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000E (SO) must be escaped to \\u000E; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x0f\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+000F (SI) must be escaped to \\u000F; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x10\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0010 (DLE) must be escaped to \\u0010; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x11\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0011 (DC1) must be escaped to \\u0011; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x12\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0012 (DC2) must be escaped to \\u0012; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x13\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0013 (DC3) must be escaped to \\u0013; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x14\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0014 (DC4) must be escaped to \\u0014; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x15\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0015 (NAK) must be escaped to \\u0015; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x16\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0016 (SYN) must be escaped to \\u0016; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x17\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0017 (ETB) must be escaped to \\u0017; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x18\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0018 (CAN) must be escaped to \\u0018; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x19\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0019 (EM) must be escaped to \\u0019; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1a\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001A (SUB) must be escaped to \\u001A; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1b\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001B (ESC) must be escaped to \\u001B; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1c\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001C (FS) must be escaped to \\u001C; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1d\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001D (GS) must be escaped to \\u001D; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1e\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001E (RS) must be escaped to \\u001E; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\x1f\""), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+001F (US) must be escaped to \\u001F; last read: '\"'", json::parse_error&); + + SECTION("additional test for null byte") + { + // The test above for the null byte is wrong, because passing + // a string to the parser only reads int until it encounters + // a null byte. This test inserts the null byte later on and + // uses an iterator range. + std::string s = "\"1\""; + s[1] = '\0'; + json _; + CHECK_THROWS_WITH_AS(_ = json::parse(s.begin(), s.end()), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0000 (NUL) must be escaped to \\u0000; last read: '\"'", json::parse_error&); + } + } + + SECTION("escaped") + { + // quotation mark "\"" + auto r1 = R"("\"")"_json; + CHECK(parser_helper("\"\\\"\"") == r1); + // reverse solidus "\\" + auto r2 = R"("\\")"_json; + CHECK(parser_helper("\"\\\\\"") == r2); + // solidus + CHECK(parser_helper("\"\\/\"") == R"("/")"_json); + // backspace + CHECK(parser_helper("\"\\b\"") == json("\b")); + // formfeed + CHECK(parser_helper("\"\\f\"") == json("\f")); + // newline + CHECK(parser_helper("\"\\n\"") == json("\n")); + // carriage return + CHECK(parser_helper("\"\\r\"") == json("\r")); + // horizontal tab + CHECK(parser_helper("\"\\t\"") == json("\t")); + + CHECK(parser_helper("\"\\u0001\"").get() == "\x01"); + CHECK(parser_helper("\"\\u000a\"").get() == "\n"); + CHECK(parser_helper("\"\\u00b0\"").get() == "°"); + CHECK(parser_helper("\"\\u0c00\"").get() == "ఀ"); + CHECK(parser_helper("\"\\ud000\"").get() == "퀀"); + CHECK(parser_helper("\"\\u000E\"").get() == "\x0E"); + CHECK(parser_helper("\"\\u00F0\"").get() == "ð"); + CHECK(parser_helper("\"\\u0100\"").get() == "Ā"); + CHECK(parser_helper("\"\\u2000\"").get() == " "); + CHECK(parser_helper("\"\\uFFFF\"").get() == "￿"); + CHECK(parser_helper("\"\\u20AC\"").get() == "€"); + CHECK(parser_helper("\"€\"").get() == "€"); + CHECK(parser_helper("\"🎈\"").get() == "🎈"); + + CHECK(parser_helper("\"\\ud80c\\udc60\"").get() == "\xf0\x93\x81\xa0"); + CHECK(parser_helper("\"\\ud83c\\udf1e\"").get() == "🌞"); + } + } + + SECTION("number") + { + SECTION("integers") + { + SECTION("without exponent") + { + CHECK(parser_helper("-128") == json(-128)); + CHECK(parser_helper("-0") == json(-0)); + CHECK(parser_helper("0") == json(0)); + CHECK(parser_helper("128") == json(128)); + } + + SECTION("with exponent") + { + CHECK(parser_helper("0e1") == json(0e1)); + CHECK(parser_helper("0E1") == json(0e1)); + + CHECK(parser_helper("10000E-4") == json(10000e-4)); + CHECK(parser_helper("10000E-3") == json(10000e-3)); + CHECK(parser_helper("10000E-2") == json(10000e-2)); + CHECK(parser_helper("10000E-1") == json(10000e-1)); + CHECK(parser_helper("10000E0") == json(10000e0)); + CHECK(parser_helper("10000E1") == json(10000e1)); + CHECK(parser_helper("10000E2") == json(10000e2)); + CHECK(parser_helper("10000E3") == json(10000e3)); + CHECK(parser_helper("10000E4") == json(10000e4)); + + CHECK(parser_helper("10000e-4") == json(10000e-4)); + CHECK(parser_helper("10000e-3") == json(10000e-3)); + CHECK(parser_helper("10000e-2") == json(10000e-2)); + CHECK(parser_helper("10000e-1") == json(10000e-1)); + CHECK(parser_helper("10000e0") == json(10000e0)); + CHECK(parser_helper("10000e1") == json(10000e1)); + CHECK(parser_helper("10000e2") == json(10000e2)); + CHECK(parser_helper("10000e3") == json(10000e3)); + CHECK(parser_helper("10000e4") == json(10000e4)); + + CHECK(parser_helper("-0e1") == json(-0e1)); + CHECK(parser_helper("-0E1") == json(-0e1)); + CHECK(parser_helper("-0E123") == json(-0e123)); + + // numbers after exponent + CHECK(parser_helper("10E0") == json(10e0)); + CHECK(parser_helper("10E1") == json(10e1)); + CHECK(parser_helper("10E2") == json(10e2)); + CHECK(parser_helper("10E3") == json(10e3)); + CHECK(parser_helper("10E4") == json(10e4)); + CHECK(parser_helper("10E5") == json(10e5)); + CHECK(parser_helper("10E6") == json(10e6)); + CHECK(parser_helper("10E7") == json(10e7)); + CHECK(parser_helper("10E8") == json(10e8)); + CHECK(parser_helper("10E9") == json(10e9)); + CHECK(parser_helper("10E+0") == json(10e0)); + CHECK(parser_helper("10E+1") == json(10e1)); + CHECK(parser_helper("10E+2") == json(10e2)); + CHECK(parser_helper("10E+3") == json(10e3)); + CHECK(parser_helper("10E+4") == json(10e4)); + CHECK(parser_helper("10E+5") == json(10e5)); + CHECK(parser_helper("10E+6") == json(10e6)); + CHECK(parser_helper("10E+7") == json(10e7)); + CHECK(parser_helper("10E+8") == json(10e8)); + CHECK(parser_helper("10E+9") == json(10e9)); + CHECK(parser_helper("10E-1") == json(10e-1)); + CHECK(parser_helper("10E-2") == json(10e-2)); + CHECK(parser_helper("10E-3") == json(10e-3)); + CHECK(parser_helper("10E-4") == json(10e-4)); + CHECK(parser_helper("10E-5") == json(10e-5)); + CHECK(parser_helper("10E-6") == json(10e-6)); + CHECK(parser_helper("10E-7") == json(10e-7)); + CHECK(parser_helper("10E-8") == json(10e-8)); + CHECK(parser_helper("10E-9") == json(10e-9)); + } + + SECTION("edge cases") + { + // From RFC8259, Section 6: + // Note that when such software is used, numbers that are + // integers and are in the range [-(2**53)+1, (2**53)-1] + // are interoperable in the sense that implementations will + // agree exactly on their numeric values. + + // -(2**53)+1 + CHECK(parser_helper("-9007199254740991").get() == -9007199254740991); + // (2**53)-1 + CHECK(parser_helper("9007199254740991").get() == 9007199254740991); + } + + SECTION("over the edge cases") // issue #178 - Integer conversion to unsigned (incorrect handling of 64-bit integers) + { + // While RFC8259, Section 6 specifies a preference for support + // for ranges in range of IEEE 754-2008 binary64 (double precision) + // this does not accommodate 64-bit integers without loss of accuracy. + // As 64-bit integers are now widely used in software, it is desirable + // to expand support to the full 64 bit (signed and unsigned) range + // i.e. -(2**63) -> (2**64)-1. + + // -(2**63) ** Note: compilers see negative literals as negated positive numbers (hence the -1)) + CHECK(parser_helper("-9223372036854775808").get() == -9223372036854775807 - 1); + // (2**63)-1 + CHECK(parser_helper("9223372036854775807").get() == 9223372036854775807); + // (2**64)-1 + CHECK(parser_helper("18446744073709551615").get() == 18446744073709551615u); + } + } + + SECTION("floating-point") + { + SECTION("without exponent") + { + CHECK(parser_helper("-128.5") == json(-128.5)); + CHECK(parser_helper("0.999") == json(0.999)); + CHECK(parser_helper("128.5") == json(128.5)); + CHECK(parser_helper("-0.0") == json(-0.0)); + } + + SECTION("with exponent") + { + CHECK(parser_helper("-128.5E3") == json(-128.5E3)); + CHECK(parser_helper("-128.5E-3") == json(-128.5E-3)); + CHECK(parser_helper("-0.0e1") == json(-0.0e1)); + CHECK(parser_helper("-0.0E1") == json(-0.0e1)); + } + } + + SECTION("overflow") + { + // overflows during parsing yield an exception + CHECK_THROWS_WITH_AS(parser_helper("1.18973e+4932").empty(), "[json.exception.out_of_range.406] number overflow parsing '1.18973e+4932'", json::out_of_range&); + } + + SECTION("invalid numbers") + { + // numbers must not begin with "+" + CHECK_THROWS_AS(parser_helper("+1"), json::parse_error&); + CHECK_THROWS_AS(parser_helper("+0"), json::parse_error&); + + CHECK_THROWS_WITH_AS(parser_helper("01"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - unexpected number literal; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-01"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - unexpected number literal; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("--1"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid number; expected digit after '-'; last read: '--'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1."), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected digit after '.'; last read: '1.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1E"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1E-"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid number; expected digit after exponent sign; last read: '1E-'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1.E1"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected digit after '.'; last read: '1.E'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-1E"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '-1E'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0E#"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '-0E#'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0E-#"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid number; expected digit after exponent sign; last read: '-0E-#'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0#"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid literal; last read: '-0#'; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0.0:"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - unexpected ':'; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0.0Z"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid literal; last read: '-0.0Z'; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0E123:"), + "[json.exception.parse_error.101] parse error at line 1, column 7: syntax error while parsing value - unexpected ':'; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0e0-:"), + "[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid number; expected digit after '-'; last read: '-:'; expected end of input", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0e-:"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid number; expected digit after exponent sign; last read: '-0e-:'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0f"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: '-0f'; expected end of input", json::parse_error&); + } + } + } + + SECTION("accept") + { + SECTION("null") + { + CHECK(accept_helper("null")); + } + + SECTION("true") + { + CHECK(accept_helper("true")); + } + + SECTION("false") + { + CHECK(accept_helper("false")); + } + + SECTION("array") + { + SECTION("empty array") + { + CHECK(accept_helper("[]")); + CHECK(accept_helper("[ ]")); + } + + SECTION("nonempty array") + { + CHECK(accept_helper("[true, false, null]")); + } + } + + SECTION("object") + { + SECTION("empty object") + { + CHECK(accept_helper("{}")); + CHECK(accept_helper("{ }")); + } + + SECTION("nonempty object") + { + CHECK(accept_helper("{\"\": true, \"one\": 1, \"two\": null}")); + } + } + + SECTION("string") + { + // empty string + CHECK(accept_helper("\"\"")); + + SECTION("errors") + { + // error: tab in string + CHECK(accept_helper("\"\t\"") == false); + // error: newline in string + CHECK(accept_helper("\"\n\"") == false); + CHECK(accept_helper("\"\r\"") == false); + // error: backspace in string + CHECK(accept_helper("\"\b\"") == false); + // improve code coverage + CHECK(accept_helper("\uFF01") == false); + CHECK(accept_helper("[-4:1,]") == false); + // unescaped control characters + CHECK(accept_helper("\"\x00\"") == false); // NOLINT(bugprone-string-literal-with-embedded-nul) + CHECK(accept_helper("\"\x01\"") == false); + CHECK(accept_helper("\"\x02\"") == false); + CHECK(accept_helper("\"\x03\"") == false); + CHECK(accept_helper("\"\x04\"") == false); + CHECK(accept_helper("\"\x05\"") == false); + CHECK(accept_helper("\"\x06\"") == false); + CHECK(accept_helper("\"\x07\"") == false); + CHECK(accept_helper("\"\x08\"") == false); + CHECK(accept_helper("\"\x09\"") == false); + CHECK(accept_helper("\"\x0a\"") == false); + CHECK(accept_helper("\"\x0b\"") == false); + CHECK(accept_helper("\"\x0c\"") == false); + CHECK(accept_helper("\"\x0d\"") == false); + CHECK(accept_helper("\"\x0e\"") == false); + CHECK(accept_helper("\"\x0f\"") == false); + CHECK(accept_helper("\"\x10\"") == false); + CHECK(accept_helper("\"\x11\"") == false); + CHECK(accept_helper("\"\x12\"") == false); + CHECK(accept_helper("\"\x13\"") == false); + CHECK(accept_helper("\"\x14\"") == false); + CHECK(accept_helper("\"\x15\"") == false); + CHECK(accept_helper("\"\x16\"") == false); + CHECK(accept_helper("\"\x17\"") == false); + CHECK(accept_helper("\"\x18\"") == false); + CHECK(accept_helper("\"\x19\"") == false); + CHECK(accept_helper("\"\x1a\"") == false); + CHECK(accept_helper("\"\x1b\"") == false); + CHECK(accept_helper("\"\x1c\"") == false); + CHECK(accept_helper("\"\x1d\"") == false); + CHECK(accept_helper("\"\x1e\"") == false); + CHECK(accept_helper("\"\x1f\"") == false); + } + + SECTION("escaped") + { + // quotation mark "\"" + auto r1 = R"("\"")"_json; + CHECK(accept_helper("\"\\\"\"")); + // reverse solidus "\\" + auto r2 = R"("\\")"_json; + CHECK(accept_helper("\"\\\\\"")); + // solidus + CHECK(accept_helper("\"\\/\"")); + // backspace + CHECK(accept_helper("\"\\b\"")); + // formfeed + CHECK(accept_helper("\"\\f\"")); + // newline + CHECK(accept_helper("\"\\n\"")); + // carriage return + CHECK(accept_helper("\"\\r\"")); + // horizontal tab + CHECK(accept_helper("\"\\t\"")); + + CHECK(accept_helper("\"\\u0001\"")); + CHECK(accept_helper("\"\\u000a\"")); + CHECK(accept_helper("\"\\u00b0\"")); + CHECK(accept_helper("\"\\u0c00\"")); + CHECK(accept_helper("\"\\ud000\"")); + CHECK(accept_helper("\"\\u000E\"")); + CHECK(accept_helper("\"\\u00F0\"")); + CHECK(accept_helper("\"\\u0100\"")); + CHECK(accept_helper("\"\\u2000\"")); + CHECK(accept_helper("\"\\uFFFF\"")); + CHECK(accept_helper("\"\\u20AC\"")); + CHECK(accept_helper("\"€\"")); + CHECK(accept_helper("\"🎈\"")); + + CHECK(accept_helper("\"\\ud80c\\udc60\"")); + CHECK(accept_helper("\"\\ud83c\\udf1e\"")); + } + } + + SECTION("number") + { + SECTION("integers") + { + SECTION("without exponent") + { + CHECK(accept_helper("-128")); + CHECK(accept_helper("-0")); + CHECK(accept_helper("0")); + CHECK(accept_helper("128")); + } + + SECTION("with exponent") + { + CHECK(accept_helper("0e1")); + CHECK(accept_helper("0E1")); + + CHECK(accept_helper("10000E-4")); + CHECK(accept_helper("10000E-3")); + CHECK(accept_helper("10000E-2")); + CHECK(accept_helper("10000E-1")); + CHECK(accept_helper("10000E0")); + CHECK(accept_helper("10000E1")); + CHECK(accept_helper("10000E2")); + CHECK(accept_helper("10000E3")); + CHECK(accept_helper("10000E4")); + + CHECK(accept_helper("10000e-4")); + CHECK(accept_helper("10000e-3")); + CHECK(accept_helper("10000e-2")); + CHECK(accept_helper("10000e-1")); + CHECK(accept_helper("10000e0")); + CHECK(accept_helper("10000e1")); + CHECK(accept_helper("10000e2")); + CHECK(accept_helper("10000e3")); + CHECK(accept_helper("10000e4")); + + CHECK(accept_helper("-0e1")); + CHECK(accept_helper("-0E1")); + CHECK(accept_helper("-0E123")); + } + + SECTION("edge cases") + { + // From RFC8259, Section 6: + // Note that when such software is used, numbers that are + // integers and are in the range [-(2**53)+1, (2**53)-1] + // are interoperable in the sense that implementations will + // agree exactly on their numeric values. + + // -(2**53)+1 + CHECK(accept_helper("-9007199254740991")); + // (2**53)-1 + CHECK(accept_helper("9007199254740991")); + } + + SECTION("over the edge cases") // issue #178 - Integer conversion to unsigned (incorrect handling of 64-bit integers) + { + // While RFC8259, Section 6 specifies a preference for support + // for ranges in range of IEEE 754-2008 binary64 (double precision) + // this does not accommodate 64 bit integers without loss of accuracy. + // As 64 bit integers are now widely used in software, it is desirable + // to expand support to the full 64 bit (signed and unsigned) range + // i.e. -(2**63) -> (2**64)-1. + + // -(2**63) ** Note: compilers see negative literals as negated positive numbers (hence the -1)) + CHECK(accept_helper("-9223372036854775808")); + // (2**63)-1 + CHECK(accept_helper("9223372036854775807")); + // (2**64)-1 + CHECK(accept_helper("18446744073709551615")); + } + } + + SECTION("floating-point") + { + SECTION("without exponent") + { + CHECK(accept_helper("-128.5")); + CHECK(accept_helper("0.999")); + CHECK(accept_helper("128.5")); + CHECK(accept_helper("-0.0")); + } + + SECTION("with exponent") + { + CHECK(accept_helper("-128.5E3")); + CHECK(accept_helper("-128.5E-3")); + CHECK(accept_helper("-0.0e1")); + CHECK(accept_helper("-0.0E1")); + } + } + + SECTION("overflow") + { + // overflows during parsing + CHECK(!accept_helper("1.18973e+4932")); + } + + SECTION("invalid numbers") + { + CHECK(accept_helper("01") == false); + CHECK(accept_helper("--1") == false); + CHECK(accept_helper("1.") == false); + CHECK(accept_helper("1E") == false); + CHECK(accept_helper("1E-") == false); + CHECK(accept_helper("1.E1") == false); + CHECK(accept_helper("-1E") == false); + CHECK(accept_helper("-0E#") == false); + CHECK(accept_helper("-0E-#") == false); + CHECK(accept_helper("-0#") == false); + CHECK(accept_helper("-0.0:") == false); + CHECK(accept_helper("-0.0Z") == false); + CHECK(accept_helper("-0E123:") == false); + CHECK(accept_helper("-0e0-:") == false); + CHECK(accept_helper("-0e-:") == false); + CHECK(accept_helper("-0f") == false); + + // numbers must not begin with "+" + CHECK(accept_helper("+1") == false); + CHECK(accept_helper("+0") == false); + } + } + } + + SECTION("parse errors") + { + // unexpected end of number + CHECK_THROWS_WITH_AS(parser_helper("0."), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected digit after '.'; last read: '0.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid number; expected digit after '-'; last read: '-'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("--"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid number; expected digit after '-'; last read: '--'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-0."), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid number; expected digit after '.'; last read: '-0.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-."), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid number; expected digit after '-'; last read: '-.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("-:"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid number; expected digit after '-'; last read: '-:'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("0.:"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected digit after '.'; last read: '0.:'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("e."), + "[json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - invalid literal; last read: 'e'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1e."), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1e.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1e/"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1e/'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1e:"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1e:'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1E."), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E.'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1E/"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E/'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("1E:"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E:'", json::parse_error&); + + // unexpected end of null + CHECK_THROWS_WITH_AS(parser_helper("n"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid literal; last read: 'n'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("nu"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid literal; last read: 'nu'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("nul"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'nul'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("nulk"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'nulk'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("nulm"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'nulm'", json::parse_error&); + + // unexpected end of true + CHECK_THROWS_WITH_AS(parser_helper("t"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid literal; last read: 't'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("tr"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid literal; last read: 'tr'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("tru"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'tru'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("trud"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'trud'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("truf"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'truf'", json::parse_error&); + + // unexpected end of false + CHECK_THROWS_WITH_AS(parser_helper("f"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid literal; last read: 'f'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("fa"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid literal; last read: 'fa'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("fal"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid literal; last read: 'fal'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("fals"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid literal; last read: 'fals'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("falsd"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid literal; last read: 'falsd'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("falsf"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid literal; last read: 'falsf'", json::parse_error&); + + // missing/unexpected end of array + CHECK_THROWS_WITH_AS(parser_helper("["), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("[1"), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing array - unexpected end of input; expected ']'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("[1,"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("[1,]"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("]"), + "[json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal", json::parse_error&); + + // missing/unexpected end of object + CHECK_THROWS_WITH_AS(parser_helper("{"), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing object key - unexpected end of input; expected string literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("{\"foo\""), + "[json.exception.parse_error.101] parse error at line 1, column 7: syntax error while parsing object separator - unexpected end of input; expected ':'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("{\"foo\":"), + "[json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("{\"foo\":}"), + "[json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected '}'; expected '[', '{', or a literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("{\"foo\":1,}"), + "[json.exception.parse_error.101] parse error at line 1, column 10: syntax error while parsing object key - unexpected '}'; expected string literal", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("}"), + "[json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - unexpected '}'; expected '[', '{', or a literal", json::parse_error&); + + // missing/unexpected end of string + CHECK_THROWS_WITH_AS(parser_helper("\""), + "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: missing closing quote; last read: '\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\\""), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: missing closing quote; last read: '\"\\\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u\""), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u0\""), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u0\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u01\""), + "[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u01\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u012\""), + "[json.exception.parse_error.101] parse error at line 1, column 7: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u012\"'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u"), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u0"), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u0'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u01"), + "[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u01'", json::parse_error&); + CHECK_THROWS_WITH_AS(parser_helper("\"\\u012"), + "[json.exception.parse_error.101] parse error at line 1, column 7: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u012'", json::parse_error&); + + // invalid escapes + for (int c = 1; c < 128; ++c) + { + auto s = std::string("\"\\") + std::string(1, static_cast(c)) + "\""; + + switch (c) + { + // valid escapes + case ('"'): + case ('\\'): + case ('/'): + case ('b'): + case ('f'): + case ('n'): + case ('r'): + case ('t'): + { + CHECK_NOTHROW(parser_helper(s)); + break; + } + + // \u must be followed with four numbers, so we skip it here + case ('u'): + { + break; + } + + // any other combination of backslash and character is invalid + default: + { + CHECK_THROWS_AS(parser_helper(s), json::parse_error&); + // only check error message if c is not a control character + if (c > 0x1f) + { + CHECK_THROWS_WITH_STD_STR(parser_helper(s), + "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid string: forbidden character after backslash; last read: '\"\\" + std::string(1, static_cast(c)) + "'"); + } + break; + } + } + } + + // invalid \uxxxx escapes + { + // check whether character is a valid hex character + const auto valid = [](int c) + { + switch (c) + { + case ('0'): + case ('1'): + case ('2'): + case ('3'): + case ('4'): + case ('5'): + case ('6'): + case ('7'): + case ('8'): + case ('9'): + case ('a'): + case ('b'): + case ('c'): + case ('d'): + case ('e'): + case ('f'): + case ('A'): + case ('B'): + case ('C'): + case ('D'): + case ('E'): + case ('F'): + { + return true; + } + + default: + { + return false; + } + } + }; + + for (int c = 1; c < 128; ++c) + { + std::string const s = "\"\\u"; + + // create a string with the iterated character at each position + auto s1 = s + "000" + std::string(1, static_cast(c)) + "\""; + auto s2 = s + "00" + std::string(1, static_cast(c)) + "0\""; + auto s3 = s + "0" + std::string(1, static_cast(c)) + "00\""; + auto s4 = s + std::string(1, static_cast(c)) + "000\""; + + if (valid(c)) + { + CAPTURE(s1) + CHECK_NOTHROW(parser_helper(s1)); + CAPTURE(s2) + CHECK_NOTHROW(parser_helper(s2)); + CAPTURE(s3) + CHECK_NOTHROW(parser_helper(s3)); + CAPTURE(s4) + CHECK_NOTHROW(parser_helper(s4)); + } + else + { + CAPTURE(s1) + CHECK_THROWS_AS(parser_helper(s1), json::parse_error&); + // only check error message if c is not a control character + if (c > 0x1f) + { + CHECK_THROWS_WITH_STD_STR(parser_helper(s1), + "[json.exception.parse_error.101] parse error at line 1, column 7: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '" + s1.substr(0, 7) + "'"); + } + + CAPTURE(s2) + CHECK_THROWS_AS(parser_helper(s2), json::parse_error&); + // only check error message if c is not a control character + if (c > 0x1f) + { + CHECK_THROWS_WITH_STD_STR(parser_helper(s2), + "[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '" + s2.substr(0, 6) + "'"); + } + + CAPTURE(s3) + CHECK_THROWS_AS(parser_helper(s3), json::parse_error&); + // only check error message if c is not a control character + if (c > 0x1f) + { + CHECK_THROWS_WITH_STD_STR(parser_helper(s3), + "[json.exception.parse_error.101] parse error at line 1, column 5: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '" + s3.substr(0, 5) + "'"); + } + + CAPTURE(s4) + CHECK_THROWS_AS(parser_helper(s4), json::parse_error&); + // only check error message if c is not a control character + if (c > 0x1f) + { + CHECK_THROWS_WITH_STD_STR(parser_helper(s4), + "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '" + s4.substr(0, 4) + "'"); + } + } + } + } + + json _; + + // missing part of a surrogate pair + CHECK_THROWS_WITH_AS(_ = json::parse("\"\\uD80C\""), "[json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF; last read: '\"\\uD80C\"'", json::parse_error&); + // invalid surrogate pair + CHECK_THROWS_WITH_AS(_ = json::parse("\"\\uD80C\\uD80C\""), + "[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF; last read: '\"\\uD80C\\uD80C'", json::parse_error&); + CHECK_THROWS_WITH_AS(_ = json::parse("\"\\uD80C\\u0000\""), + "[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF; last read: '\"\\uD80C\\u0000'", json::parse_error&); + CHECK_THROWS_WITH_AS(_ = json::parse("\"\\uD80C\\uFFFF\""), + "[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF; last read: '\"\\uD80C\\uFFFF'", json::parse_error&); + } + + SECTION("parse errors (accept)") + { + // unexpected end of number + CHECK(accept_helper("0.") == false); + CHECK(accept_helper("-") == false); + CHECK(accept_helper("--") == false); + CHECK(accept_helper("-0.") == false); + CHECK(accept_helper("-.") == false); + CHECK(accept_helper("-:") == false); + CHECK(accept_helper("0.:") == false); + CHECK(accept_helper("e.") == false); + CHECK(accept_helper("1e.") == false); + CHECK(accept_helper("1e/") == false); + CHECK(accept_helper("1e:") == false); + CHECK(accept_helper("1E.") == false); + CHECK(accept_helper("1E/") == false); + CHECK(accept_helper("1E:") == false); + + // unexpected end of null + CHECK(accept_helper("n") == false); + CHECK(accept_helper("nu") == false); + CHECK(accept_helper("nul") == false); + + // unexpected end of true + CHECK(accept_helper("t") == false); + CHECK(accept_helper("tr") == false); + CHECK(accept_helper("tru") == false); + + // unexpected end of false + CHECK(accept_helper("f") == false); + CHECK(accept_helper("fa") == false); + CHECK(accept_helper("fal") == false); + CHECK(accept_helper("fals") == false); + + // missing/unexpected end of array + CHECK(accept_helper("[") == false); + CHECK(accept_helper("[1") == false); + CHECK(accept_helper("[1,") == false); + CHECK(accept_helper("[1,]") == false); + CHECK(accept_helper("]") == false); + + // missing/unexpected end of object + CHECK(accept_helper("{") == false); + CHECK(accept_helper("{\"foo\"") == false); + CHECK(accept_helper("{\"foo\":") == false); + CHECK(accept_helper("{\"foo\":}") == false); + CHECK(accept_helper("{\"foo\":1,}") == false); + CHECK(accept_helper("}") == false); + + // missing/unexpected end of string + CHECK(accept_helper("\"") == false); + CHECK(accept_helper("\"\\\"") == false); + CHECK(accept_helper("\"\\u\"") == false); + CHECK(accept_helper("\"\\u0\"") == false); + CHECK(accept_helper("\"\\u01\"") == false); + CHECK(accept_helper("\"\\u012\"") == false); + CHECK(accept_helper("\"\\u") == false); + CHECK(accept_helper("\"\\u0") == false); + CHECK(accept_helper("\"\\u01") == false); + CHECK(accept_helper("\"\\u012") == false); + + // unget of newline + CHECK(parser_helper("\n123\n") == 123); + + // invalid escapes + for (int c = 1; c < 128; ++c) + { + auto s = std::string("\"\\") + std::string(1, static_cast(c)) + "\""; + + switch (c) + { + // valid escapes + case ('"'): + case ('\\'): + case ('/'): + case ('b'): + case ('f'): + case ('n'): + case ('r'): + case ('t'): + { + CHECK(json::parser(nlohmann::detail::input_adapter(s)).accept()); + break; + } + + // \u must be followed with four numbers, so we skip it here + case ('u'): + { + break; + } + + // any other combination of backslash and character is invalid + default: + { + CHECK(json::parser(nlohmann::detail::input_adapter(s)).accept() == false); + break; + } + } + } + + // invalid \uxxxx escapes + { + // check whether character is a valid hex character + const auto valid = [](int c) + { + switch (c) + { + case ('0'): + case ('1'): + case ('2'): + case ('3'): + case ('4'): + case ('5'): + case ('6'): + case ('7'): + case ('8'): + case ('9'): + case ('a'): + case ('b'): + case ('c'): + case ('d'): + case ('e'): + case ('f'): + case ('A'): + case ('B'): + case ('C'): + case ('D'): + case ('E'): + case ('F'): + { + return true; + } + + default: + { + return false; + } + } + }; + + for (int c = 1; c < 128; ++c) + { + std::string const s = "\"\\u"; + + // create a string with the iterated character at each position + const auto s1 = s + "000" + std::string(1, static_cast(c)) + "\""; + const auto s2 = s + "00" + std::string(1, static_cast(c)) + "0\""; + const auto s3 = s + "0" + std::string(1, static_cast(c)) + "00\""; + const auto s4 = s + std::string(1, static_cast(c)) + "000\""; + + if (valid(c)) + { + CAPTURE(s1) + CHECK(json::parser(nlohmann::detail::input_adapter(s1)).accept()); + CAPTURE(s2) + CHECK(json::parser(nlohmann::detail::input_adapter(s2)).accept()); + CAPTURE(s3) + CHECK(json::parser(nlohmann::detail::input_adapter(s3)).accept()); + CAPTURE(s4) + CHECK(json::parser(nlohmann::detail::input_adapter(s4)).accept()); + } + else + { + CAPTURE(s1) + CHECK(json::parser(nlohmann::detail::input_adapter(s1)).accept() == false); + + CAPTURE(s2) + CHECK(json::parser(nlohmann::detail::input_adapter(s2)).accept() == false); + + CAPTURE(s3) + CHECK(json::parser(nlohmann::detail::input_adapter(s3)).accept() == false); + + CAPTURE(s4) + CHECK(json::parser(nlohmann::detail::input_adapter(s4)).accept() == false); + } + } + } + + // missing part of a surrogate pair + CHECK(accept_helper("\"\\uD80C\"") == false); + // invalid surrogate pair + CHECK(accept_helper("\"\\uD80C\\uD80C\"") == false); + CHECK(accept_helper("\"\\uD80C\\u0000\"") == false); + CHECK(accept_helper("\"\\uD80C\\uFFFF\"") == false); + } + + SECTION("tests found by mutate++") + { + // test case to make sure no comma precedes the first key + CHECK_THROWS_WITH_AS(parser_helper("{,\"key\": false}"), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing object key - unexpected ','; expected string literal", json::parse_error&); + // test case to make sure an object is properly closed + CHECK_THROWS_WITH_AS(parser_helper("[{\"key\": false true]"), "[json.exception.parse_error.101] parse error at line 1, column 19: syntax error while parsing object - unexpected true literal; expected '}'", json::parse_error&); + + // test case to make sure the callback is properly evaluated after reading a key + { + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t event, json& /*unused*/) noexcept + { + return event != json::parse_event_t::key; + }; + + json x = json::parse("{\"key\": false}", cb); + CHECK(x == json::object()); + } + } + + SECTION("callback function") + { + const auto* s_object = R"( + { + "foo": 2, + "bar": { + "baz": 1 + } + } + )"; + + const auto* s_array = R"( + [1,2,[3,4,5],4,5] + )"; + + const auto* structured_array = R"( + [ + 1, + { + "foo": "bar" + }, + { + "qux": "baz" + } + ] + )"; + + SECTION("filter nothing") + { + json j_object = json::parse(s_object, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + { + return true; + }); + + CHECK (j_object == json({{"foo", 2}, {"bar", {{"baz", 1}}}})); + + json j_array = json::parse(s_array, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + { + return true; + }); + + CHECK (j_array == json({1, 2, {3, 4, 5}, 4, 5})); + } + + SECTION("filter everything") + { + json const j_object = json::parse(s_object, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + { + return false; + }); + + // the top-level object will be discarded, leaving a null + CHECK (j_object.is_null()); + + json const j_array = json::parse(s_array, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + { + return false; + }); + + // the top-level array will be discarded, leaving a null + CHECK (j_array.is_null()); + } + + SECTION("filter specific element") + { + json j_object = json::parse(s_object, [](int /*unused*/, json::parse_event_t event, const json & j) noexcept + { + // filter all number(2) elements + return event != json::parse_event_t::value || j != json(2); + }); + + CHECK (j_object == json({{"bar", {{"baz", 1}}}})); + + json j_array = json::parse(s_array, [](int /*unused*/, json::parse_event_t event, const json & j) noexcept + { + return event != json::parse_event_t::value || j != json(2); + }); + + CHECK (j_array == json({1, {3, 4, 5}, 4, 5})); + } + + SECTION("filter object in array") + { + json j_filtered1 = json::parse(structured_array, [](int /*unused*/, json::parse_event_t e, const json & parsed) + { + return !(e == json::parse_event_t::object_end && parsed.contains("foo")); + }); + + // the specified object will be discarded, and removed. + CHECK (j_filtered1.size() == 2); + CHECK (j_filtered1 == json({1, {{"qux", "baz"}}})); + + json j_filtered2 = json::parse(structured_array, [](int /*unused*/, json::parse_event_t e, const json& /*parsed*/) noexcept + { + return e != json::parse_event_t::object_end; + }); + + // removed all objects in array. + CHECK (j_filtered2.size() == 1); + CHECK (j_filtered2 == json({1})); + } + + SECTION("filter specific events") + { + SECTION("first closing event") + { + { + json j_object = json::parse(s_object, [](int /*unused*/, json::parse_event_t e, const json& /*unused*/) noexcept + { + static bool first = true; + if (e == json::parse_event_t::object_end && first) + { + first = false; + return false; + } + + return true; + }); + + // the first completed object will be discarded + CHECK (j_object == json({{"foo", 2}})); + } + + { + json j_array = json::parse(s_array, [](int /*unused*/, json::parse_event_t e, const json& /*unused*/) noexcept + { + static bool first = true; + if (e == json::parse_event_t::array_end && first) + { + first = false; + return false; + } + + return true; + }); + + // the first completed array will be discarded + CHECK (j_array == json({1, 2, 4, 5})); + } + } + } + + SECTION("special cases") + { + // the following test cases cover the situation in which an empty + // object and array is discarded only after the closing character + // has been read + + json j_empty_object = json::parse("{}", [](int /*unused*/, json::parse_event_t e, const json& /*unused*/) noexcept + { + return e != json::parse_event_t::object_end; + }); + CHECK(j_empty_object == json()); + + json j_empty_array = json::parse("[]", [](int /*unused*/, json::parse_event_t e, const json& /*unused*/) noexcept + { + return e != json::parse_event_t::array_end; + }); + CHECK(j_empty_array == json()); + } + } + + SECTION("constructing from contiguous containers") + { + SECTION("from std::vector") + { + std::vector v = {'t', 'r', 'u', 'e'}; + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + + SECTION("from std::array") + { + std::array v { {'t', 'r', 'u', 'e'} }; + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + + SECTION("from array") + { + uint8_t v[] = {'t', 'r', 'u', 'e'}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + + SECTION("from char literal") + { + CHECK(parser_helper("true") == json(true)); + } + + SECTION("from std::string") + { + std::string v = {'t', 'r', 'u', 'e'}; + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + + SECTION("from std::initializer_list") + { + std::initializer_list const v = {'t', 'r', 'u', 'e'}; + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + + SECTION("from std::valarray") + { + std::valarray v = {'t', 'r', 'u', 'e'}; + json j; + json::parser(nlohmann::detail::input_adapter(std::begin(v), std::end(v))).parse(true, j); + CHECK(j == json(true)); + } + } + + SECTION("improve test coverage") + { + SECTION("parser with callback") + { + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t /*unused*/, json& /*unused*/) noexcept + { + return true; + }; + + CHECK(json::parse("{\"foo\": true:", cb, false).is_discarded()); + + json _; + CHECK_THROWS_WITH_AS(_ = json::parse("{\"foo\": true:", cb), "[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing object - unexpected ':'; expected '}'", json::parse_error&); + + CHECK_THROWS_WITH_AS(_ = json::parse("1.18973e+4932", cb), "[json.exception.out_of_range.406] number overflow parsing '1.18973e+4932'", json::out_of_range&); + } + + SECTION("SAX parser") + { + SECTION("} without value") + { + SaxCountdown s(1); + CHECK(json::sax_parse("{}", &s) == false); + } + + SECTION("} with value") + { + SaxCountdown s(3); + CHECK(json::sax_parse("{\"k1\": true}", &s) == false); + } + + SECTION("second key") + { + SaxCountdown s(3); + CHECK(json::sax_parse("{\"k1\": true, \"k2\": false}", &s) == false); + } + + SECTION("] without value") + { + SaxCountdown s(1); + CHECK(json::sax_parse("[]", &s) == false); + } + + SECTION("] with value") + { + SaxCountdown s(2); + CHECK(json::sax_parse("[1]", &s) == false); + } + + SECTION("float") + { + SaxCountdown s(0); + CHECK(json::sax_parse("3.14", &s) == false); + } + + SECTION("false") + { + SaxCountdown s(0); + CHECK(json::sax_parse("false", &s) == false); + } + + SECTION("null") + { + SaxCountdown s(0); + CHECK(json::sax_parse("null", &s) == false); + } + + SECTION("true") + { + SaxCountdown s(0); + CHECK(json::sax_parse("true", &s) == false); + } + + SECTION("unsigned") + { + SaxCountdown s(0); + CHECK(json::sax_parse("12", &s) == false); + } + + SECTION("integer") + { + SaxCountdown s(0); + CHECK(json::sax_parse("-12", &s) == false); + } + + SECTION("string") + { + SaxCountdown s(0); + CHECK(json::sax_parse("\"foo\"", &s) == false); + } + } + } + + SECTION("error messages for comments") + { + json _; + CHECK_THROWS_WITH_AS(_ = json::parse("/a", nullptr, true, true), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid comment; expecting '/' or '*' after '/'; last read: '/a'", json::parse_error); + CHECK_THROWS_WITH_AS(_ = json::parse("/*", nullptr, true, true), "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid comment; missing closing '*/'; last read: '/*'", json::parse_error); + } + + // Macro for all test cases for start_pos and end_pos +#define SETUP_TESTCASES() \ + SECTION("with callback") \ + { \ + SECTION("filter nothing") \ + { \ + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t /*unused*/, json& /*unused*/) noexcept \ + { \ + return true; \ + }; \ + validate_start_end_pos_for_nested_obj_helper(nested_type_json_str, root_type_json_str, expected, cb); \ + } \ + SECTION("filter element") \ + { \ + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t event, json& j) noexcept \ + { \ + return (event != json::parse_event_t::key && event != json::parse_event_t::value) || j != json("a"); \ + }; \ + validate_start_end_pos_for_nested_obj_helper(nested_type_json_str, root_type_json_str, filteredExpected, cb); \ + } \ + } \ + SECTION("without callback") \ + { \ + validate_start_end_pos_for_nested_obj_helper(nested_type_json_str, root_type_json_str, expected); \ + } + + SECTION("retrieve start position and end position") + { + SECTION("for object") + { + // Create an object with spaces to test the start and end positions. Spaces will not be included in the + // JSON object, however, the start and end positions should include the spaces from the input JSON string. + const std::string nested_type_json_str = R"({ "a": 1,"b" : "test1"})"; + const std::string root_type_json_str = R"({ "nested": )" + nested_type_json_str + R"(, "anotherValue": "test2"})"; + auto expected = json({{"nested", {{"a", 1}, {"b", "test1"}}}, {"anotherValue", "test2"}}); + auto filteredExpected = expected; + filteredExpected["nested"].erase("a"); + + SETUP_TESTCASES() + } + + SECTION("for array") + { + const std::string nested_type_json_str = R"(["a", "test", 45])"; + const std::string root_type_json_str = R"({ "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", {"a", "test", 45}}, {"anotherValue", "test"}}); + auto filteredExpected = expected; + filteredExpected["nested"] = json({"test", 45}); + SETUP_TESTCASES() + } + + SECTION("for array with objects") + { + const std::string nested_type_json_str = R"([{"a": 1, "b": "test"}, {"c": 2, "d": "test2"}])"; + const std::string root_type_json_str = R"({ "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", {{{"a", 1}, {"b", "test"}}, {{"c", 2}, {"d", "test2"}}}}, {"anotherValue", "test"}}); + auto filteredExpected = expected; + filteredExpected["nested"][0].erase("a"); + SETUP_TESTCASES() + + auto j = json::parse(root_type_json_str); + auto nested_array = j["nested"]; + const auto& nested_obj = nested_array[0]; + CHECK(nested_type_json_str.substr(1, 21) == root_type_json_str.substr(nested_obj.start_pos(), nested_obj.end_pos() - nested_obj.start_pos())); + CHECK(nested_type_json_str.substr(24, 22) == root_type_json_str.substr(nested_array[1].start_pos(), nested_array[1].end_pos() - nested_array[1].start_pos())); + } + + SECTION("for two levels of nesting objects") + { + const std::string nested_type_json_str = R"({"nested2": {"b": "test"}})"; + const std::string root_type_json_str = R"({ "a": 2, "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"a", 2}, {"nested", {{"nested2", {{"b", "test"}}}}}, {"anotherValue", "test"}}); + auto filteredExpected = expected; + filteredExpected.erase("a"); + SETUP_TESTCASES() + + auto j = json::parse(root_type_json_str); + auto nested_obj = j["nested"]["nested2"]; + CHECK(nested_type_json_str.substr(12, 13) == root_type_json_str.substr(nested_obj.start_pos(), nested_obj.end_pos() - nested_obj.start_pos())); + } + + SECTION("for simple types") + { + SECTION("no nested") + { + SECTION("with callback") + { + json::parser_callback_t const cb = [](int /*unused*/, json::parse_event_t /*unused*/, json& /*unused*/) noexcept + { + return true; + }; + + // 1. string type + std::string json_str = R"("test")"; + auto j = json::parse(json_str, cb); + validate_generated_json_and_start_end_pos_helper(json_str, j, "test"); + + // 2. number type + json_str = R"(1)"; + j = json::parse(json_str, cb); + validate_generated_json_and_start_end_pos_helper(json_str, j, 1); + + // 3. boolean type + json_str = R"(true)"; + j = json::parse(json_str, cb); + validate_generated_json_and_start_end_pos_helper(json_str, j, true); + + // 4. null type + json_str = R"(null)"; + j = json::parse(json_str, cb); + validate_generated_json_and_start_end_pos_helper(json_str, j, nullptr); + } + + SECTION("without callback") + { + // 1. string type + std::string json_str = R"("test")"; + auto j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, "test"); + + // 2. number type + json_str = R"(1)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, 1); + + json_str = R"(1.001239923)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, 1.001239923); + + json_str = R"(1.123812389000000)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, 1.123812389); + + // 3. boolean type + json_str = R"(true)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, true); + + json_str = R"(false)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, false); + + // 4. null type + json_str = R"(null)"; + j = json::parse(json_str); + validate_generated_json_and_start_end_pos_helper(json_str, j, nullptr); + } + } + + SECTION("string type") + { + const std::string nested_type_json_str = R"("test")"; + const std::string root_type_json_str = R"({ "a": 1, "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", "test"}, {"anotherValue", "test"}, {"a", 1}}); + auto filteredExpected = expected; + filteredExpected.erase("a"); + SETUP_TESTCASES() + } + + SECTION("number type") + { + const std::string nested_type_json_str = R"(2)"; + const std::string root_type_json_str = R"({ "a": 1, "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", 2}, {"anotherValue", "test"}, {"a", 1}}); + auto filteredExpected = expected; + filteredExpected.erase("a"); + SETUP_TESTCASES() + } + + SECTION("boolean type") + { + const std::string nested_type_json_str = R"(true)"; + const std::string root_type_json_str = R"({ "a": 1, "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", true}, {"anotherValue", "test"}, {"a", 1}}); + auto filteredExpected = expected; + filteredExpected.erase("a"); + SETUP_TESTCASES() + } + + SECTION("null type") + { + const std::string nested_type_json_str = R"(null)"; + const std::string root_type_json_str = R"({ "a": 1, "nested": )" + nested_type_json_str + R"(, "anotherValue": "test" })"; + auto expected = json({{"nested", nullptr}, {"anotherValue", "test"}, {"a", 1}}); + auto filteredExpected = expected; + filteredExpected.erase("a"); + SETUP_TESTCASES() + } + } + SECTION("with leading whitespace and newlines around root JSON") + { + const std::string initial_whitespace = R"( + + )"; + const std::string nested_type_json_str = R"({ + "a": 1, + "nested": { + "b": "test" + }, + "anotherValue": "test" + })"; + const std::string end_whitespace = R"( + + )"; + const std::string root_type_json_str = initial_whitespace + nested_type_json_str + end_whitespace; + + auto expected = json({{"a", 1}, {"nested", {{"b", "test"}}}, {"anotherValue", "test"}}); + + auto j = json::parse(root_type_json_str); + + // 2. Check if the generated JSON is as expected + CHECK(j == expected); + + // 3. Check if the start and end positions do not include the surrounding whitespace + CHECK(j.start_pos() == initial_whitespace.size()); + CHECK(j.end_pos() == root_type_json_str.size() - end_whitespace.size()); + } + } +} diff --git a/tests/src/unit-comparison.cpp b/tests/src/unit-comparison.cpp index 7df20486..84d3e181 100644 --- a/tests/src/unit-comparison.cpp +++ b/tests/src/unit-comparison.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT // cmake/test.cmake selects the C++ standard versions with which to build a diff --git a/tests/src/unit-concepts.cpp b/tests/src/unit-concepts.cpp index e0429918..67d6a285 100644 --- a/tests/src/unit-concepts.cpp +++ b/tests/src/unit-concepts.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -20,7 +20,6 @@ TEST_CASE("concepts") // a, b: values of type X: json // TABLE 96 - Container Requirements - // X::value_type must return T CHECK((std::is_same::value)); diff --git a/tests/src/unit-constructor1.cpp b/tests/src/unit-constructor1.cpp index bbd57605..2a424715 100644 --- a/tests/src/unit-constructor1.cpp +++ b/tests/src/unit-constructor1.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-constructor2.cpp b/tests/src/unit-constructor2.cpp index 85a91ff9..18d0fdcc 100644 --- a/tests/src/unit-constructor2.cpp +++ b/tests/src/unit-constructor2.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-convenience.cpp b/tests/src/unit-convenience.cpp index 34bbb02c..04e5aaed 100644 --- a/tests/src/unit-convenience.cpp +++ b/tests/src/unit-convenience.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -55,7 +55,7 @@ struct alt_string_iter return *this; } - std::string impl{}; + std::string impl{}; // NOLINT(readability-redundant-member-init) }; struct alt_string_data @@ -91,7 +91,7 @@ struct alt_string_data return *this; } - std::string impl{}; + std::string impl{}; // NOLINT(readability-redundant-member-init) }; void check_escaped(const char* original, const char* escaped = "", bool ensure_ascii = false); diff --git a/tests/src/unit-conversions.cpp b/tests/src/unit-conversions.cpp index d7df0bee..93a31fc9 100644 --- a/tests/src/unit-conversions.cpp +++ b/tests/src/unit-conversions.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT // cmake/test.cmake selects the C++ standard versions with which to build a @@ -16,6 +15,11 @@ #include "doctest_compatibility.h" +// skip tests if JSON_DisableEnumSerialization=ON (#4384) +#if defined(JSON_DISABLE_ENUM_SERIALIZATION) && (JSON_DISABLE_ENUM_SERIALIZATION == 1) + #define SKIP_TESTS_FOR_ENUM_SERIALIZATION +#endif + #define JSON_TESTS_PRIVATE #include using nlohmann::json; @@ -32,6 +36,25 @@ using nlohmann::json; DOCTEST_CLANG_SUPPRESS_WARNING_PUSH DOCTEST_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors") +#if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 +#elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 +#endif + +#ifdef JSON_HAS_CPP_17 + #if __has_include() + #include + #elif __has_include() + #include + #endif +#endif + +#if defined(JSON_HAS_CPP_17) + #include +#endif + TEST_CASE("value conversion") { SECTION("get an object (explicit)") @@ -153,6 +176,7 @@ TEST_CASE("value conversion") } #if JSON_USE_IMPLICIT_CONVERSIONS + SECTION("get an object (implicit)") { const json::object_t o_reference = {{"object", json::object()}, @@ -344,6 +368,68 @@ TEST_CASE("value conversion") CHECK(std::equal(std::begin(nbs), std::end(nbs), std::begin(nbs2))); } + SECTION("built-in arrays: 2D") + { + const int nbs[][3] = {{0, 1, 2}, {3, 4, 5}}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + int nbs2[][3] = {{0, 0, 0}, {0, 0, 0}}; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + + const json j2 = nbs; + j2.get_to(nbs2); + CHECK(std::equal(std::begin(nbs[0]), std::end(nbs[1]), std::begin(nbs2[0]))); + } + + SECTION("built-in arrays: 3D") + { + // NOLINTBEGIN(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + const int nbs[][2][3] = {\ + {{0, 1, 2}, {3, 4, 5}}, \ + {{10, 11, 12}, {13, 14, 15}}\ + }; + int nbs2[][2][3] = {\ + {{0, 0, 0}, {0, 0, 0}}, \ + {{0, 0, 0}, {0, 0, 0}}\ + }; + // NOLINTEND(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + + const json j2 = nbs; + j2.get_to(nbs2); + CHECK(std::equal(std::begin(nbs[0][0]), std::end(nbs[1][1]), std::begin(nbs2[0][0]))); + } + + SECTION("built-in arrays: 4D") + { + // NOLINTBEGIN(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + const int nbs[][2][2][3] = {\ + { + \ + {{0, 1, 2}, {3, 4, 5}}, \ + {{10, 11, 12}, {13, 14, 15}}\ + }, \ + { + \ + {{20, 21, 22}, {23, 24, 25}}, \ + {{30, 31, 32}, {33, 34, 35}}\ + }\ + }; + int nbs2[][2][2][3] = {\ + { + \ + {{0, 0, 0}, {0, 0, 0}}, \ + {{0, 0, 0}, {0, 0, 0}}\ + }, \ + { + \ + {{0, 0, 0}, {0, 0, 0}}, \ + {{0, 0, 0}, {0, 0, 0}}\ + }\ + }; + // NOLINTEND(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) + + const json j2 = nbs; + j2.get_to(nbs2); + CHECK(std::equal(std::begin(nbs[0][0][0]), std::end(nbs[1][1][1]), std::begin(nbs2[0][0][0]))); + } + SECTION("std::deque") { std::deque a{"previous", "value"}; @@ -1164,7 +1250,7 @@ TEST_CASE("value conversion") SECTION("non-const") { - const json j_const = j; + const json j_const = j; // NOLINT(performance-unnecessary-copy-initialization) const auto& b = j_const.get_binary(); CHECK(*json(b).m_data.m_value.binary == *j.m_data.m_value.binary); } @@ -1263,6 +1349,7 @@ TEST_CASE("value conversion") } #endif +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION SECTION("get an enum") { enum c_enum { value_1, value_2 }; @@ -1271,6 +1358,7 @@ TEST_CASE("value conversion") CHECK(json(value_1).get() == value_1); CHECK(json(cpp_enum::value_1).get() == cpp_enum::value_1); } +#endif SECTION("more involved conversions") { @@ -1513,7 +1601,7 @@ NLOHMANN_JSON_SERIALIZE_ENUM(cards, {cards::karo, "karo"} }) -enum TaskState +enum TaskState // NOLINT(cert-int09-c,readability-enum-initial-value) { TS_STOPPED, TS_RUNNING, @@ -1569,4 +1657,72 @@ TEST_CASE("JSON to enum mapping") } } +#ifdef JSON_HAS_CPP_17 +#ifndef JSON_USE_IMPLICIT_CONVERSIONS +TEST_CASE("std::optional") +{ + SECTION("null") + { + json j_null; + std::optional opt_null; + + CHECK(json(opt_null) == j_null); + CHECK(j_null.get>() == std::nullopt); + } + + SECTION("string") + { + json j_string = "string"; + std::optional opt_string = "string"; + + CHECK(json(opt_string) == j_string); + CHECK(std::optional(j_string) == opt_string); + } + + SECTION("bool") + { + json j_bool = true; + std::optional opt_bool = true; + + CHECK(json(opt_bool) == j_bool); + CHECK(std::optional(j_bool) == opt_bool); + } + + SECTION("number") + { + json j_number = 1; + std::optional opt_int = 1; + + CHECK(json(opt_int) == j_number); + CHECK(j_number.get>() == opt_int); + } + + SECTION("array") + { + json j_array = {1, 2, nullptr}; + std::vector> opt_array = {{1, 2, std::nullopt}}; + + CHECK(json(opt_array) == j_array); + CHECK(j_array.get>>() == opt_array); + } + + SECTION("object") + { + json j_object = {{"one", 1}, {"two", 2}, {"zero", nullptr}}; + std::map> opt_object {{"one", 1}, {"two", 2}, {"zero", std::nullopt}}; + + CHECK(json(opt_object) == j_object); + CHECK(std::map>(j_object) == opt_object); + } +} +#endif +#endif + +#ifdef JSON_HAS_CPP_17 + #undef JSON_HAS_CPP_17 +#endif + +#ifdef JSON_HAS_CPP_14 + #undef JSON_HAS_CPP_14 +#endif DOCTEST_CLANG_SUPPRESS_WARNING_POP diff --git a/tests/src/unit-custom-base-class.cpp b/tests/src/unit-custom-base-class.cpp index 7d3c2eef..1128ff46 100644 --- a/tests/src/unit-custom-base-class.cpp +++ b/tests/src/unit-custom-base-class.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2019 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include @@ -283,8 +282,8 @@ TEST_CASE("JSON Visit Node") }; json.visit( - [&](const json_with_visitor_t::json_pointer & p, - const json_with_visitor_t& j) + [&](const json_with_visitor_t::json_pointer & p, + const json_with_visitor_t& j) { std::stringstream str; str << p.to_string() << " - " ; @@ -331,6 +330,6 @@ TEST_CASE("JSON Visit Node") CHECK(expected.count(str.str()) == 1); expected.erase(str.str()); } - ); + ); CHECK(expected.empty()); } diff --git a/tests/src/unit-deserialization.cpp b/tests/src/unit-deserialization.cpp index 3bc161f1..24ec83ff 100644 --- a/tests/src/unit-deserialization.cpp +++ b/tests/src/unit-deserialization.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -77,7 +76,7 @@ struct SaxEventLogger : public nlohmann::json_sax bool start_object(std::size_t elements) override { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_object()"); } @@ -102,7 +101,7 @@ struct SaxEventLogger : public nlohmann::json_sax bool start_array(std::size_t elements) override { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_array()"); } @@ -125,14 +124,14 @@ struct SaxEventLogger : public nlohmann::json_sax return false; } - std::vector events {}; + std::vector events {}; // NOLINT(readability-redundant-member-init) }; struct SaxEventLoggerExitAfterStartObject : public SaxEventLogger { bool start_object(std::size_t elements) override { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_object()"); } @@ -157,7 +156,7 @@ struct SaxEventLoggerExitAfterStartArray : public SaxEventLogger { bool start_array(std::size_t elements) override { - if (elements == static_cast(-1)) + if (elements == (std::numeric_limits::max)()) { events.emplace_back("start_array()"); } @@ -360,6 +359,10 @@ TEST_CASE("deserialization") "start_object()", "key(one)", "number_unsigned(1)", "end_object()", "parse_error(29)" })); + + const char* string = nullptr; + CHECK_THROWS_WITH_AS(_ = json::parse(string), "[json.exception.parse_error.101] parse error: attempting to parse an empty input; check that your input string or stream contains the expected JSON", json::parse_error&); + CHECK_THROWS_WITH_AS(_ = json::parse(nullptr), "[json.exception.parse_error.101] parse error: attempting to parse an empty input; check that your input string or stream contains the expected JSON", json::parse_error&); } SECTION("operator<<") @@ -583,7 +586,7 @@ TEST_CASE("deserialization") auto first = str.begin(); auto last = str.end(); json j; - json_sax_dom_parser sax(j, true); + json_sax_dom_parser sax(j, true); CHECK(json::sax_parse(proxy(first), proxy(last), &sax, input_format_t::json, false)); @@ -1131,13 +1134,15 @@ TEST_CASE("deserialization") } } -TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T, - char, unsigned char, signed char, - wchar_t, - char16_t, char32_t, - std::uint8_t, std::int8_t, - std::int16_t, std::uint16_t, - std::int32_t, std::uint32_t) +// select the types to test - char8_t is only available in C++20 +#define TYPE_LIST(...) __VA_ARGS__ +#ifdef JSON_HAS_CPP_20 + #define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t, char8_t) +#else + #define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t) +#endif + +TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T, ASCII_TYPES) // NOLINT(readability-math-missing-parentheses) { std::vector const v = {'t', 'r', 'u', 'e'}; CHECK(json::parse(v) == json(true)); @@ -1149,8 +1154,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (ASCII)", T, CHECK(l.events == std::vector({"boolean(true)"})); } -TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T, - char, unsigned char, std::uint8_t) +TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T, char, unsigned char, std::uint8_t) // NOLINT(readability-math-missing-parentheses) { // a star emoji std::vector const v = {'"', static_cast(0xe2u), static_cast(0xadu), static_cast(0x90u), static_cast(0xefu), static_cast(0xb8u), static_cast(0x8fu), '"'}; @@ -1162,8 +1166,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (UTF-8)", T, CHECK(l.events.size() == 1); } -TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T, - char16_t, std::uint16_t) +TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T, char16_t) // NOLINT(readability-math-missing-parentheses) { // a star emoji std::vector const v = {static_cast('"'), static_cast(0x2b50), static_cast(0xfe0f), static_cast('"')}; @@ -1175,8 +1178,7 @@ TEST_CASE_TEMPLATE("deserialization of different character types (UTF-16)", T, CHECK(l.events.size() == 1); } -TEST_CASE_TEMPLATE("deserialization of different character types (UTF-32)", T, - char32_t, std::uint32_t) +TEST_CASE_TEMPLATE("deserialization of different character types (UTF-32)", T, char32_t) // NOLINT(readability-math-missing-parentheses) { // a star emoji std::vector const v = {static_cast('"'), static_cast(0x2b50), static_cast(0xfe0f), static_cast('"')}; diff --git a/tests/src/unit-diagnostics.cpp b/tests/src/unit-diagnostics.cpp index 0e172b91..472d11e2 100644 --- a/tests/src/unit-diagnostics.cpp +++ b/tests/src/unit-diagnostics.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -243,4 +242,24 @@ TEST_CASE("Regression tests for extended diagnostics") json const j_arr_copy = j_arr; } } + + SECTION("Regression test for issue #3915 - JSON_DIAGNOSTICS trigger assertion") + { + json j = json::object(); + j["root"] = "root_str"; + + json jj = json::object(); + jj["child"] = json::object(); + + // If do not push anything in object, then no assert will be produced + jj["child"]["prop1"] = "prop1_value"; + + // Push all properties of child in parent + j.insert(jj.at("child").begin(), jj.at("child").end()); + + // Here assert is generated when construct new json + const json k(j); + + CHECK(k.dump() == "{\"prop1\":\"prop1_value\",\"root\":\"root_str\"}"); + } } diff --git a/tests/src/unit-disabled_exceptions.cpp b/tests/src/unit-disabled_exceptions.cpp index 4ad15514..ef64eeee 100644 --- a/tests/src/unit-disabled_exceptions.cpp +++ b/tests/src/unit-disabled_exceptions.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -20,10 +19,10 @@ using json = nlohmann::json; // for #2824 ///////////////////////////////////////////////////////////////////// -class sax_no_exception : public nlohmann::detail::json_sax_dom_parser +class sax_no_exception : public nlohmann::detail::json_sax_dom_parser { public: - explicit sax_no_exception(json& j) : nlohmann::detail::json_sax_dom_parser(j, false) {} + explicit sax_no_exception(json& j) : nlohmann::detail::json_sax_dom_parser(j, false) {} static bool parse_error(std::size_t /*position*/, const std::string& /*last_token*/, const json::exception& ex) { diff --git a/tests/src/unit-element_access1.cpp b/tests/src/unit-element_access1.cpp index 55a07ede..844e6a44 100644 --- a/tests/src/unit-element_access1.cpp +++ b/tests/src/unit-element_access1.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -55,7 +54,7 @@ TEST_CASE("element access 1") SECTION("null") { json j_nonarray(json::value_t::null); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with null", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with null", json::type_error&); @@ -64,7 +63,7 @@ TEST_CASE("element access 1") SECTION("boolean") { json j_nonarray(json::value_t::boolean); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with boolean", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with boolean", json::type_error&); @@ -73,7 +72,7 @@ TEST_CASE("element access 1") SECTION("string") { json j_nonarray(json::value_t::string); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with string", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with string", json::type_error&); @@ -82,7 +81,7 @@ TEST_CASE("element access 1") SECTION("object") { json j_nonarray(json::value_t::object); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with object", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with object", json::type_error&); @@ -91,7 +90,7 @@ TEST_CASE("element access 1") SECTION("number (integer)") { json j_nonarray(json::value_t::number_integer); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); @@ -100,7 +99,7 @@ TEST_CASE("element access 1") SECTION("number (unsigned)") { json j_nonarray(json::value_t::number_unsigned); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); @@ -109,7 +108,7 @@ TEST_CASE("element access 1") SECTION("number (floating-point)") { json j_nonarray(json::value_t::number_float); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const.at(0), "[json.exception.type_error.304] cannot use at() with number", json::type_error&); @@ -155,7 +154,7 @@ TEST_CASE("element access 1") SECTION("standard tests") { json j_nonarray(json::value_t::null); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_NOTHROW(j_nonarray[0]); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with null", json::type_error&); } @@ -171,7 +170,7 @@ TEST_CASE("element access 1") SECTION("boolean") { json j_nonarray(json::value_t::boolean); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with boolean", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with boolean", json::type_error&); } @@ -179,7 +178,7 @@ TEST_CASE("element access 1") SECTION("string") { json j_nonarray(json::value_t::string); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with string", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with string", json::type_error&); } @@ -187,7 +186,7 @@ TEST_CASE("element access 1") SECTION("object") { json j_nonarray(json::value_t::object); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with object", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with object", json::type_error&); } @@ -195,7 +194,7 @@ TEST_CASE("element access 1") SECTION("number (integer)") { json j_nonarray(json::value_t::number_integer); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); } @@ -203,7 +202,7 @@ TEST_CASE("element access 1") SECTION("number (unsigned)") { json j_nonarray(json::value_t::number_unsigned); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); } @@ -211,7 +210,7 @@ TEST_CASE("element access 1") SECTION("number (floating-point)") { json j_nonarray(json::value_t::number_float); - const json j_nonarray_const(j_nonarray); + const json j_nonarray_const(j_nonarray); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonarray[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); CHECK_THROWS_WITH_AS(j_nonarray_const[0], "[json.exception.type_error.305] cannot use operator[] with a numeric argument with number", json::type_error&); } diff --git a/tests/src/unit-element_access2.cpp b/tests/src/unit-element_access2.cpp index 8497fb94..739febc8 100644 --- a/tests/src/unit-element_access2.cpp +++ b/tests/src/unit-element_access2.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -17,7 +16,7 @@ // build test with C++14 // JSON_HAS_CPP_14 -TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_json) +TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_json) // NOLINT(readability-math-missing-parentheses) { SECTION("object") { @@ -83,7 +82,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("null") { Json j_nonobject(Json::value_t::null); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with null", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with null", typename Json::type_error&); @@ -96,7 +95,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("boolean") { Json j_nonobject(Json::value_t::boolean); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with boolean", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with boolean", typename Json::type_error&); @@ -109,7 +108,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("string") { Json j_nonobject(Json::value_t::string); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with string", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with string", typename Json::type_error&); @@ -122,7 +121,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("array") { Json j_nonobject(Json::value_t::array); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with array", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with array", typename Json::type_error&); @@ -135,7 +134,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("number (integer)") { Json j_nonobject(Json::value_t::number_integer); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); @@ -148,7 +147,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("number (unsigned)") { Json j_nonobject(Json::value_t::number_unsigned); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); @@ -161,7 +160,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j SECTION("number (floating-point)") { Json j_nonobject(Json::value_t::number_float); - const Json j_nonobject_const(j_nonobject); + const Json j_nonobject_const(j_nonobject); // NOLINT(performance-unnecessary-copy-initialization) CHECK_THROWS_WITH_AS(j_nonobject.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); CHECK_THROWS_WITH_AS(j_nonobject_const.at("foo"), "[json.exception.type_error.304] cannot use at() with number", typename Json::type_error&); @@ -1456,7 +1455,7 @@ TEST_CASE_TEMPLATE("element access 2", Json, nlohmann::json, nlohmann::ordered_j } #if !defined(JSON_NOEXCEPTION) -TEST_CASE_TEMPLATE("element access 2 (throwing tests)", Json, nlohmann::json, nlohmann::ordered_json) +TEST_CASE_TEMPLATE("element access 2 (throwing tests)", Json, nlohmann::json, nlohmann::ordered_json) // NOLINT(readability-math-missing-parentheses) { SECTION("object") { @@ -1492,7 +1491,7 @@ TEST_CASE_TEMPLATE("element access 2 (throwing tests)", Json, nlohmann::json, nl #endif // TODO(falbrechtskirchinger) merge with the other test case; clean up -TEST_CASE_TEMPLATE("element access 2 (additional value() tests)", Json, nlohmann::json, nlohmann::ordered_json) +TEST_CASE_TEMPLATE("element access 2 (additional value() tests)", Json, nlohmann::json, nlohmann::ordered_json) // NOLINT(readability-math-missing-parentheses) { using string_t = typename Json::string_t; using number_integer_t = typename Json::number_integer_t; diff --git a/tests/src/unit-hash.cpp b/tests/src/unit-hash.cpp index 7c98a27c..a6e524c6 100644 --- a/tests/src/unit-hash.cpp +++ b/tests/src/unit-hash.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-inspection.cpp b/tests/src/unit-inspection.cpp index 0574094c..b7e73469 100644 --- a/tests/src/unit-inspection.cpp +++ b/tests/src/unit-inspection.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-items.cpp b/tests/src/unit-items.cpp index ef2dd74b..7544f01d 100644 --- a/tests/src/unit-items.cpp +++ b/tests/src/unit-items.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-iterators1.cpp b/tests/src/unit-iterators1.cpp index 24669a62..49361edc 100644 --- a/tests/src/unit-iterators1.cpp +++ b/tests/src/unit-iterators1.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-iterators2.cpp b/tests/src/unit-iterators2.cpp index ce8c95ba..85cd5bbf 100644 --- a/tests/src/unit-iterators2.cpp +++ b/tests/src/unit-iterators2.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT // cmake/test.cmake selects the C++ standard versions with which to build a diff --git a/tests/src/unit-iterators3.cpp b/tests/src/unit-iterators3.cpp new file mode 100644 index 00000000..49d3ed6e --- /dev/null +++ b/tests/src/unit-iterators3.cpp @@ -0,0 +1,35 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-License-Identifier: MIT + +#include "doctest_compatibility.h" + +#include +#include +#include + +#include +using nlohmann::json; + +#if (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 +#endif + +#ifdef JSON_HAS_CPP_14 +TEST_CASE_TEMPLATE("checking forward-iterators", T, // NOLINT(readability-math-missing-parentheses) + std::vector, std::string, nlohmann::json) +{ + auto it1 = typename T::iterator{}; + auto it2 = typename T::iterator{}; + CHECK(it1 == it2); + CHECK(it1 <= it2); + CHECK(it1 >= it2); + CHECK_FALSE(it1 != it2); + CHECK_FALSE(it1 < it2); + CHECK_FALSE(it1 > it2); +} +#endif diff --git a/tests/src/unit-json_patch.cpp b/tests/src/unit-json_patch.cpp index 0999393e..da0cf731 100644 --- a/tests/src/unit-json_patch.cpp +++ b/tests/src/unit-json_patch.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -1305,7 +1305,7 @@ TEST_CASE("JSON patch") const auto& doc = test["doc"]; const auto& patch = test["patch"]; - if (test.count("error") == 0) + if (test.count("error") == 0) // NOLINT(readability-container-contains) { // if an expected value is given, use it; use doc otherwise const auto& expected = test.value("expected", doc); diff --git a/tests/src/unit-json_pointer.cpp b/tests/src/unit-json_pointer.cpp index 79c67f99..beb24cc9 100644 --- a/tests/src/unit-json_pointer.cpp +++ b/tests/src/unit-json_pointer.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-large_json.cpp b/tests/src/unit-large_json.cpp index 9703a545..4ffc1d01 100644 --- a/tests/src/unit-large_json.cpp +++ b/tests/src/unit-large_json.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-locale-cpp.cpp b/tests/src/unit-locale-cpp.cpp new file mode 100644 index 00000000..529c95cc --- /dev/null +++ b/tests/src/unit-locale-cpp.cpp @@ -0,0 +1,161 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann +// SPDX-License-Identifier: MIT + +#include "doctest_compatibility.h" + +#define JSON_TESTS_PRIVATE +#include +using nlohmann::json; + +#include + +struct ParserImpl final: public nlohmann::json_sax +{ + bool null() override + { + return true; + } + bool boolean(bool /*val*/) override + { + return true; + } + bool number_integer(json::number_integer_t /*val*/) override + { + return true; + } + bool number_unsigned(json::number_unsigned_t /*val*/) override + { + return true; + } + bool number_float(json::number_float_t /*val*/, const json::string_t& s) override + { + float_string_copy = s; + return true; + } + bool string(json::string_t& /*val*/) override + { + return true; + } + bool binary(json::binary_t& /*val*/) override + { + return true; + } + bool start_object(std::size_t /*val*/) override + { + return true; + } + bool key(json::string_t& /*val*/) override + { + return true; + } + bool end_object() override + { + return true; + } + bool start_array(std::size_t /*val*/) override + { + return true; + } + bool end_array() override + { + return true; + } + bool parse_error(std::size_t /*val*/, const std::string& /*val*/, const nlohmann::detail::exception& /*val*/) override + { + return false; + } + + ~ParserImpl() override; + + ParserImpl() + : float_string_copy("not set") + {} + + ParserImpl(const ParserImpl& other) + : float_string_copy(other.float_string_copy) + {} + + ParserImpl(ParserImpl&& other) noexcept + : float_string_copy(std::move(other.float_string_copy)) + {} + + ParserImpl& operator=(const ParserImpl& other) + { + if (this != &other) + { + float_string_copy = other.float_string_copy; + } + return *this; + } + + ParserImpl& operator=(ParserImpl&& other) noexcept + { + if (this != &other) + { + float_string_copy = std::move(other.float_string_copy); + } + return *this; + } + + json::string_t float_string_copy; +}; + +ParserImpl::~ParserImpl() = default; + +TEST_CASE("locale-dependent test (LC_NUMERIC=C)") +{ + WARN_MESSAGE(std::setlocale(LC_NUMERIC, "C") != nullptr, "could not set locale"); + + SECTION("check if locale is properly set") + { + std::array buffer = {}; + CHECK(std::snprintf(buffer.data(), buffer.size(), "%.2f", 12.34) == 5); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + CHECK(std::string(buffer.data()) == "12.34"); + } + + SECTION("parsing") + { + CHECK(json::parse("12.34").dump() == "12.34"); + } + + SECTION("SAX parsing") + { + ParserImpl sax {}; + json::sax_parse( "12.34", &sax ); + CHECK(sax.float_string_copy == "12.34"); + } +} + +TEST_CASE("locale-dependent test (LC_NUMERIC=de_DE)") +{ + if (std::setlocale(LC_NUMERIC, "de_DE") != nullptr) + { + SECTION("check if locale is properly set") + { + std::array buffer = {}; + CHECK(std::snprintf(buffer.data(), buffer.size(), "%.2f", 12.34) == 5); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + CHECK(std::string(buffer.data()) == "12,34"); + } + + SECTION("parsing") + { + CHECK(json::parse("12.34").dump() == "12.34"); + } + + SECTION("SAX parsing") + { + ParserImpl sax{}; + json::sax_parse("12.34", &sax); + CHECK(sax.float_string_copy == "12.34"); + } + } + else + { + MESSAGE("locale de_DE is not usable"); + } +} diff --git a/tests/src/unit-merge_patch.cpp b/tests/src/unit-merge_patch.cpp index 6a8bcfe2..411ac28d 100644 --- a/tests/src/unit-merge_patch.cpp +++ b/tests/src/unit-merge_patch.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-meta.cpp b/tests/src/unit-meta.cpp index a522faab..50e6c891 100644 --- a/tests/src/unit-meta.cpp +++ b/tests/src/unit-meta.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-modifiers.cpp b/tests/src/unit-modifiers.cpp index fb686780..f113fa17 100644 --- a/tests/src/unit-modifiers.cpp +++ b/tests/src/unit-modifiers.cpp @@ -3,8 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// Copyright (c) 2013-2022 Niels Lohmann . -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-msgpack.cpp b/tests/src/unit-msgpack.cpp index 61162afa..a24f4996 100644 --- a/tests/src/unit-msgpack.cpp +++ b/tests/src/unit-msgpack.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -281,7 +281,7 @@ TEST_CASE("MessagePack") // check individual bytes CHECK(result[0] == 0xcd); - auto const restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + auto const restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -479,11 +479,11 @@ TEST_CASE("MessagePack") std::vector const numbers { -32769, - -65536, - -77777, - -1048576, - -2147483648LL, - }; + -65536, + -77777, + -1048576, + -2147483648LL, + }; for (auto i : numbers) { CAPTURE(i) @@ -671,7 +671,7 @@ TEST_CASE("MessagePack") // check individual bytes CHECK(result[0] == 0xcd); - auto const restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + auto const restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -1508,6 +1508,22 @@ TEST_CASE("MessagePack") CHECK(json::from_msgpack(std::vector({0xc4}), true, false).is_discarded()); } + SECTION("unexpected end inside int with stream") + { + json _; + const std::string data = {static_cast(0xd2u), static_cast(0x12u), static_cast(0x34u), static_cast(0x56u)}; + CHECK_THROWS_WITH_AS(_ = json::from_msgpack(std::istringstream(data, std::ios::binary)), + "[json.exception.parse_error.110] parse error at byte 5: syntax error while parsing MessagePack number: unexpected end of input", json::parse_error&); + } + SECTION("misuse wchar for binary") + { + json _; + // creates 0xd2 after UTF-8 decoding, triggers get_elements in wide_string_input_adapter for code coverage + const std::u32string data = {static_cast(0x0280)}; + CHECK_THROWS_WITH_AS(_ = json::from_msgpack(data), + "[json.exception.parse_error.112] parse error at byte 1: wide string type cannot be interpreted as binary data", json::parse_error&); + } + SECTION("unsupported bytes") { SECTION("concrete examples") @@ -1604,7 +1620,7 @@ TEST_CASE("single MessagePack roundtrip") { SECTION("std::ostringstream") { - std::basic_ostringstream ss; + std::basic_ostringstream ss; json::to_msgpack(j1, ss); json j3 = json::from_msgpack(ss.str()); CHECK(j1 == j3); diff --git a/tests/src/unit-no-mem-leak-on-adl-serialize.cpp b/tests/src/unit-no-mem-leak-on-adl-serialize.cpp index 37b10a91..23552178 100644 --- a/tests/src/unit-no-mem-leak-on-adl-serialize.cpp +++ b/tests/src/unit-no-mem-leak-on-adl-serialize.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-noexcept.cpp b/tests/src/unit-noexcept.cpp index bba230d0..8364e83a 100644 --- a/tests/src/unit-noexcept.cpp +++ b/tests/src/unit-noexcept.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -12,6 +12,11 @@ DOCTEST_GCC_SUPPRESS_WARNING_PUSH DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept") +// skip tests if JSON_DisableEnumSerialization=ON (#4384) +#if defined(JSON_DISABLE_ENUM_SERIALIZATION) && (JSON_DISABLE_ENUM_SERIALIZATION == 1) + #define SKIP_TESTS_FOR_ENUM_SERIALIZATION +#endif + #include using nlohmann::json; @@ -36,12 +41,16 @@ static_assert(noexcept(json{}), ""); static_assert(noexcept(nlohmann::to_json(std::declval(), 2)), ""); static_assert(noexcept(nlohmann::to_json(std::declval(), 2.5)), ""); static_assert(noexcept(nlohmann::to_json(std::declval(), true)), ""); -static_assert(noexcept(nlohmann::to_json(std::declval(), test{})), ""); -static_assert(noexcept(nlohmann::to_json(std::declval(), pod{})), ""); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION +static_assert(noexcept(nlohmann::to_json(std::declval(), test {})), ""); +#endif +static_assert(noexcept(nlohmann::to_json(std::declval(), pod {})), ""); static_assert(!noexcept(nlohmann::to_json(std::declval(), pod_bis{})), ""); static_assert(noexcept(json(2)), ""); -static_assert(noexcept(json(test{})), ""); -static_assert(noexcept(json(pod{})), ""); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION +static_assert(noexcept(json(test {})), ""); +#endif +static_assert(noexcept(json(pod {})), ""); static_assert(noexcept(std::declval().get()), ""); static_assert(!noexcept(std::declval().get()), ""); static_assert(noexcept(json(pod{})), ""); diff --git a/tests/src/unit-ordered_json.cpp b/tests/src/unit-ordered_json.cpp index d77d904b..982b7a3d 100644 --- a/tests/src/unit-ordered_json.cpp +++ b/tests/src/unit-ordered_json.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-ordered_map.cpp b/tests/src/unit-ordered_map.cpp index ceafea1e..3171177c 100644 --- a/tests/src/unit-ordered_map.cpp +++ b/tests/src/unit-ordered_map.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-pointer_access.cpp b/tests/src/unit-pointer_access.cpp index 4503a3b7..b5734559 100644 --- a/tests/src/unit-pointer_access.cpp +++ b/tests/src/unit-pointer_access.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -326,7 +326,7 @@ TEST_CASE("pointer access") CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); + CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() != nullptr); CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); @@ -355,7 +355,7 @@ TEST_CASE("pointer access") CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); + CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() != nullptr); CHECK(value.get_ptr() == nullptr); CHECK(value.get_ptr() == nullptr); diff --git a/tests/src/unit-readme.cpp b/tests/src/unit-readme.cpp index f2a571aa..66f9d9b0 100644 --- a/tests/src/unit-readme.cpp +++ b/tests/src/unit-readme.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -115,7 +115,7 @@ TEST_CASE("README" * doctest::skip()) auto j3 = json::parse(R"({"happy": true, "pi": 3.141})"); // explicit conversion to string - std::string const s = j.dump(); // {\"happy\":true,\"pi\":3.141} + std::string const s = j.dump(); // NOLINT(bugprone-unused-local-non-trivial-variable) // {\"happy\":true,\"pi\":3.141} // serialization with pretty printing // pass in the amount of spaces to indent @@ -152,7 +152,7 @@ TEST_CASE("README" * doctest::skip()) } // getter/setter - const auto tmp = j[0].get(); + const auto tmp = j[0].get(); // NOLINT(bugprone-unused-local-non-trivial-variable) j[1] = 42; bool foo{j.at(2)}; CHECK(foo == true); @@ -171,7 +171,7 @@ TEST_CASE("README" * doctest::skip()) // find an entry CHECK(o.find("foo") != o.end()); - if (o.find("foo") != o.end()) + if (o.find("foo") != o.end()) // NOLINT(readability-container-contains) { // there is an entry with key "foo" } @@ -237,7 +237,7 @@ TEST_CASE("README" * doctest::skip()) // strings std::string const s1 = "Hello, world!"; json const js = s1; - auto s2 = js.get(); + auto s2 = js.get(); // NOLINT(bugprone-unused-local-non-trivial-variable) // Booleans bool const b1 = true; @@ -253,7 +253,7 @@ TEST_CASE("README" * doctest::skip()) // etc. - std::string const vs = js.get(); + std::string const vs = js.get(); // NOLINT(bugprone-unused-local-non-trivial-variable) bool vb = jb.get(); CHECK(vb == true); int vi = jn.get(); diff --git a/tests/src/unit-reference_access.cpp b/tests/src/unit-reference_access.cpp index 3b46fe83..d63a470d 100644 --- a/tests/src/unit-reference_access.cpp +++ b/tests/src/unit-reference_access.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -215,8 +215,8 @@ TEST_CASE("reference access") "[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number", json::type_error&); CHECK_THROWS_WITH_AS(value.get_ref(), "[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number", json::type_error&); - //CHECK_THROWS_WITH_AS(value.get_ref(), - // "[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number", json::type_error&); + CHECK_THROWS_WITH_AS(value.get_ref(), + "[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number", json::type_error&); CHECK_NOTHROW(value.get_ref()); CHECK_THROWS_WITH_AS(value.get_ref(), "[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number", json::type_error&); } diff --git a/tests/src/unit-regression1.cpp b/tests/src/unit-regression1.cpp index f5ef5d80..ecb970d2 100644 --- a/tests/src/unit-regression1.cpp +++ b/tests/src/unit-regression1.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -11,6 +11,11 @@ // for some reason including this after the json header leads to linker errors with VS 2017... #include +// skip tests if JSON_DisableEnumSerialization=ON (#4384) +#if defined(JSON_DISABLE_ENUM_SERIALIZATION) && (JSON_DISABLE_ENUM_SERIALIZATION == 1) + #define SKIP_TESTS_FOR_ENUM_SERIALIZATION +#endif + #define JSON_TESTS_PRIVATE #include using nlohmann::json; @@ -169,6 +174,7 @@ TEST_CASE("regression tests 1") } } +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION SECTION("pull request #71 - handle enum type") { enum { t = 0, u = 102}; @@ -191,6 +197,7 @@ TEST_CASE("regression tests 1") {"game_type", t} })); } +#endif SECTION("issue #76 - dump() / parse() not idempotent") { @@ -1328,10 +1335,10 @@ TEST_CASE("regression tests 1") { std::ifstream is; is.exceptions( - is.exceptions() - | std::ios_base::failbit - | std::ios_base::badbit - ); // handle different exceptions as 'file not found', 'permission denied' + is.exceptions() + | std::ios_base::failbit + | std::ios_base::badbit + ); // handle different exceptions as 'file not found', 'permission denied' is.open(TEST_DATA_DIRECTORY "/regression/working_file.json"); json _; @@ -1341,10 +1348,10 @@ TEST_CASE("regression tests 1") { std::ifstream is; is.exceptions( - is.exceptions() - | std::ios_base::failbit - | std::ios_base::badbit - ); // handle different exceptions as 'file not found', 'permission denied' + is.exceptions() + | std::ios_base::failbit + | std::ios_base::badbit + ); // handle different exceptions as 'file not found', 'permission denied' is.open(TEST_DATA_DIRECTORY "/json_nlohmann_tests/all_unicode.json.cbor", std::ios_base::in | std::ios_base::binary); diff --git a/tests/src/unit-regression2.cpp b/tests/src/unit-regression2.cpp index fab9aae3..88a64a7b 100644 --- a/tests/src/unit-regression2.cpp +++ b/tests/src/unit-regression2.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT // cmake/test.cmake selects the C++ standard versions with which to build a @@ -90,18 +90,18 @@ struct Data : a(std::move(a_)) , b(std::move(b_)) {} - std::string a{}; - std::string b{}; + std::string a{}; // NOLINT(readability-redundant-member-init) + std::string b{}; // NOLINT(readability-redundant-member-init) }; -void from_json(const json& j, Data& data); +void from_json(const json& j, Data& data); // NOLINT(misc-use-internal-linkage) void from_json(const json& j, Data& data) { j["a"].get_to(data.a); j["b"].get_to(data.b); } -bool operator==(Data const& lhs, Data const& rhs); +bool operator==(Data const& lhs, Data const& rhs); // NOLINT(misc-use-internal-linkage) bool operator==(Data const& lhs, Data const& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; @@ -162,11 +162,11 @@ struct adl_serializer // for #2824 ///////////////////////////////////////////////////////////////////// -class sax_no_exception : public nlohmann::detail::json_sax_dom_parser +class sax_no_exception : public nlohmann::detail::json_sax_dom_parser { public: explicit sax_no_exception(json& j) - : nlohmann::detail::json_sax_dom_parser(j, false) + : nlohmann::detail::json_sax_dom_parser(j, false) {} static bool parse_error(std::size_t /*position*/, const std::string& /*last_token*/, const json::exception& ex) @@ -218,10 +218,10 @@ class Foo class FooBar { public: - Foo foo{}; + Foo foo{}; // NOLINT(readability-redundant-member-init) }; -inline void from_json(const nlohmann::json& j, FooBar& fb) +inline void from_json(const nlohmann::json& j, FooBar& fb) // NOLINT(misc-use-internal-linkage) { j.at("value").get_to(fb.foo.value); } @@ -233,23 +233,80 @@ inline void from_json(const nlohmann::json& j, FooBar& fb) struct for_3171_base // NOLINT(cppcoreguidelines-special-member-functions) { for_3171_base(const std::string& /*unused*/ = {}) {} - virtual ~for_3171_base() = default; + virtual ~for_3171_base(); + + for_3171_base(const for_3171_base& other) // NOLINT(hicpp-use-equals-default,modernize-use-equals-default) + : str(other.str) + {} + + for_3171_base& operator=(const for_3171_base& other) + { + if (this != &other) + { + str = other.str; + } + return *this; + } + + for_3171_base(for_3171_base&& other) noexcept + : str(std::move(other.str)) + {} + + for_3171_base& operator=(for_3171_base&& other) noexcept + { + if (this != &other) + { + str = std::move(other.str); + } + return *this; + } virtual void _from_json(const json& j) { j.at("str").get_to(str); } - std::string str{}; + std::string str{}; // NOLINT(readability-redundant-member-init) }; +for_3171_base::~for_3171_base() = default; + struct for_3171_derived : public for_3171_base { for_3171_derived() = default; + ~for_3171_derived() override; explicit for_3171_derived(const std::string& /*unused*/) { } + + for_3171_derived(const for_3171_derived& other) // NOLINT(hicpp-use-equals-default,modernize-use-equals-default) + : for_3171_base(other) + {} + + for_3171_derived& operator=(const for_3171_derived& other) + { + if (this != &other) + { + for_3171_base::operator=(other); // Call base class assignment operator + } + return *this; + } + + for_3171_derived(for_3171_derived&& other) noexcept + : for_3171_base(std::move(other)) + {} + + for_3171_derived& operator=(for_3171_derived&& other) noexcept + { + if (this != &other) + { + for_3171_base::operator=(std::move(other)); // Call base class move assignment operator + } + return *this; + } }; -inline void from_json(const json& j, for_3171_base& tb) +for_3171_derived::~for_3171_derived() = default; + +inline void from_json(const json& j, for_3171_base& tb) // NOLINT(misc-use-internal-linkage) { tb._from_json(j); } @@ -264,7 +321,7 @@ struct for_3312 std::string name; }; -inline void from_json(const json& j, for_3312& obj) +inline void from_json(const json& j, for_3312& obj) // NOLINT(misc-use-internal-linkage) { j.at("name").get_to(obj.name); } @@ -622,8 +679,8 @@ TEST_CASE("regression tests 2") // see https://github.com/nlohmann/json/pull/2181#issuecomment-653326060 const json j{{"x", "test"}}; const std::string defval = "default value"; - auto val = j.value("x", defval); - auto val2 = j.value("y", defval); + auto val = j.value("x", defval); // NOLINT(bugprone-unused-local-non-trivial-variable) + auto val2 = j.value("y", defval); // NOLINT(bugprone-unused-local-non-trivial-variable) } SECTION("issue #2293 - eof doesn't cause parsing to stop") @@ -675,6 +732,7 @@ TEST_CASE("regression tests 2") } #ifdef JSON_HAS_CPP_20 +#ifndef _LIBCPP_VERSION // see https://github.com/nlohmann/json/issues/4490 #if __has_include() SECTION("issue #2546 - parsing containers of std::byte") { @@ -684,6 +742,7 @@ TEST_CASE("regression tests 2") CHECK(j.dump() == "\"Hello, world!\""); } #endif +#endif #endif SECTION("issue #2574 - Deserialization to std::array, std::pair, and std::tuple with non-default constructable types fails") @@ -866,7 +925,7 @@ TEST_CASE("regression tests 2") CHECK(j.dump() == "[1,4]"); } - SECTION("issue #3343 - json and ordered_json are not interchangable") + SECTION("issue #3343 - json and ordered_json are not interchangeable") { json::object_t jobj({ { "product", "one" } }); ordered_json::object_t ojobj({{"product", "one"}}); diff --git a/tests/src/unit-serialization.cpp b/tests/src/unit-serialization.cpp index e8f0e7e5..201e5724 100644 --- a/tests/src/unit-serialization.cpp +++ b/tests/src/unit-serialization.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -165,7 +165,7 @@ TEST_CASE("serialization") } } -TEST_CASE_TEMPLATE("serialization for extreme integer values", T, int32_t, uint32_t, int64_t, uint64_t) +TEST_CASE_TEMPLATE("serialization for extreme integer values", T, int32_t, uint32_t, int64_t, uint64_t) // NOLINT(readability-math-missing-parentheses) { SECTION("minimum") { diff --git a/tests/src/unit-testsuites.cpp b/tests/src/unit-testsuites.cpp index 5807934b..d32616bc 100644 --- a/tests/src/unit-testsuites.cpp +++ b/tests/src/unit-testsuites.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -163,7 +163,7 @@ TEST_CASE("compliance tests from nativejson-benchmark") TEST_DOUBLE("[2.2250738585072012e-308]", 2.2250738585072014e-308); - // More closer to normal/subnormal boundary + // Closer to normal/subnormal boundary // boundary = 2^-1022 - 2^-1075 = 2.225073858507201136057409796709131975934819546351645648... ¡Á 10^-308 TEST_DOUBLE("[2.22507385850720113605740979670913197593481954635164564e-308]", 2.2250738585072009e-308); @@ -312,7 +312,7 @@ TEST_CASE("test suite from json-test-suite") { SECTION("read all sample.json") { - // read a file with all unicode characters stored as single-character + // read a file with all Unicode characters stored as single-character // strings in a JSON array std::ifstream f(TEST_DATA_DIRECTORY "/json_testsuite/sample.json"); json j; diff --git a/tests/src/unit-to_chars.cpp b/tests/src/unit-to_chars.cpp index 6d32e065..d7c8de04 100644 --- a/tests/src/unit-to_chars.cpp +++ b/tests/src/unit-to_chars.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT // XXX: diff --git a/tests/src/unit-type_traits.cpp b/tests/src/unit-type_traits.cpp index 4c78aa99..c672b6b3 100644 --- a/tests/src/unit-type_traits.cpp +++ b/tests/src/unit-type_traits.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-ubjson.cpp b/tests/src/unit-ubjson.cpp index 06611c5f..a9d931cd 100644 --- a/tests/src/unit-ubjson.cpp +++ b/tests/src/unit-ubjson.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -450,7 +450,7 @@ TEST_CASE("UBJSON") // check individual bytes CHECK(result[0] == 'I'); - auto const restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + auto const restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -655,7 +655,7 @@ TEST_CASE("UBJSON") // check individual bytes CHECK(result[0] == 'I'); - auto const restored = static_cast(static_cast(result[1]) * 256 + static_cast(result[2])); + auto const restored = static_cast((static_cast(result[1]) * 256) + static_cast(result[2])); CHECK(restored == i); // roundtrip @@ -1617,7 +1617,7 @@ TEST_CASE("UBJSON") CHECK_THROWS_AS(_ = json::from_ubjson(v_ubjson), json::out_of_range&); json j; - nlohmann::detail::json_sax_dom_callback_parser scp(j, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + nlohmann::detail::json_sax_dom_callback_parser scp(j, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept { return true; }); @@ -1631,7 +1631,7 @@ TEST_CASE("UBJSON") CHECK_THROWS_AS(_ = json::from_ubjson(v_ubjson), json::out_of_range&); json j; - nlohmann::detail::json_sax_dom_callback_parser scp(j, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept + nlohmann::detail::json_sax_dom_callback_parser scp(j, [](int /*unused*/, json::parse_event_t /*unused*/, const json& /*unused*/) noexcept { return true; }); diff --git a/tests/src/unit-udl.cpp b/tests/src/unit-udl.cpp index bb72ccbc..08378877 100644 --- a/tests/src/unit-udl.cpp +++ b/tests/src/unit-udl.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-udt.cpp b/tests/src/unit-udt.cpp index b138aa46..8e567a9e 100644 --- a/tests/src/unit-udt.cpp +++ b/tests/src/unit-udt.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -12,6 +12,11 @@ DOCTEST_GCC_SUPPRESS_WARNING_PUSH DOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept") +// skip tests if JSON_DisableEnumSerialization=ON (#4384) +#if defined(JSON_DISABLE_ENUM_SERIALIZATION) && (JSON_DISABLE_ENUM_SERIALIZATION == 1) + #define SKIP_TESTS_FOR_ENUM_SERIALIZATION +#endif + #include using nlohmann::json; #ifdef JSON_TEST_NO_GLOBAL_UDLS @@ -52,27 +57,30 @@ struct address struct person { - age m_age{}; - name m_name{}; - country m_country{}; + age m_age{}; // NOLINT(readability-redundant-member-init) + name m_name{}; // NOLINT(readability-redundant-member-init) + country m_country{}; // NOLINT(readability-redundant-member-init) person() = default; person(const age& a, name n, const country& c) : m_age(a), m_name(std::move(n)), m_country(c) {} }; struct contact { - person m_person{}; - address m_address{}; + person m_person{}; // NOLINT(readability-redundant-member-init) + address m_address{}; // NOLINT(readability-redundant-member-init) contact() = default; contact(person p, address a) : m_person(std::move(p)), m_address(std::move(a)) {} }; +enum class book_id : std::uint64_t; + struct contact_book { - name m_book_name{}; - std::vector m_contacts{}; + name m_book_name{}; // NOLINT(readability-redundant-member-init) + book_id m_book_id{}; + std::vector m_contacts{}; // NOLINT(readability-redundant-member-init) contact_book() = default; - contact_book(name n, std::vector c) : m_book_name(std::move(n)), m_contacts(std::move(c)) {} + contact_book(name n, book_id i, std::vector c) : m_book_name(std::move(n)), m_book_id(i), m_contacts(std::move(c)) {} }; } // namespace udt @@ -129,7 +137,11 @@ static void to_json(nlohmann::json& j, const contact& c) static void to_json(nlohmann::json& j, const contact_book& cb) { - j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}}; + j = json{{"name", cb.m_book_name}, +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + {"id", cb.m_book_id}, +#endif + {"contacts", cb.m_contacts}}; } // operators @@ -161,8 +173,8 @@ static bool operator==(const contact& lhs, const contact& rhs) static bool operator==(const contact_book& lhs, const contact_book& rhs) { - return std::tie(lhs.m_book_name, lhs.m_contacts) == - std::tie(rhs.m_book_name, rhs.m_contacts); + return std::tie(lhs.m_book_name, lhs.m_book_id, lhs.m_contacts) == + std::tie(rhs.m_book_name, rhs.m_book_id, rhs.m_contacts); } } // namespace udt @@ -219,6 +231,9 @@ static void from_json(const nlohmann::json& j, contact& c) static void from_json(const nlohmann::json& j, contact_book& cb) { cb.m_book_name = j["name"].get(); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + cb.m_book_id = j["id"].get(); +#endif cb.m_contacts = j["contacts"].get>(); } } // namespace udt @@ -237,7 +252,8 @@ TEST_CASE("basic usage" * doctest::test_suite("udt")) const udt::person senior_programmer{{42}, {"王芳"}, udt::country::china}; const udt::address addr{"Paris"}; const udt::contact cpp_programmer{sfinae_addict, addr}; - const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}}; + const udt::book_id large_id{static_cast(static_cast(1) << 63)}; // verify large unsigned enums are handled correctly + const udt::contact_book book{{"C++"}, static_cast(42u), {cpp_programmer, {senior_programmer, addr}}}; SECTION("conversion to json via free-functions") { @@ -248,21 +264,36 @@ TEST_CASE("basic usage" * doctest::test_suite("udt")) CHECK(json("Paris") == json(addr)); CHECK(json(cpp_programmer) == R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + CHECK(json(large_id) == json(static_cast(1) << 63)); + CHECK(json(large_id) > 0u); + CHECK(to_string(json(large_id)) == "9223372036854775808"); + CHECK(json(large_id).is_number_unsigned()); +#endif +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + CHECK( + json(book) == + R"({"name":"C++", "id":42, "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); +#else CHECK( json(book) == R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json); +#endif } SECTION("conversion from json via free-functions") { const auto big_json = - R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; + R"({"name":"C++", "id":42, "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json; SECTION("via explicit calls to get") { const auto parsed_book = big_json.get(); const auto book_name = big_json["name"].get(); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + const auto book_id = big_json["id"].get(); +#endif const auto contacts = big_json["contacts"].get>(); const auto contact_json = big_json["contacts"].at(0); @@ -282,7 +313,10 @@ TEST_CASE("basic usage" * doctest::test_suite("udt")) CHECK(contact == cpp_programmer); CHECK(contacts == book.m_contacts); CHECK(book_name == udt::name{"C++"}); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + CHECK(book_id == book.m_book_id); CHECK(book == parsed_book); +#endif } SECTION("via explicit calls to get_to") @@ -303,6 +337,9 @@ TEST_CASE("basic usage" * doctest::test_suite("udt")) { const udt::contact_book parsed_book = big_json; const udt::name book_name = big_json["name"]; +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + const udt::book_id book_id = big_json["id"]; +#endif const std::vector contacts = big_json["contacts"]; const auto contact_json = big_json["contacts"].at(0); const udt::contact contact = contact_json; @@ -320,7 +357,10 @@ TEST_CASE("basic usage" * doctest::test_suite("udt")) CHECK(contact == cpp_programmer); CHECK(contacts == book.m_contacts); CHECK(book_name == udt::name{"C++"}); +#ifndef SKIP_TESTS_FOR_ENUM_SERIALIZATION + CHECK(book_id == static_cast(42u)); CHECK(book == parsed_book); +#endif } #endif } @@ -330,7 +370,7 @@ namespace udt { struct legacy_type { - std::string number{}; + std::string number{}; // NOLINT(readability-redundant-member-init) legacy_type() = default; legacy_type(std::string n) : number(std::move(n)) {} }; @@ -603,7 +643,7 @@ struct small_pod struct non_pod { - std::string s{}; + std::string s{}; // NOLINT(readability-redundant-member-init) non_pod() = default; non_pod(std::string S) : s(std::move(S)) {} }; diff --git a/tests/src/unit-udt_macro.cpp b/tests/src/unit-udt_macro.cpp index e2383f40..8a71d448 100644 --- a/tests/src/unit-udt_macro.cpp +++ b/tests/src/unit-udt_macro.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include @@ -18,7 +18,7 @@ namespace persons class person_with_private_data { private: - std::string name{}; + std::string name{}; // NOLINT(readability-redundant-member-init) int age = 0; json metadata = nullptr; @@ -38,10 +38,30 @@ class person_with_private_data NLOHMANN_DEFINE_TYPE_INTRUSIVE(person_with_private_data, age, name, metadata) }; +class derived_person_with_private_data : public person_with_private_data +{ + private: + std::string hair_color{"blue"}; + + public: + bool operator==(const derived_person_with_private_data& rhs) const + { + return person_with_private_data::operator==(rhs) && hair_color == rhs.hair_color; + } + + derived_person_with_private_data() = default; + derived_person_with_private_data(std::string name_, int age_, json metadata_, std::string hair_color_) + : person_with_private_data(std::move(name_), age_, std::move(metadata_)) + , hair_color(std::move(hair_color_)) + {} + + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(derived_person_with_private_data, person_with_private_data, hair_color) +}; + class person_with_private_data_2 { private: - std::string name{}; + std::string name{}; // NOLINT(readability-redundant-member-init) int age = 0; json metadata = nullptr; @@ -74,10 +94,35 @@ class person_with_private_data_2 NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(person_with_private_data_2, age, name, metadata) }; +class derived_person_with_private_data_2 : public person_with_private_data_2 +{ + private: + std::string hair_color{"blue"}; + + public: + bool operator==(const derived_person_with_private_data_2& rhs) const + { + return person_with_private_data_2::operator==(rhs) && hair_color == rhs.hair_color; + } + + derived_person_with_private_data_2() = default; + derived_person_with_private_data_2(std::string name_, int age_, json metadata_, std::string hair_color_) + : person_with_private_data_2(std::move(name_), age_, std::move(metadata_)) + , hair_color(std::move(hair_color_)) + {} + + std::string getHairColor() const + { + return hair_color; + } + + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(derived_person_with_private_data_2, person_with_private_data_2, hair_color) +}; + class person_without_private_data_1 { public: - std::string name{}; + std::string name{}; // NOLINT(readability-redundant-member-init) int age = 0; json metadata = nullptr; @@ -96,10 +141,30 @@ class person_without_private_data_1 NLOHMANN_DEFINE_TYPE_INTRUSIVE(person_without_private_data_1, age, name, metadata) }; +class derived_person_without_private_data_1 : public person_without_private_data_1 +{ + public: + std::string hair_color{"blue"}; + + public: + bool operator==(const derived_person_without_private_data_1& rhs) const + { + return person_without_private_data_1::operator==(rhs) && hair_color == rhs.hair_color; + } + + derived_person_without_private_data_1() = default; + derived_person_without_private_data_1(std::string name_, int age_, json metadata_, std::string hair_color_) + : person_without_private_data_1(std::move(name_), age_, std::move(metadata_)) + , hair_color(std::move(hair_color_)) + {} + + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(derived_person_without_private_data_1, person_without_private_data_1, hair_color) +}; + class person_without_private_data_2 { public: - std::string name{}; + std::string name{}; // NOLINT(readability-redundant-member-init) int age = 0; json metadata = nullptr; @@ -118,10 +183,30 @@ class person_without_private_data_2 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(person_without_private_data_2, age, name, metadata) +class derived_person_without_private_data_2 : public person_without_private_data_2 +{ + public: + std::string hair_color{"blue"}; + + public: + bool operator==(const derived_person_without_private_data_2& rhs) const + { + return person_without_private_data_2::operator==(rhs) && hair_color == rhs.hair_color; + } + + derived_person_without_private_data_2() = default; + derived_person_without_private_data_2(std::string name_, int age_, json metadata_, std::string hair_color_) + : person_without_private_data_2(std::move(name_), age_, std::move(metadata_)) + , hair_color(std::move(hair_color_)) + {} +}; + +NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(derived_person_without_private_data_2, person_without_private_data_2, hair_color) + class person_without_private_data_3 { public: - std::string name{}; + std::string name{}; // NOLINT(readability-redundant-member-init) int age = 0; json metadata = nullptr; @@ -153,6 +238,31 @@ class person_without_private_data_3 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(person_without_private_data_3, age, name, metadata) +class derived_person_without_private_data_3 : public person_without_private_data_3 +{ + public: + std::string hair_color{"blue"}; + + public: + bool operator==(const derived_person_without_private_data_3& rhs) const + { + return person_without_private_data_3::operator==(rhs) && hair_color == rhs.hair_color; + } + + derived_person_without_private_data_3() = default; + derived_person_without_private_data_3(std::string name_, int age_, json metadata_, std::string hair_color_) + : person_without_private_data_3(std::move(name_), age_, std::move(metadata_)) + , hair_color(std::move(hair_color_)) + {} + + std::string getHairColor() const + { + return hair_color; + } +}; + +NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(derived_person_without_private_data_3, person_without_private_data_3, hair_color) + class person_with_private_alphabet { public: @@ -216,6 +326,19 @@ class person_with_private_alphabet NLOHMANN_DEFINE_TYPE_INTRUSIVE(person_with_private_alphabet, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) }; +class derived_person_with_private_alphabet : public person_with_private_alphabet +{ + public: + bool operator==(const derived_person_with_private_alphabet& other) const + { + return person_with_private_alphabet::operator==(other) && schwa == other.schwa; + } + + private: + int schwa = 0; + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(derived_person_with_private_alphabet, person_with_private_alphabet, schwa) +}; + class person_with_public_alphabet { public: @@ -317,9 +440,35 @@ class person_without_default_constructor_2 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(person_without_default_constructor_2, name, age) +class derived_person_only_serialize_public : public person_without_default_constructor_1 +{ + public: + std::string hair_color; + + derived_person_only_serialize_public(std::string name_, int age_, std::string hair_color_) + : person_without_default_constructor_1(std::move(name_), age_) + , hair_color(std::move(hair_color_)) + {} +}; + +NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(derived_person_only_serialize_public, person_without_default_constructor_1, hair_color) + +class derived_person_only_serialize_private : person_without_default_constructor_1 +{ + private: + std::string hair_color; + public: + derived_person_only_serialize_private(std::string name_, int age_, std::string hair_color_) + : person_without_default_constructor_1(std::move(name_), age_) + , hair_color(std::move(hair_color_)) + {} + + NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(derived_person_only_serialize_private, person_without_default_constructor_1, hair_color) +}; + } // namespace persons -TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE", T, +TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE", T, // NOLINT(readability-math-missing-parentheses) persons::person_with_private_data, persons::person_without_private_data_1, persons::person_without_private_data_2) @@ -345,7 +494,33 @@ TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRU } } -TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT", T, +TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE", T, // NOLINT(readability-math-missing-parentheses) + persons::derived_person_with_private_data, + persons::derived_person_without_private_data_1, + persons::derived_person_without_private_data_2) +{ + SECTION("person") + { + // serialization + T p1("Erik", 1, {{"haircuts", 2}}, "red"); + CHECK(json(p1).dump() == "{\"age\":1,\"hair_color\":\"red\",\"metadata\":{\"haircuts\":2},\"name\":\"Erik\"}"); + + // deserialization + auto p2 = json(p1).get(); + CHECK(p2 == p1); + + // roundtrip + CHECK(T(json(p1)) == p1); + CHECK(json(T(json(p1))) == json(p1)); + + // check exception in case of missing field + json j = json(p1); + j.erase("age"); + CHECK_THROWS_WITH_AS(j.get(), "[json.exception.out_of_range.403] key 'age' not found", json::out_of_range); + } +} + +TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT", T, // NOLINT(readability-math-missing-parentheses) persons::person_with_private_data_2, persons::person_without_private_data_3) { @@ -376,10 +551,53 @@ TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRU CHECK(p3.getName() == ""); CHECK(p3.getAge() == 0); CHECK(p3.getMetadata() == nullptr); + + // check default value in case of empty json + const json j4; + T p4 = j4.get(); + CHECK(p4.getName() == ""); + CHECK(p4.getAge() == 0); + CHECK(p4.getMetadata() == nullptr); } } -TEST_CASE_TEMPLATE("Serialization/deserialization of classes with 26 public/private member variables via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE", T, +TEST_CASE_TEMPLATE("Serialization/deserialization via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT", T, // NOLINT(readability-math-missing-parentheses) + persons::derived_person_with_private_data_2, + persons::derived_person_without_private_data_3) +{ + SECTION("derived person with default values") + { + // serialization of default constructed object + T p0; + CHECK(json(p0).dump() == "{\"age\":0,\"hair_color\":\"blue\",\"metadata\":null,\"name\":\"\"}"); + + // serialization + T p1("Erik", 1, {{"haircuts", 2}}, "red"); + CHECK(json(p1).dump() == "{\"age\":1,\"hair_color\":\"red\",\"metadata\":{\"haircuts\":2},\"name\":\"Erik\"}"); + + // deserialization + auto p2 = json(p1).get(); + CHECK(p2 == p1); + + // roundtrip + CHECK(T(json(p1)) == p1); + CHECK(json(T(json(p1))) == json(p1)); + + // check default value in case of missing field + json j = json(p1); + j.erase("name"); + j.erase("age"); + j.erase("metadata"); + j.erase("hair_color"); + T p3 = j.get(); + CHECK(p3.getName() == ""); + CHECK(p3.getAge() == 0); + CHECK(p3.getMetadata() == nullptr); + CHECK(p3.getHairColor() == "blue"); + } +} + +TEST_CASE_TEMPLATE("Serialization/deserialization of classes with 26 public/private member variables via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE", T, // NOLINT(readability-math-missing-parentheses) persons::person_with_private_alphabet, persons::person_with_public_alphabet) { @@ -451,7 +669,7 @@ TEST_CASE_TEMPLATE("Serialization/deserialization of classes with 26 public/priv } } -TEST_CASE_TEMPLATE("Serialization of non-default-constructible classes via NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE", T, +TEST_CASE_TEMPLATE("Serialization of non-default-constructible classes via NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE", T, // NOLINT(readability-math-missing-parentheses) persons::person_without_default_constructor_1, persons::person_without_default_constructor_2) { @@ -472,3 +690,25 @@ TEST_CASE_TEMPLATE("Serialization of non-default-constructible classes via NLOHM } } } + +TEST_CASE_TEMPLATE("Serialization of non-default-constructible classes via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE", T, // NOLINT(readability-math-missing-parentheses) + persons::derived_person_only_serialize_public, + persons::derived_person_only_serialize_private) +{ + SECTION("derived person only serialize") + { + { + // serialization of a single object + T person{"Erik", 1, "brown"}; + CHECK(json(person).dump() == "{\"age\":1,\"hair_color\":\"brown\",\"name\":\"Erik\"}"); + + // serialization of a container with objects + std::vector const two_persons + { + {"Erik", 1, "brown"}, + {"Kyle", 2, "black"} + }; + CHECK(json(two_persons).dump() == "[{\"age\":1,\"hair_color\":\"brown\",\"name\":\"Erik\"},{\"age\":2,\"hair_color\":\"black\",\"name\":\"Kyle\"}]"); + } + } +} diff --git a/tests/src/unit-unicode1.cpp b/tests/src/unit-unicode1.cpp index e4405c47..f812d669 100644 --- a/tests/src/unit-unicode1.cpp +++ b/tests/src/unit-unicode1.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" @@ -155,7 +155,7 @@ TEST_CASE("Unicode (1/5)" * doctest::skip()) SECTION("read all unicode characters") { - // read a file with all unicode characters stored as single-character + // read a file with all Unicode characters stored as single-character // strings in a JSON array std::ifstream f(TEST_DATA_DIRECTORY "/json_nlohmann_tests/all_unicode.json"); json j; diff --git a/tests/src/unit-unicode2.cpp b/tests/src/unit-unicode2.cpp index ebc29db5..606de12e 100644 --- a/tests/src/unit-unicode2.cpp +++ b/tests/src/unit-unicode2.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-unicode3.cpp b/tests/src/unit-unicode3.cpp index dffb1cfa..b060f090 100644 --- a/tests/src/unit-unicode3.cpp +++ b/tests/src/unit-unicode3.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-unicode4.cpp b/tests/src/unit-unicode4.cpp index 6a0e0898..a6a67a02 100644 --- a/tests/src/unit-unicode4.cpp +++ b/tests/src/unit-unicode4.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-unicode5.cpp b/tests/src/unit-unicode5.cpp index 217d3b38..7cf2fc8c 100644 --- a/tests/src/unit-unicode5.cpp +++ b/tests/src/unit-unicode5.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-user_defined_input.cpp b/tests/src/unit-user_defined_input.cpp index 5483f6a0..e4460d56 100644 --- a/tests/src/unit-user_defined_input.cpp +++ b/tests/src/unit-user_defined_input.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-windows_h.cpp b/tests/src/unit-windows_h.cpp index 9c153585..8ae4c811 100644 --- a/tests/src/unit-windows_h.cpp +++ b/tests/src/unit-windows_h.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit-wstring.cpp b/tests/src/unit-wstring.cpp index 1aaa13ba..7394d25d 100644 --- a/tests/src/unit-wstring.cpp +++ b/tests/src/unit-wstring.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #include "doctest_compatibility.h" diff --git a/tests/src/unit.cpp b/tests/src/unit.cpp index adb39dba..523cda91 100644 --- a/tests/src/unit.cpp +++ b/tests/src/unit.cpp @@ -3,7 +3,7 @@ // | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann // SPDX-License-Identifier: MIT #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN diff --git a/tools/astyle/.astylerc b/tools/astyle/.astylerc new file mode 100644 index 00000000..580a3fca --- /dev/null +++ b/tools/astyle/.astylerc @@ -0,0 +1,80 @@ +# Configuration for Artistic Style +# see https://astyle.sourceforge.net/astyle.html + +####################### +# Brace Style Options # +####################### + +# use Allman style for braces +--style=allman + +############### +# Tab Options # +############### + +# indent using 4 spaces +--indent=spaces=4 + +####################### +# Indentation Options # +####################### + +# indent access modifiers one half indent +--indent-modifiers + +# indent switch cases to the switch block +--indent-switches + +# indent preprocessor blocks +--indent-preproc-block + +# indent preprocessor defines +--indent-preproc-define + +# indent C++ comments +--indent-col1-comments + +################### +# Padding Options # +################### + +# insert space padding around operators +--pad-oper + +# insert space between if/for/while... and the following parentheses +--pad-header + +# attach the pointer to the variable type (left) +--align-pointer=type + +# attach the reference to the variable type (left) +--align-reference=type + +###################### +# Formatting Options # +###################### + +# add braces to unbraced one line conditional statements +--add-braces + +# convert tabs to spaces +--convert-tabs + +# closes whitespace between the ending angle brackets of template definitions +--close-templates + +################# +# Other Options # +################# + +# do not create backup files +--suffix=none + +# preserve the original file date +--preserve-date + +# display only the files that have been formatted +--formatted + +# for the linux (LF) line end style +--lineend=linux diff --git a/tools/astyle/requirements.txt b/tools/astyle/requirements.txt new file mode 100644 index 00000000..99458a86 --- /dev/null +++ b/tools/astyle/requirements.txt @@ -0,0 +1 @@ +astyle==3.4.13 diff --git a/tools/gdb_pretty_printer/nlohmann-json.py b/tools/gdb_pretty_printer/nlohmann-json.py index 299152ae..3984f592 100644 --- a/tools/gdb_pretty_printer/nlohmann-json.py +++ b/tools/gdb_pretty_printer/nlohmann-json.py @@ -17,16 +17,16 @@ def json_lookup_function(val): if m := ns_pattern.fullmatch(str(val.type.strip_typedefs().name)): name = m.group('name') if name and name.startswith('basic_json<') and name.endswith('>'): - m = ns_pattern.fullmatch(str(val['m_type'])) + m = ns_pattern.fullmatch(str(val["m_data"]['m_type'])) t = m.group('name') if t and t.startswith('detail::value_t::'): try: - union_val = val['m_value'][t.removeprefix('detail::value_t::')] + union_val = val["m_data"]['m_value'][t.removeprefix('detail::value_t::')] if union_val.type.code == gdb.TYPE_CODE_PTR: return gdb.default_visualizer(union_val.dereference()) else: return JsonValuePrinter(union_val) except Exception: - return JsonValuePrinter(val['m_type']) + return JsonValuePrinter(val["m_data"]['m_type']) gdb.pretty_printers.append(json_lookup_function) diff --git a/tools/generate_natvis/nlohmann_json.natvis.j2 b/tools/generate_natvis/nlohmann_json.natvis.j2 index d6b72893..c3eafa54 100644 --- a/tools/generate_natvis/nlohmann_json.natvis.j2 +++ b/tools/generate_natvis/nlohmann_json.natvis.j2 @@ -8,21 +8,21 @@ {% for ns in namespaces %} - null - {*(m_value.object)} - {*(m_value.array)} - {*(m_value.string)} - {m_value.boolean} - {m_value.number_integer} - {m_value.number_unsigned} - {m_value.number_float} - discarded + null + {*(m_data.m_value.object)} + {*(m_data.m_value.array)} + {*(m_data.m_value.string)} + {m_data.m_value.boolean} + {m_data.m_value.number_integer} + {m_data.m_value.number_unsigned} + {m_data.m_value.number_float} + discarded - - *(m_value.object),view(simple) + + *(m_data.m_value.object),view(simple) - - *(m_value.array),view(simple) + + *(m_data.m_value.array),view(simple) diff --git a/tools/serve_header/requirements.txt b/tools/serve_header/requirements.txt index d32eed3b..c399c52b 100644 --- a/tools/serve_header/requirements.txt +++ b/tools/serve_header/requirements.txt @@ -1,2 +1,2 @@ -PyYAML==6.0 -watchdog==2.1.7 +PyYAML==6.0.2 +watchdog==6.0.0